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

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

Исходный номер базы знаний: 826763

Замечание

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

Симптомы

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

Проблема 1

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

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

В этом случае вы получите следующее сообщение об ошибке:

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

Если вы используете эти специальные символы в имени таблицы, вы получите следующее сообщение об ошибке:

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

Проблема 2

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

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

    Введенное выражение содержит недопустимый синтаксис.
    Возможно, вы ввели операнду без оператора

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

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

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

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

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

    Введенное выражение содержит недопустимый синтаксис.
    Вы опустили операнду или оператор, ввели недопустимый символ или запятую или вводили текст, не окружая его кавычками.

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

    Некорректный GUID в выражении запроса ObjectName

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

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

Проблема 3

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

  • Больше знака (>)
  • Меньше знака (<)
  • Период (.)
  • Звездочка (*)
  • Двоеточие (:)
  • Caret (^)
  • Знак плюса (+)
  • Обратная косая черта (\)
  • Знак равенства (=)
  • Амперсанд (&)
  • Знак косой черты (/)

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

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

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

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

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

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

Соглашения об именовании доступа

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

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

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