"A expressão inserida tem uma função que contém o número errado de argumentos" quando você usa a função CDec() em uma consulta do Access

Moderado: requer habilidades básicas de macro, codificação e interoperabilidade.

Este artigo se aplica somente a um banco de dados do Microsoft Access (.mdb).

Sintomas

Ao usar a função CDec() em uma consulta do Microsoft Access, você poderá receber a seguinte mensagem de erro:

"A expressão inserida tem uma função que contém o número errado de argumentos."

Motivo

A função CDec() tem suporte no código do Visual Basic for Applications, mas não em consultas do Access.

Resolução

Crie uma função personalizada que use a função CDec(). Use essa função personalizada na consulta do Access. Por exemplo:

  1. Crie um novo módulo e digite o seguinte código:
Function NewCDec(MyVal)
   NewCDec = CDec(MyVal)
End Function

  1. Salve e feche o módulo.
  2. Digite MyID: NewCDec([CategoryID]) na linha Field de uma consulta. Quando você executa essa função, ela retorna um valor válido para o campo MyID.

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no início deste artigo.

Mais informações

Etapas para reproduzir o comportamento

Office Access 2002 e Office Access 2003

  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Na janela Banco de Dados, clique em Consultas em Objetos e clique em Novo.
  3. Na caixa Nova Consulta, clique em Modo de Exibição de Design e, em seguida, clique em OK.
  4. Na caixa Mostrar Tabela, clique na tabela Categorias. Clique em Adicionar e clique em Fechar.
  5. Arraste o campo CategoryName da caixa Lista de Campos até a linha Campo da primeira coluna da grade de design da consulta.
  6. Digite MyID: CDec(CategoryID) na linha Field da segunda coluna.
  7. Tente mover para a próxima coluna na grade de design da consulta. Observe que você recebe a mensagem de erro mencionada na seção "Sintomas".

Office Access 2007 e Office Access 2010

  1. Criar um novo banco de dados .

  2. Crie uma nova tabela com os seguintes campos:

    Nome Tipo de Dados Tamanho do campo
    Número de Identificação Numeração Automática Inteiro Longo
    MeuNum Número Duplo
  3. Salve a tabela como Tabela1.

  4. Abra a tabela para adicionar dados e insira 10,55 na coluna MyNum .

  5. Feche a Tabela1.

  6. Crie uma nova consulta no Design de Consultas.

  7. Selecione Tabela1 na janela Mostrar Tabela e clique em Adicionar.

  8. Clique em Fechar para fechar a janela Mostrar Tabela .

  9. Arraste o campo myNum da caixa Lista de Campos na parte superior da tela de design até a linha Campo da primeira coluna da grade de design da consulta.

  10. Na linha Campo na segunda coluna, digite:

    MyNewNum: CDec(myNum)

  11. Tente mover para a próxima coluna na estrutura de design da consulta. Observe que você recebe a mensagem de erro mencionada na seção "Sintomas".