Mensagem de erro ao usar caracteres especiais em bancos de dados do Access

Este artigo lista os caracteres especiais a serem evitados ao trabalhar com os nomes de objeto de banco de dados ou os nomes de campo em todas as versões do Access.

Número original do KB: 826763

Observação

Este artigo se aplica a um arquivo de banco de dados do Microsoft Access (.mdb) ou a um arquivo de banco de dados do Microsoft Access (.accdb) e a um arquivo de projeto do Microsoft Access (.adp).

Sintomas

Ao usar caracteres especiais no Access, você tem um dos seguintes problemas.

Problema 1

Use um dos seguintes caracteres especiais no nome de um campo de tabela:

  • Acento grave (`)
  • Ponto de exclamação (!)
  • Ponto final (.)
  • colchete([])
  • Espaço à esquerda
  • Caracteres não imprimíveis

Nesse caso, a seguinte mensagem de erro é exibida:

O nome do campo não é válido.
Verifique se o nome não contém um ponto(.), ponto de exclamação(!), colchete([]), espaço à esquerda ou caractere não imprimível, como um retorno de carro. Se você tiver colado o nome de outro aplicativo, tente pressionar ESC e digitar o nome novamente.

Se você usar esses caracteres especiais em um nome de tabela, receberá a seguinte mensagem de erro:

O nome do objeto "TableName" inserido não segue as regras de nomenclatura de objetos do Microsoft Office Access.

Problema 2

Você cria uma expressão de consulta. A expressão de consulta inclui campos que contêm caracteres especiais. Dependendo dos caracteres especiais específicos, uma das seguintes mensagens de erro é exibida:

  • Se o nome do campo contiver um caractere de espaço, um ponto de interrogação (?) ou um sinal de arroba (@), você receberá a seguinte mensagem de erro:

    A Expressão inserida contém sintaxe inválida.
    Você pode ter inserido um operando sem um operador

  • Se o nome do campo contiver aspas(") ou apóstrofo('), você receberá a seguinte mensagem de erro:

    A Expressão inserida tem uma cadeia de caracteres inválida.
    Uma cadeia de caracteres pode ter até 2048 caracteres, incluindo aspas de abertura e fechamento.

  • Se o nome do campo contiver um sinal de número (#), você receberá a seguinte mensagem de erro:

    A expressão inserida tem um valor de data inválido.

  • Se o nome do campo contiver um sinal de porcentagem (%), um til (~), um ponto e vírgula (;) ou um colchete ([]), você receberá a seguinte mensagem de erro:

    A Expressão inserida contém sintaxe inválida.
    Por exemplo, pode estar faltando um operando ou operador, você pode ter inserido uma vírgula ou um caractere inválido ou pode ter digitado texto sem colocá-lo entre aspas (").

  • Se o nome do campo contiver uma chave ({}), você receberá a seguinte mensagem de erro:

    GUID malformada na expressão de consulta "ObjectName"

  • Se o nome do campo contiver um colchete ([]) ou parêntese (()), você receberá a seguinte mensagem de erro:

    A expressão inserida não tem um parêntese de fechamento, colchete (]) ou barra vertical (|).

Problema 3

Você tem uma consulta que contém expressões de consulta. As expressões de consulta incluem campos que contêm caracteres especiais. Ao executar a consulta, você é promovido a inserir um valor de parâmetro. Normalmente, esse problema ocorre quando você usa os seguintes caracteres especiais:

  • Sinal de maior que (>)
  • Sinal de menos que (<)
  • Ponto final (.)
  • Asterisco (*)
  • Dois pontos (:)
  • Acento circunflexo (^)
  • Sinal de adição (+)
  • Barra invertida (\)
  • Sinal de igual (=)
  • E comercial (&)
  • Barra (/)

Solução alternativa

Para contornar esse problema, não use caracteres especiais. Se você precisar usar caracteres especiais em expressões de consulta, coloque os caracteres especiais entre colchetes ([]). Por exemplo, se você quiser usar o sinal maior que (>), use [>].

Informações adicionais

O Microsoft Access não restringe o uso de caracteres especiais, como um sinal numérico (#), um ponto (.) ou uma aspas (") nos nomes de objeto do banco de dados ou nos nomes de campo do banco de dados. No entanto, se você usar os caracteres especiais, poderá ocorrer erros inesperados. Assim, a Microsoft recomenda que você não use os caracteres especiais nos nomes de objeto de banco de dados no banco de dados do Access ou no projeto de banco de dados. Este artigo discute os caracteres especiais que você deve evitar devido a problemas conhecidos com esses caracteres especiais.

Ao trabalhar com o Access ou com algum outro aplicativo, como um aplicativo Microsoft Visual Basic ou um aplicativo ASP (Active Server Pages), você deve evitar os seguintes caracteres especiais:

Nome Símbolo
Space
Apóstrofo '
Aspas "
Apóstrofo '
Arroba @
Acento grave `
Sinal numérico #
Porcentagem %
Sinal de maior que >
Sinal de menor que <
Ponto de exclamação !
Period .
Colchetes [ ]
Asterisco *
Cifrão $
Ponto e vírgula ;
Dois-pontos :
Ponto de interrogação ?
Acento circunflexo ^
Chaves { }
Plus sign +
Hífen -
Sinal de igual =
Til ~
Barra invertida |

Convenções de nomenclatura do Access

A Microsoft recomenda que você não use ponto (.), ponto de exclamação (!), acento grave (`), colchetes ([ ]), espaço ( ) ou aspas (") dentro dos nomes de funções, de variáveis, de campos ou de objetos de banco de dados, como tabelas e formulários.

Existem problemas conhecidos que ocorrerão se você usar os seguintes caracteres especiais no Access. Os cenários a seguir descrevem quando você não deve usar os caracteres especiais:

  • Ao exportar objetos de banco de dados para outros formatos de arquivo, como um formato de arquivo do Microsoft Excel, um formato de arquivo HTML ou um formato de arquivo de texto, não use um sinal de número (#) ou um ponto (.) em nomes de objetos de banco de dados ou de campos.
  • Ao usar hiperlinks no Access, eles são armazenados como campos de Memorando modificados com um sinal de número (#) como delimitador. Portanto, o sinal de número é considerado uma palavra reservada no Access. Não use o sinal de número ao criar hiperlinks.
  • Ao importar para o Access um arquivo de texto que contém guias ou outros caracteres especiais, os caracteres especiais são convertidos e depois aparecem como caixas. Logo, ao tentar usar a tabela importada, você obterá erros inesperados. Você não deve usar os caracteres especiais na tabela de origem ao importar para o Access.
  • Ao usar formulários ASP para adicionar ou modificar dados em um banco de dados do Access, você não deve usar sinais de porcentagem (%), sinais de adição (+) ou sinais de acento circunflexo (^) no formulário. Esses caracteres especiais podem não ser traduzidos corretamente no banco de dados do Access.
  • Ao usar idiomas de largura inteira, não use caracteres de largura inteira no nome dos objetos de banco de dados ou dos controles. Por exemplo, você não deve usar parênteses de largura inteira ao usar linguagens de largura inteira. Isso pode causar erros de compilação se houver código em um procedimento de evento para o objeto ou para o controle.