Сообщение об ошибке при использовании специальных символов в базах данных Access
В этой статье перечислены специальные символы, которые следует избегать использования при работе с именами объектов базы данных или именами полей во всех версиях Access.
Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.
Исходный номер КБ: 826763
Эта статья применяется либо к файлу базы данных Microsoft Access (.mdb), либо к файлу базы данных Microsoft Access (.accdb), а также к файлу проекта Microsoft Access (.adp).
Симптомы
При использовании специальных символов в Access вы испытываете одну из следующих проблем.
Проблема 1
В имени настольного поля используется один из следующих специальных символов:
В этом случае вы получите следующее сообщение об ошибке:
Имя поля не допустимо.
Убедитесь, что имя не содержит периода (.), восклицательный знак (!), кронштейна ([]), ведущего пространства или непечатного символа, например возврата вагона. Если вы вклеили имя из другого приложения, попробуйте нажать кнопку ESC и введите имя еще раз.
Если вы используете эти специальные символы в имени таблицы, вы получите следующее сообщение об ошибке:
Имя объекта ‘TableName’, в которое вы ввели, не следует Microsoft Office правил именования объектов Access.
Проблема 2
Вы создаете выражение запроса. Выражение запроса включает поля, которые содержат специальные символы. В зависимости от конкретных специальных символов вы получаете одно из следующих сообщений об ошибке:
Если имя поля содержит символ пространства, знак вопроса (?) или знак на знаке (@), вы получите следующее сообщение об ошибке:
Введенное выражение содержит недопустимый синтаксис.
Возможно, вы ввели операнд без оператора
Если имя поля содержит кавычка() или апостроф(‘), вы получите следующее сообщение об ошибке:
Введенное выражение имеет недействительные строки.
Строка может быть длиной до 2048 символов, включая открытие и закрытие кавычков.
Если имя поля содержит знак номера (#), вы получите следующее сообщение об ошибке:
Введенное выражение имеет недействительное значение даты.
Если имя поля содержит знак процента (%), tilde (
), полуколон (;) или кронштейн ([]), вы получите следующее сообщение об ошибке:
Введенное выражение содержит недопустимый синтаксис.
Вы опущены операнд или оператор, вы ввели недействительный символ или запятую или ввели текст, не окружав его кавычками.
Если имя поля содержит скобку <> (), вы получите следующее сообщение об ошибке:
Malformed GUID в выражении запроса ‘ObjectName‘
Если имя поля содержит скобку ([]) или скобку (()), вы получите следующее сообщение об ошибке:
В выражении, в который вы ввели, отсутствует закрываемая скобка, скобка (]) или вертикальная планка (|).
Проблема 3
У вас есть запрос, содержащий выражения запросов. Выражения запросов включают поля, содержащие специальные символы. При запуске запроса вам будет назначено ввести значение параметра. Как правило, эта проблема возникает при использовании следующих специальных символов:
Дополнительные сведения
Microsoft Access не ограничивает использование специальных символов, таких как знак номеров (#), период (.) или кавычка () в именах объектов базы данных или в именах полей баз данных. Однако при использовании специальных символов могут возникнуть непредвиденные ошибки. Поэтому Корпорация Майкрософт рекомендует не использовать специальные символы в именах объектов базы данных в базе данных Access или в проекте базы данных. В этой статье обсуждаются специальные символы, которых необходимо избегать из-за известных проблем с этими специальными символами.
При работе с Access или с каким-либо другим приложением, например Visual Basic Microsoft или приложением ASP (ASP), следует избегать следующих специальных символов:
Ограничения на имена полей и объектов
При задании имен полей таблиц, а также объектов базы данных и других элементов управления необходимо учесть действующие в MS Access ограничения на имена полей и объектов:
· имя должно содержать не более 64 знаков;
· имя может включать любую комбинацию букв, цифр, пробелов и специальных знаков за исключением точки (.), восклицательного знака (!), надстрочного знака (`) и квадратных скобок ([ ]);
· не должно начинаться с знака пробела;
· не должно включать управляющие знаки (с кодами ASCII от 0 до 31);
· не должно включать прямые кавычки («) в именах таблиц, представлений и сохраненных процедур в проекте Microsoft Access.
Хотя пробелы внутри имен полей, элементов управления и объектов являются допустимыми, в большинстве примеров в документации Microsoft Access имена полей записываются без пробелов. Пробелы в именах могут, при некоторых обстоятельствах, вызывать конфликты в программах Microsoft Visual Basic для приложений.
Тип данных и свойства поля
После определения имени поля необходимо выбрать для него тип данных. Тип данных определяет значения, которые можно сохранять в этом поле.
Тип данных для конкретного поля выбирается в зависимости от того, какая информация там будет располагаться. Допустимы следующие значения свойства Тип данных.
| ТИП ДАННЫХ | ХРАНИМЫЕ ДАННЫЕ | ОГРАНИЧЕНИЯ |
| Текстовый | Алфавитно-цифровые данные (текст и числа) | Может храниться до 255 знаков. |
| Поле МЕМО | Алфавитно-цифровые данные (текст и числа) | Может храниться до 2 ГБ данных (предельный размер для всех баз данных Access) при программном заполнении полей. |
| Числовой | Числовые данные | В полях с типом данных «Числовой» используется параметр Список полей, управляющий размером значения, которое может содержать поле. |
| Дата/время | Значения даты и времени | Приложение Access хранит все значения даты и времени в виде 8-байтовых целых чисел с двойной точностью. |
| Денежный | Денежные данные | Данные хранятся в виде 8-байтовых чисел с точностью до четырех знаков после запятой. Этот тип данных используется для хранения финансовых данных и в тех случаях, когда значения не должны округляться. |
| Счетчик | Уникальные значения, создаваемые приложением Access при введении новой записи | Данные хранятся в виде 4-байтовых значений; обычно используются в первичных ключах. |
| Логический | Логические данные («истина» или «ложь») | Используется 1 для всех значений «Да» и 0 для всех значений «Нет». |
| Поле объекта OLE | Изображения, документы, диаграммы и другие объекты из приложений Office и других программ Windows. | Может храниться до 2 ГБ данных (предельный размер для всех баз данных Access). Поля с типом данных «Поле объекта OLE» создают растровые изображения исходных документов или других объектов, а затем отображают их в полях таблиц и элементах управления форм или отчетов в базе данных. |
| Гиперссылка | Веб-адреса | Может храниться до 1 гигабайта данных. |
| Вложение | Файлы любого поддерживаемого типа | В записи базы данных можно вкладывать изображения, файлы электронных таблиц, документы, диаграммы и другие файлы поддерживаемых типов точно так же, как в сообщения электронной почты. |
При выборе типа данных конкретного поля таблицы необходимо учесть следующее:
· какие именно значения должны храниться в поле (например, нельзя хранить текст в поле, имеющем числовой тип данных);
· сколько места необходимо для хранения значений в поле, т.е. определить размер этого поля;
· будут ли над значениями в поле производиться вычисления (например, нельзя суммировать значения в текстовых и MEMO полях);
· нужно ли создавать индекс по этому полю для ускорения операций поиска и сортировки (невозможно индексирование полей со следующими типами данных: поле MEMO, гиперссылка, поле объектаOLE);
· нужно ли производить сортировку значений в поле (например, числа в текстовых полях сортируются как строки цифр (1, 10, 100, 2, 20, 200 и т.д.), а не как числовые значения; для корректной сортировки значений дат в разных форматах необходимо использовать тип данных дата/время).
После выбора типа данных можно определить дополнительные свойства для поля таблицы. Задаваемые для поля дополнительные свойствапозволяют настроить способ хранения, обработки и отображения данных этого поля. Набор свойств меняется в зависимости от выбранного типа данных, причем некоторые из этих свойств устанавливаются по умолчанию.
| СВОЙСТВО ПОЛЯ | ТИП ДАННЫХ | ПРИМЕНЕНИЕ СВОЙСТВА |
| Размер поля | Текстовый Числовой Счетчик | Задание максимального размера для данных, хранящихся в поле с типом данных «Текстовый», «Числовой» или «Счетчик». |
| Формат поля | Текстовый Поле МЕМО Числовой Дата/время Денежный Счетчик Логический Гиперссылка | Настройка отображения поля по умолчанию на экране и при печати. |
| Число десятичных знаков | Числовой Денежный | Задание числа десятичных знаков, используемых при отображении чисел. |
| Новые значения | Счетчик | Указывает, какие значения (последовательные или случайные) присваиваются полю «Счетчик» при добавлении новой записи. |
| Маска ввода | Текстовый Числовой Дата/время Денежный | Символы редактирования, определяющие способы ввода данных. |
| Подпись | Все типы данных | Текст, отображаемый по умолчанию в качестве подписи в формах, отчетах и запросах. |
| Значение по умолчанию | Текстовый Поле МЕМО Числовой Дата/время Денежный Логический Гиперссылка | Значение, автоматически назначаемое полю при добавлении новой записи. |
| Условие на значение | Текстовый Поле МЕМО Числовой Дата/время Денежный Логический Гиперссылка | Выражение, значение которого должно быть истинно при добавлении или изменении значения поля. |
| Текст для проверки | Текстовый Поле МЕМО Числовой Дата/время Денежный Логический Гиперссылка | Текст, появляющийся при вводе значения, при котором нарушается условие, указанное в поле Условие на значение. |
| Обязательное поле | Все типы данных, кроме «Счетчик» | Указывает, должно ли это поле содержать значение в каждой записи. |
| Пустые строки | Текстовый Поле МЕМО Гиперссылка | Разрешает (установкой значения Да) ввод строки нулевой длины («») в текстовое поле и в поле МЕМО. |
| Индексация | Текстовый Поле МЕМО Числовой Дата/время Денежный Счетчик Логический Гиперссылка | Посредством создания и использования индекса ускоряет доступ к этому полю для чтения. |
| Сжатие Юникод | Текстовый Поле МЕМО Гиперссылка | Выполняется сжатие данных, содержащихся в этом поле, если в нем менее 4096 символов |
| Режим IME | Текстовый Поле МЕМО Дата/время Гиперссылка | Управление преобразованием символов в восточноазиатских версиях Windows. |
| Режим предложений IME | Текстовый Поле МЕМО Дата/время Гиперссылка | Управление преобразованием предложений в восточноазиатских версиях Windows. |
| Смарт-теги | Текстовый Поле МЕМО Числовой Дата/время Денежный Счетчик Гиперссылка | Позволяет выбрать смарт-теги, применяемые к полю. |
| Только добавление | Поле МЕМО Гиперссылка | Когда для свойства задано значение Да, ведется журнал значения поля. |
| Формат текста | Поле МЕМО | Для хранения данных в виде HTML-кода и использования RTF-форматирования следует выбрать значение Формат RTF. Чтобы хранить только текст без форматирования, следует выбрать значение Обычный текст. |
| Выравнивание текста | Все типы данных, кроме «Вложение» | Выравнивание текста по умолчанию в элементе управления. |
| Отображать элемент выбора даты | Дата/время | Указывает, должен ли в приложении Access отображаться элемент выбора даты (элемент управления «Календарь»), когда пользователь изменяет значение поля. |
Маска ввода
Свойством формат определяется формат представления данных при выводе на экран или печать, а свойством маска ввода – определяется образец для всех данных, которые вводятся в это поле, что позволяет контролировать правильность данных при вводе. Однако формат поля влияет только на отображение введенного значения и применяется только после сохранения введенных данных. Если же вводом данных в поле необходимо управлять, в дополнение к формату поля (или же вместо него) следует использовать маску ввода.
Маска ввода позволяет управлять вводом данных в поле. Например, ее можно использовать для преобразования вводимых символов к нужному регистру или же для автоматического добавления скобок и дефиса к номерам телефонов. Чаще всего маски ввода используются для текстовых полей, полей даты/времени, а также для числовых и денежных полей.
Маска ввода отображается в поле таблицы в виде символов шаблона(или знаков заполнителя) и текстовых символов. Символ шаблонаиспользуется для отображения пустых позиций в маске ввода, в которые помещаются вводимые пользователем символы.
Имена в EXCEL
history 18 ноября 2012 г.
Имя можно присвоить диапазону ячеек, формуле, константе или таблице. Использование имени позволяет упростить составление формул, снизить количество опечаток и неправильных ссылок, использовать трюки, которые затруднительно сделать другим образом.
Ниже приведены примеры имен.
Объект именования
Пример
Формула без использования имени
Формула с использованием имени
имя ПродажиЗа1Квартал присвоено диапазону ячеек C20:C30
имя НДС присвоено константе 0,18
имя УровеньЗапасов присвоено формуле ВПР(A1;$B$1:$F$20;5;ЛОЖЬ)
имя МаксПродажи2006 присвоено таблице, которая создана через меню Вставка/ Таблицы/ Таблица
имя Диапазон1 присвоено диапазону чисел 1, 2, 3
Для создания имени сначала необходимо определим объект, которому будем его присваивать.
Присваивание имен диапазону ячеек
1.Создание имени диапазона через команду Создать из выделенного фрагмента :
Проверить правильность имени можно через инструмент Диспетчер имен ( Формулы/ Определенные имена/ Диспетчер имен )
2.Создание имени диапазона через команду Присвоить имя :
3.Создание имени в поле Имя:
4.Создание имени через контекстное меню:
ВНИМАНИЕ! По умолчанию при создании новых имен используются абсолютные ссылки на ячейки (абсолютная ссылка на ячейку имеет формат $A$1 ).
5. Быстрое создание нескольких имен
Пусть имеется таблица, в каждой строке которой содержится определенный массив значений.
Чтобы создать все имена сразу, нужно:
Получим в Диспетчере имен ( Формулы/ Определенные имена/ Диспетчер имен ) сразу все 9 имен!
Присваивание имен формулам и константам
Присваивать имена формулам и константам имеет смысл, если формула достаточно сложная или часто употребляется. Например, при использовании сложных констант, таких как 2*Ln(ПИ), лучше присвоить имя выражению =2*LN(КОРЕНЬ(ПИ())) Присвоить имя формуле или константе можно, например, через команду Присвоить имя (через меню Формулы/ Определенные имена/ Присвоить имя ):
Присваивание имен таблицам
В. СИНТАКСИЧЕСКИЕ ПРАВИЛА ДЛЯ ИМЕН
Ниже приведен список синтаксических правил, которым следует руководствоваться при создании и изменении имен.
В качестве имен не следует использовать следующие специальные имена:
Если Вы в качестве имени использовали, например, слово Критерии с областью действия Лист1, то оно будет удалено при задании критериев для Расширенного фильтра на этом листе (без оповещения).
С. ИСПОЛЬЗОВАНИЕ ИМЕН
Уже созданное имя можно ввести в ячейку (в формулу) следующим образом.
D. ПОИСК И ПРОВЕРКА ИМЕН ОПРЕДЕЛЕННЫХ В КНИГЕ
Диспетчер имен: Все имена можно видеть через Диспетчер имен ( Формулы/ Определенные имена/ Диспетчер имен ), где доступна сортировка имен, отображение комментария и значения.
Е. ОБЛАСТЬ ДЕЙСТВИЯ ИМЕНИ
Все имена имеют область действия: это либо конкретный лист, либо вся книга. Область действия имени задается в диалоге Создание имени ( Формулы/ Определенные имена/ Присвоить имя ).
Руководство по именованию полей, элементов управления и объектов
Примечание: Функции, описанные в этой статье, не относятся к веб-приложениям Access и веб-базам данных Access. Дополнительные сведения о работе с веб-приложениями Access см. в статье Создание веб-приложений Access.
На имена полей, элементов управления и объектов в классических базах данных Microsoft Access налагаются указанные ниже ограничения.
Их длина не может превышать 64 знака.
Они могут содержать буквы, цифры, пробелы и специальные символы, кроме точки (.), восклицательного знака (!), символа ударения (`) и квадратных скобок ([ ]).
Они не могут начинаться с пробелов.
Они не должны содержать управляющие символы (значения ASCII от 0 до 31).
Имена таблиц, представлений или хранимая процедура в Проект Microsoft Access, не могут содержать двойные кавычки («).
Имена полей, элементов управления и объектов могут содержать пробелы, но в примерах документации Microsoft Access они обычно не используются во избежание конфликтов имен в Microsoft Visual Basic для приложений.
Называя поле, элемент управления или объект, необходимо убедиться, что не дублируется имя свойство или другого элемента, используемого приложением Microsoft Access — это может привести к непредвиденным последствия. Например, если требуется выбрать значение поля под названием «Имя» в таблице NameInfo с использованием синтаксиса NameInfo.Name, приложение Microsoft Access отобразит значение свойства таблицы Имя, а не значение поля «Имя».
Определение полей
При создании таблиц в режиме Конструктора приходится задавать имена таблиц и полей в таблицах. При этом необходимо придерживаться ряда правил.
Эти же правила действительны и для имен таблиц, а также других объектов Microsoft Access.
Рекомендуется не использовать очень длинные имена, т. к. они плохо запоминаются, и не включать в имена большое количество пробелов, особенно если с именами предполагается работать с помощью процедур Visual Basic for Application. Чтобы следовать этой рекомендации и при этом получать понятные имена, можно либо использовать вместо пробелов между словами знак подчеркивания (_), либо писать все слова слитно, но каждое начинать с заглавной буквы.
После ввода имени поля необходимо задать тип данных, которые будут находиться в этом поле. Наиболее удобным способом является выбор типа из списка, но наименование типа можно ввести и вручную. Обычно при ручном вводе Конструктор автоматически предлагает закончить вводимое название типа. В Microsoft Access имеются следующие типы данных:
Не используйте поле типа MEMO, если нужно будет сортировать записи таблицы по данному полю — это невозможно. Если 255 символов не достаточно для хранения всех данных, придется разбить его на два или три текстовых поля.
В поле типа можно также выбрать значение Мастер подстановок (Lookup Wizard), который запускает Мастера подстановок (Lookup Wizard), создающего поле подстановок. Поле подстановок позволяет выбирать значение поля из списка, содержащего набор постоянных значений или значений из другой таблицы. (О поле подстановок мы подробно будем говорить позже в разд. «Использование Мастера подстановок» данной главы.)
Как только вы выбираете тип данных для поля, так на нижней панели окна отображается список свойств этого поля. Данный список зависит от типа поля. Для того чтобы просмотреть или изменить свойства конкретного поля таблицы необходимо:
Рассмотрим основные свойства полей для каждого типа данных.









