Mensagem de erro quando utiliza carateres especiais em bases de dados do Access

Este artigo enumera os carateres especiais a evitar utilizar quando trabalha com os nomes de objetos da base de dados ou com os nomes dos campos em todas as versões do Access.

Número original da BDC: 826763

Nota

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

Sintomas

Ao utilizar carateres especiais no Access, deteta um dos seguintes problemas.

Problema 1

Utiliza um dos seguintes carateres especiais no nome de um campo de tabela:

  • Acento grave (')
  • Ponto de exclamação (!)
  • Ponto final (.)
  • parênteses retos ([])
  • Espaço em branco
  • Carateres não imprimíveis

Neste caso, receberá a seguinte mensagem de erro:

O nome do campo não é válido.
Certifique-se de que o nome não contém um ponto final (.), ponto de exclamação (!), parênteses retos ([]), espaço em branco ou carateres não imprimíveis, como um símbolo de retorno. Se tiver colado o nome de outra aplicação, experimente premir Esc e escrever o nome novamente.

Se utilizar estes carateres especiais no nome de uma tabela, receberá a seguinte mensagem de erro:

O nome de objeto "TableName" que introduziu não segue as regras de nome de objetos Microsoft Office Access.

Problema 2

Cria uma expressão de consulta. A expressão de consulta inclui campos que contêm carateres especiais. Dependendo dos carateres especiais específicos, recebe uma das seguintes mensagens de erro:

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

    A Expressão que introduziu contém uma sintaxe inválida.
    Pode ter introduzido um operando sem um operador

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

    A Expressão introduzida tem uma cadeia inválida.
    Uma cadeia pode ter até 2048 carateres de comprimento, incluindo aspas de abertura e de fecho.

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

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

  • Se o nome do campo contiver um sinal de percentagem (%), um til (~), um pontos e vírgula (;) ou parênteses retos ([]), receberá a seguinte mensagem de erro:

    A Expressão que introduziu contém uma sintaxe inválida.
    Omitiu um operando ou operador, introduziu um caráter ou vírgula inválida, ou introduziu texto sem o rodear entre aspas.

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

    GUID mal formatado na expressão de consulta "ObjectName"

  • Se o nome do campo contiver parênteses retos ([]) ou parêntesis (()), receberá a seguinte mensagem de erro:

    A expressão introduzida não tem um parêntese de fecho, parêntese reto (]) ou barra vertical (|).

Problema 3

Tem uma consulta que contém expressões de consulta. As expressões de consulta incluem campos que contêm carateres especiais. Quando executa a consulta, é-lhe pedido que introduza um valor de parâmetro. Normalmente, este problema ocorre quando utiliza os seguintes carateres especiais:

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

Solução

Para contornar este problema, não utilize carateres especiais. Se tiver de utilizar carateres especiais em expressões de consulta, coloque os carateres especiais entre parênteses retos ([]). Por exemplo, se quiser utilizar o sinal maior que (>), utilize [>].

Mais Informações

O Microsoft Access não restringe a utilização de carateres especiais, como um sinal de número (#), um ponto final (.) ou uma aspa (") nos nomes dos objetos da base de dados ou nos nomes dos campos da base de dados. No entanto, se utilizar os carateres especiais, poderá detetar erros inesperados Portanto, a Microsoft recomenda que não utilize os carateres especiais nos nomes de objetos da base de dados na base de dados do Access ou no projeto de base de dados. Este artigo aborda os carateres especiais que tem de evitar devido a problemas conhecidos com estes carateres especiais.

Quando trabalha com o Access ou com outra aplicação, como uma aplicação do Microsoft Visual Basic ou uma aplicação Active Server Pages (ASP), tem de evitar os seguintes carateres especiais:

Name Símbolo
Espaço
Apóstrofo '
Aspa "
Apóstrofo '
Arroba @
Acento grave `
Sinal de número #
Percentagem %
Sinal de maior que >
Sinal de menor que <
Ponto de exclamação !
Ponto final .
Parênteses [ ]
Asterisco *
Cifrão $
Ponto e vírgula ;
Dois pontos :
Ponto de interrogação ?
Acento circunflexo ^
Chavetas { }
Sinal de mais +
Hífen -
Sinal de igual =
Til ~
Barra inversa |

Convenções de nome do Access

A Microsoft recomenda que não utilize um ponto final (.), um ponto de exclamação (!), um acento grave ('), parênteses retos ([ ]), um espaço ( ) ou uma aspa (") dentro dos nomes das funções, dos nomes das variáveis, dos nomes dos campos ou dos nomes de objetos de base de dados, como tabelas e formulários.

Existem problemas conhecidos que ocorrem se utilizar os seguintes carateres especiais no Access. Os seguintes cenários descrevem quando não pode utilizar os carateres especiais:

  • Ao exportar os objetos da base de dados para outros formatos de ficheiro, como um formato de ficheiro Microsoft Excel, um formato de ficheiro HTML ou um formato de ficheiro de texto, não utilize um sinal de número (#) ou um ponto final (.) nos nomes dos objetos da base de dados ou nos nomes dos campos.
  • Quando utiliza hiperligações no Access, as hiperligações são armazenadas como campos Memorando modificados com um sinal de número (#) como um delimitador. Por conseguinte, o sinal de número é visto como uma palavra reservada no Access. Não utilize o sinal de número quando criar hiperligações.
  • Quando importa um ficheiro de texto para o Access e esse ficheiro de texto contém separadores ou outros carateres especiais, os carateres especiais são convertidos e os carateres especiais aparecem como caixas. Por essa razão, quando tenta utilizar a tabela importada, recebe erros inesperados. Não pode utilizar os carateres especiais na tabela de origem ao importar para o Access.
  • Quando utiliza formulários ASP para adicionar ou modificar dados numa base de dados do Access, não pode utilizar um sinal de percentagem (%), um sinal mais (+) ou um acento circunflexo (^) no formulário. Estes carateres especiais podem não ser traduzidos corretamente na base de dados do Access.
  • Quando utilizar idiomas de Largura completa, não utilize carateres de Largura completa no nome dos objetos da base de dados ou no nome dos controlos. Por exemplo, não pode utilizar parênteses de Largura completa quando utiliza idiomas de Largura completa. Isto pode causar erros de compilação se houver código num procedimento de evento para o objeto ou para o controlo.