Сообщение об ошибке при использовании специальных символов в базах данных Access

В этой статье перечислены специальные символы, которые не следует использовать при работе с именами объектов базы данных или именами полей во всех версиях Access.

Оригинальный номер базы знаний: 826763

Примечание.

Эта статья применима к файлам баз данных Microsoft Access (.mdb) или (.accdb), а также к файлу проекта Microsoft Access (.adp).

Симптомы

При использовании специальных символов в Access возникает одна из следующих проблем.

Проблема 1

В имени поля таблицы используется один из следующих специальных символов:

  • Знак над символом (`)
  • Восклицательный знак (!)
  • Точка (.)
  • квадратные скобки ([])
  • Пробел
  • Непечатаемые символы

В этом случае отобразится следующее сообщение об ошибке:

Недопустимое имя поля.
Убедитесь, что имя не содержит точку (.), восклицательный знак(!), квадратные скобки ([]), пробел или непечатаемый символ, например символ возврата каретки. Если вы вставляете имя из другого приложения, попробуйте нажать клавишу ESC и ввести имя еще раз.

При использовании этих специальных символов в имени таблицы отобразится следующее сообщение об ошибке:

Введенное имя объекта 'TableName' не соответствует правилам именования объектов Microsoft Office Access.

Проблема 2

Вы создаете выражение запроса. Выражение запроса включает поля, содержащие специальные символы. При использовании отдельных специальных символов отображается следующее сообщение об ошибке:

  • Если имя поля содержит пробел, вопросительный знак (?) или знак @, отобразится следующее сообщение об ошибке:

    Ошибка синтаксиса во введенном выражении.
    Задано значение для операции без оператора

  • Если имя поля содержит кавычки (") или апостроф ('), отобразится следующее сообщение об ошибке:

    Введенное выражение содержит ошибочную строку.
    Строка может содержать до 2048 знаков, включая знаки открывающей и закрывающей кавычек.

  • Если имя поля содержит знак решетки (#), отобразится следующее сообщение об ошибке:

    Введенное выражение содержит недопустимое значение даты.

  • Если имя поля содержит знак процента (%), тильду (~), точку с запятой (;) или скобки ([]), отобразится следующее сообщение об ошибке:

    Ошибка синтаксиса во введенном выражении.
    Пропущен операнд или оператор, введен недопустимый знак или лишняя запятая, либо задана строка без кавычек.

  • Если имя поля содержит фигурные скобки ({}), отобразится следующее сообщение об ошибке:

    Неверно сформированный код GUID в выражении запроса 'ObjectName'

  • Если имя поля содержит квадратные скобки ([]) или круглые скобки (()), отобразится следующее сообщение об ошибке:

    Во введенном выражении отсутствует закрывающая скобка, квадратная скобка (]) или вертикальная черта (|).

Проблема 3

У вас есть запрос, содержащий выражения запроса. Выражения запроса включают поля, содержащие специальные символы. При выполнении запроса предлагается ввести значение параметра. Как правило, эта проблема возникает при использовании следующих специальных символов:

  • знак «больше» (>);
  • знак «меньше» (<);
  • Точка (.)
  • Звездочка (*)
  • Двоеточие (:)
  • Крышка (^)
  • Знак плюс (+)
  • Обратная косая черта (\)
  • Знак равенства (=)
  • амперсанд (&);
  • Косая черта (/)

Обходной путь

Чтобы устранить эту проблему, не используйте специальные символы. Если в выражениях запроса необходимо использовать специальные символы, заключите их в квадратные скобки ([]). Например, если вы хотите использовать знак> больше (), используйте [>].

Дополнительная информация

Microsoft Access не ограничивает использование специальных символов, таких как знак решетки (#), точка (.) или кавычки (") в именах объектов базы данных или в именах полей базы данных. Однако при использовании специальных символов могут возникнуть непредвиденные ошибки. Поэтому корпорация Майкрософт рекомендует не использовать специальные символы в именах объектов базы данных в базе данных Access или в проекте базы данных. В этой статье рассматриваются специальные символы, которые не следует использовать во избежание известных проблем с ними.

При работе с Access или другим приложением, например приложением Microsoft Visual Basic или приложением Active Server Pages (ASP), не следует использовать следующие специальные символы:

Имя Символ
Space
Апостроф '
Кавычка "
Апостроф '
Знак "@" @
Ё (или знак ударения) `
Знак решетки #
Процент %
Знак «больше» >
Знак «меньше» <
Восклицательный знак !
Period .
Квадратные скобки [ ]
Звездочка *
Знак доллара $
Точка с запятой ;
Двоеточие :
Вопросительный знак ?
Крышка ^
Фигурные скобки { }
Знак плюса +
Дефис -
Знак равенства =
Тильда ~
Обратная косая черта |

Соглашения об именовании в Access

Корпорация Майкрософт рекомендует не использовать точку (.), восклицательный знак (!), знак ударения (`), квадратные скобки ([ ]), пробел ( ) или кавычки (") внутри имен функций, имен переменных, имен полей или имен объектов базы данных, таких как таблицы и формы.

Использование следующих специальных символов в Access приводит к возникновению известных проблем. В следующих сценариях описано, когда не следует использовать специальные символы:

  • При экспорте объектов базы данных в другие форматы файлов, такие как Microsoft Excel, HTML или текстовый файл, не используйте знак решетки (#) или точку (.) в именах объектов базы данных или в именах полей.
  • Гиперссылки, используемые в Access, хранятся в виде измененных полей MEMO со знаком решетки (#) в качестве разделителя. Таким образом, знак решетки в Access рассматривается как зарезервированное слово. Не используйте знак решетки при создании гиперссылок.
  • Когда вы импортируете текстовый файл, содержащий вкладки или другие специальные символы, в Access, эти специальные символы преобразуются, а затем отображаются в виде полей. Поэтому при попытке использовать импортированную таблицу возникают непредвиденные ошибки. При импорте в Access не следует использовать специальные символы в исходной таблице.
  • При использовании форм ASP для добавления или изменения данных в базе данных Access не следует использовать знак процента (%), знак «плюс» (+) или крышку (^) в форме. Эти специальные символы могут неверно преобразовываться в базе данных Access.
  • При использовании полноширинных языков не используйте полноширинные символы в имени объектов базы данных или в имени элементов управления. Например, при использовании полноширинных языков не следует использовать круглые скобки полной ширины. Это может привести к ошибкам компиляции при наличии кода в процедуре обработки события для объекта или элемента управления.