Свойство поля сообщение об ошибке в ms access

Основные свойства полей MS Access зависят от выбранного типа данных. Если открыть таблицу в режиме конструктора, то весь набор свойств выбранного поля будет представлен в нижней части окна на двух вкладках: Общие (General) и Подстановка (Lookup). Приведем свойства полей, наиболее важные на первом этапе изучения баз данных.

Основные свойства полей MS Access

  1. Размер поля (Field Size) позволяет для текстового и числового поля уточнить тип данных или размер, задает максимальный размер данных, сохраняемых в поле. Для поля с типом данных Текстовый (Text) задается размер от 1 до 255 знаков. Для поля с типом данных Числовой (Number) можно задать:
    • Байт (Byte) для целых чисел от 0 до 255, длина поля 1 байт;
    • Целое (Integer) для целых чисел от –32 768 до +32 767, занимает 2 байта;
    • Длинное целое (Long Integer) для целых чисел от –2 147 483 648 до
      +2 147 483 647, занимает 4 байта;
    • Одинарное с плавающей точкой (Single) для чисел от –3,4 1038 до
      +3,4 1038 с точностью до 7 знаков, занимает 4 байта;
    • Двойное с плавающей точкой (Double) для чисел от –1,797 10308 до
      +1,797 10308 с числом отображаемых десятичных знаков до 15, занимает
      8 байтов;
    • Действительное (Decimal) для целых чисел от –1038 до +1038 (при работе с
      проектами, которые хранятся в файлах типа adp) и от –1028 до 1028 (mdb и
      accdb) с числом отображаемых десятичных знаков до 28, занимает 12 байтов;
    • Код репликации (Replication ID). Глобальный уникальный идентификатор (Globally unique identifier, GUID), занимает 16 байтов. Эти длинные генерируемые случайным образом значения обеспечивают малую вероятность их совпадения. Поля такого типа используются Access для создания системных уникальных идентификаторов реплик, наборов реплик, таблиц, записей и других объектов при репликации баз данных. Могут быть использованы в приложениях пользователя для идентификации строк таблицы, например для идентификации товаров.

Для поля с типом данных Счетчик (AutoNumber) можно задать:

  • Длинное целое (Long Integer) — 4 байта;
  • Код репликации (Replication ID) — 16 байтов.

Рекомендуется задавать минимально допустимый размер поля, который понадобится для сохраняемых значений, т. к. сохранение таких полей требует меньше памяти, и обработка данных меньшего размера выполняется быстрее.

  1. Формат поля (Format) является форматом отображения выбранного типа данных при выводе их на экран или печать в режиме таблицы, в форме или отчете. В Access определены встроенные стандартные форматы отображения для полей с такими типами данных как Числовой (Number), Дата/время (Date/Time), Логический (Yes/No) и Денежный (Currency). Ряд этих форматов совпадает с настройкой региональных форматов, определяемых в окне Язык и региональные стандарты в Панели правления Windows. Пользователь может создать собственный формат для всех типов данных, кроме Поле объекта OLE (OLE Object), с помощью символов форматирования.
  2. Число десятичных знаков (Decimal Places) задает для числового и денежного типов данных количество знаков после запятой. Можно задать число от 0 до 15. По умолчанию (значение Авто (Auto)) это число определяется установкой в свойстве Формат поля (Format). Следует иметь в виду, что установка этого свойства не действует, если свойство Формат поля (Format) не установлено или выбрано значение Основной (General Namber). Свойство Число десятичных знаков (Decimal Places) влияет только на количество десятичных знаков, отображаемых на экране, и не влияет на число сохраняемых десятичных знаков. Для изменения числа сохраняемых знаков нужно изменить свойство Размер поля (Field Size).
  3. Подпись (Caption) поля задает текст, который выводится в таблицах, формах, отчетах.
  4. Описание (Description) — краткий пользовательский комментарий к полю.
  5. Значение по умолчанию (Default Value) определяет текст или выражение, значение которого автоматически вводится в поле при создании новой записи. Например, если задана функция =Now(), то в поле введется текущая дата и время. При добавлении записи в таблицу можно оставить значение, введенное по умолчанию, или ввести другое. Свойство Значение по умолчанию (Default Value) используется только при создании новой записи. Максимальная длина значения свойства составляет 255 знаков. Свойство не определено для полей с типом данных Счетчик (AutoNumber) или Поле объекта OLE (OLE Object).
  6. Условие на значение (Validation Rule) позволяет осуществлять контроль ввода, задает ограничения на вводимые значения, при нарушении условий запрещает ввод и выводит текст, заданный свойством Сообщение об ошибке (Validation Text).
  7. Сообщение об ошибке (Validation Text) задает текст сообщения, выводимый на экран при нарушении ограничений, заданных свойством Условие на значение (Validation Rule).

ВНИМАНИЕ!
Элементы управления, созданные в формах или отчетах на основе поля таблицы, наследуют установленные для этого поля свойства. Благодаря этому не понадобится определять свойства индивидуально для каждого связанного с полем элемента управления.

В следующем уроке рассмотри процесс создания таблиц в MS Access.

Свойства «Условие на значение» и «Сообщение об ошибке»

Данные
свойства будут рассматриваться вместе,
так как они связанны между собой.

Условие
на значение
– свойство определяет
ограничение, накладываемое на вводимые
в это поле данные. При несоответствии
вводимых данных указанному условию
выдается сообщение об ошибке.

Сообщение
об ошибке
– свойство определяет то
сообщение, которое будет выдаваться
пользователю, если при вводе данных не
соблюдается условие, указанное в
предыдущем свойстве.

Примечание:
Если это свойство не указано, будет
выдано стандартное сообщение об ошибке.

Приведем
несколько примеров условий на значение
и соответствующих сообщений об ошибке.

Условие на значение

Сообщение об ошибке

<>0

Введите значение, отличное от нуля

0 Or >100

Значение должно быть 0, либо больше
100

>=1 And <=10

Введите значение от 1 до 10

Like «К???»

Значение должно содержать четыре
символа и начинаться с буквы К

Like «[0-9][0-9][0-9]»

Значение должно состоять из трех цифр

<=Date()

Дата должна быть не позднее сегодняшней
даты

>=#1.01.1997#

Дата должна быть после 1-го января 1997
г.

Задания:

Закройте
таблицу
Студенты.

Откройте
таблицу
Оценка в режиме
Конструктора.

Установите
для поля
Оценка свойство
Условие на значение
>=2  And  <=5
(больше или равно 2 и меньше или равно
5) и свойство
Сообщение об ошибке
Оценка должна быть в интервале
от 2 до 5
(см. рисунок).

Перейдите
в режим Таблицы.

Нажмите
кнопку
Да.

Попытайтесь
ввести оценку
6 в любой записи
таблицы. Если вы все сделали правильно,
то появится сообщение об ошибке.

Свойство «Формат поля»

Формат
поля
предназначен для вывода текста,
чисел и дат в нужном виде на экран или
печать.

Примечание:
Формат поля не влияет на способ
сохранения информации в таблице.

Для
числовых, денежных, логических полей,
для полей типа Дата/время и Счетчик
существуют наборы стандартных (встроенных)
форматов отображения. Кроме того, для
этих типов полей пользователь может
задать собственные (специальные) форматы.

Для
текстовых полей, полей MEMO
и гиперссылки встроенных форматов нет,
и для них можно задать только собственные
форматы.

Для
полей объектов OLE форматы
отображения данных определить невозможно.

Специальные
форматы поля задаются с помощью одного
или нескольких спецсимволов, некоторые
из которых являются общими для всех
типов данных, а другие отличаются для
разных типов полей (текстовых, числовых,
дата и др.)

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

«абв»

– символы, заключенные в кавычки,
печатаются без изменения;

– выводит следующий символ, как
константу;

[цвет]

– задает цвет, название которого
указано в скобках. Допустимые имена
цветов: (Черный), (Синий), (Зеленый),
(Бирюзовый), (Красный), (Лиловый),
(Желтый), (Белый).

Для
текстовых типов данных применяют
следующие спецсимволы:

@

– обязательный текстовый символ или
пробел;

&

– необязательный текстовый символ;

<

– преобразует все символы в строчные
(маленькие);

>

– преобразует все символы в прописные
(заглавные).

Специальные
форматы для текстовых полей могут
состоять из двух разделов, разделенных
точкой запятой (;). В первом разделе
задается собственно формат отображения
данных, во втором разделе – задается
значение, которое будет отображаться
в поле, если в это поле ничего не введено.

Задания:

Откройте
таблицу
Студенты в режиме
Конструктора.

Для
поля Фамилия в свойство
Формат
поля
введите –>@;»***»[Красный].

Перейдите
в режим Таблицы.

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

Формат
поля для данных типа Дата/Время
можно выбрать из списка, а также задать
с помощью специальных символов. Рассмотрим
некоторые из них:

/

– разделитель компонентов даты

с

– задает встроенный Полный формат
даты

d

– номер дня месяца, состоящий из 1 или
2 цифр (1-31)

dd

– номер дня месяца, состоящий из 2
цифр (01-31)

ddd

– сокращенное название дня недели
(Пн-Вс)

dddd

– полное название дня недели
(понедельник – воскресенье)

m

– номер месяца, состоящий из 1 или 2
цифр (1-12)

mm

– номер месяца, состоящий из 2 цифр
(01-12)

mmm

– первые три буквы названия месяца
(янв-дек)

mmmm

– полное название месяца (Январь-Декабрь)

q

– номер квартала в году (1-4)

у

– номер дня в году (1-366)

уу

– последние две цифры номера года
(01-99)

уууу

– полный номер года (0100-9999)

Задания:

Откройте
таблицу
Оценка в режиме
Конструктора.

Для
поля Дата сдачи в
Формат поля
введите
dd mmm уу (Внимание! Все
буквы английского алфавита).

Перейдите
в режим Таблицы.

Даты
сдачи должны отображаться в виде –
01
янв 01
.

Перейдите
в режим Конструктора.

Для
поля Дата сдачи в
Формат поля
введите
dddd», «dd mmmm yyyy

Перейдите
в режим Таблицы и посмотрите, как
изменился формат вывода данных.

Перейдите
в режим Конструктора и самостоятельно
измените формат так, чтобы дата сдачи
отображалась в виде –
01.01.07 г.

Формат
поля для данных типа Числовой и Денежный
можно выбрать из списка, а также можно
определять самостоятельно с помощью
специальных символов:

0

– выводится цифра или 0;

#

– выводитcя цифра или
ничего не выводится;

$ + () —

– перечисленные символы отображаются
без изменений

%

– процентный формат. Число умножается
на 100 и к нему добавляется символ
процента.

Специальные
форматы могут включать в себя от одного
до четырех разделов, отделенных друг
от друга точкой запятой (;). В первом
разделе описывается формат положительных
чисел, во втором – формат отрицательных
чисел, в третьем – формат нулевых
значений, в четвертом – формат пустых
значений.

Задания:

Откройте
таблицу
Студенты в режиме
Конструктора.

Для
поля КодГруппы в свойство
Формат
поля
введите – 0;»Не должно
быть отрицательным»[Красный];»Не
должно быть нулевым»[Лиловый]

Перейдите
в режим Таблицы.

Попробуйте
в поле КодГруппы ввести отрицательное
значение или нулевое. Должны появляться
соответствующие надписи.

Для
Логического типа данных свойство
Формат поля позволяет выбрать из списка
встроенных форматов: Истина/Ложь,
Да/Нет или Вкл/Выкл.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Правила проверки позволяют выполнять проверку данных по мере их ввода в базы данных Access для настольных систем. Для правильного форматирования правил вы можете использовать построитель выражений. Правила проверки можно задавать в конструкторе таблиц или в режиме таблицы. В Access существуют правила проверки трех типов.

1. Правило проверки поля   . Это правило можно использовать для определения условий, которым должны соответствовать все допустимые значения полей. Не указывайте текущее поле в качестве части правила, если вы не используете это поле в функции.  Для ограничения типов символов, которые можно вводить в поле, удобно использовать маску ввода. Например, для полей даты можно задать правило проверки, запрещающее указывать прошедшие даты.

Краткие примеры

Запрет прошедших дат: >=Date()

Общепринятый формат эл. почты: Is Null OR ((Like «*?@?*.?*») AND (Not Like «*[ ,;]*»))

Число не больше пяти: <=5

Неотрицательное значение в поле валюты: >=0

Ограничения числа знаков в строке: Len([StringFieldName])<100

Правило проверки поля в конструкторе таблиц Access

2. Правило проверки записи   . Это правило можно использовать для определения условий, которым должны соответствовать все допустимые записи. С помощью него вы можете сравнивать значения в разных полях. Например, для записи с двумя полями дат можно потребовать, чтобы значения одного поля всегда предшествовали значениям другого поля (то есть чтобы дата начала предшествовала дате окончания).

Краткие примеры

Проверка того, что дата окончания не предшествует дате начала: [Дата окончания]>=[Дата начала]

Ввод даты назначения, которая должна быть не позднее 30 дней с даты заказа: [Дата назначения]<=[Дата заказа]+30

Правило проверки таблицы в конструкторе таблиц Access.

3. Проверка в форме   . Свойство Правило проверки элемента управления формы можно использовать для определения условий, которым должны соответствовать все данные, вводимые в этот элемент. Свойство Правило проверки элемента управления работает аналогично правилу проверки поля. Обычно правило проверки в форме используется вместо правила проверки поля, если оно относится только к данной форме, а не ко всей таблице, независимо от места использования.

В этой статье

  • Обзор

  • Добавление правила проверки в таблицу

  • Проверка имеющихся данных на соответствие новому правилу проверки

  • Добавление правила проверки в элемент управления формы

  • Справочная информация о правилах проверки

Общие сведения

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

После ввода данных Access проверяет их на соответствие правилу проверки. Если данные недопустимы, отобразится сообщение.

В Access есть несколько способов ограничения ввода данных.

  • Типы данных   .Каждое поле таблицы имеет тип данных, который ограничивает возможности ввода для пользователей. Например, в поле с типом данных «Дата/время» можно ввести только дату и время, в поле с типом данных «Денежный» — только денежные данные и т. д.

  • Свойства поля   .Некоторые свойства поля ограничивают ввод данных. Например, свойство Размер поля ограничивает количество вводимых данных.

    Можно также использовать свойство Правило проверки, чтобы ограничить ввод строго определенными значениями, и свойство Сообщение об ошибке, чтобы предупреждать пользователей об ошибках. Например, правило >100 And <1000 в свойстве Правило проверки требует ввода значений между 100 и 1000. Правило [ДатаОкончания]>=[ДатаНачала] требует, чтобы вводимая дата окончания совпадала с датой начала либо следовала за ней. Текст типа «Введите значения в диапазоне от 100 до 1000» или «Введите дату окончания, которая не предшествует дате начала», указанный в свойстве Сообщение об ошибке, сообщит пользователям о допущенной ошибке и о том, как ее исправить.

  • Маски ввода   .Маски ввода можно использовать для проверки данных, если требуется, чтобы пользователи вводили значения в определенном формате. Например, с помощью маски ввода можно разрешить вводить даты только в европейском формате (например, 2007.04.14).

Эти методы проверки данных можно использовать как вместе, так и в отдельности. Типы данных являются обязательными и предоставляют наиболее распространенные типы проверки данных.

Дополнительные сведения о типах данных, размерах полей и масках ввода см. в статье Введение в использование типов данных и свойств полей.

Типы правил проверки

Можно создать два основных типа правил проверки.

  • Правило проверки поля   .Это правило используется для проверки введенного значения при переходе к другому полю. Предположим, имеется поле даты, и для свойства Правило проверки задано значение >=#01.01.2010#. Это правило требует, чтобы пользователи вводили дату не ранее 1 января 2010 года. Если указать дату ранее 2010 года, вы не сможете перейти к другому полю в Access, пока не исправите ошибку.

  • Правило проверки записи   .Это правило используется для управления сохранением записи (строки в таблице). В отличие от правила проверки поля, для правила проверки записи используются ссылки на другие поля той же таблицы. Правило проверки записи создается, если требуется сравнить значения в разных полях. Предположим, вам требуется доставить товар в течение 30 дней, и в случае если товар не будет доставлен в этот срок, необходимо возместить клиенту убытки. Можно задать правило проверки [Срок]<=[ДатаЗаказа]+30, чтобы предупредить ввод слишком поздней даты доставки заказа (значение в поле «Срок»).

Если вам непонятен синтаксис правил проверки, см. сведения о синтаксисе и некоторые примеры правил проверки в разделе Данные, которые можно ввести в правило проверки.

Применение правил проверки

Можно задавать правила проверки для полей таблиц и элементов управления в формах. Заданные правила проверки для таблиц применяются также при импорте данных. Чтобы добавить правила проверки в таблицу, откройте нужную таблицу и используйте команды на вкладке Поля ленты. Чтобы добавить правила проверки в форму, откройте форму в режиме макета и добавьте эти правила в свойства отдельных элементов управления.

Из инструкций, приведенных в разделе Добавление правила проверки в таблицу, вы узнаете, как добавлять правила проверки в поля таблицы. А в разделе Добавление правила проверки для элемента управления формы, который вы найдете ниже в этой статье, описано, как добавлять правила в свойства отдельных элементов управления.

Данные, которые можно ввести в правило проверки

Правила проверки могут содержать выражения — функции, возвращающие единственное значение. Выражение можно использовать для выполнения вычислений, обработки знаков или проверки данных. Выражение правила проверки выполняет проверку данных. Например, может проверять наличие одного значения из ряда, например «Токио» OR «Москва» OR «Париж» OR «Хельсинки» . Выражения также могут выполнять математические операции. Например, выражение <100 требует ввода значений, меньших 100. Выражение ([ДатаЗаказа] — [ДатаДоставки]) вычисляет количество дней от даты размещения заказа до даты его исполнения.

Дополнительные сведения о выражениях см. в статье Создание выражений.

К началу страницы

Добавление правила проверки в таблицу

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

Примечания: Правила проверки не поддерживаются в таких типах полей:

  • Счетчик

  • Объект OLE

  • Вложение

  • Код репликации

Создание правила проверки поля

  1. Выберите поле, которое требуется проверить.

  2. На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Правило проверки поля.

  3. Создайте правило проверки с помощью построителя выражений. Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.

Создание сообщения для отображения при вводе недопустимых данных

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

  2. На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Сообщение проверки поля.

  3. Введите соответствующее сообщение. Например, для правила проверки >10 можно ввести сообщение Введите значение больше 10.

Примеры правил проверки поля и сообщений см. в разделе Справочная информация о правилах проверки.

Создание правила проверки записи

  1. Откройте таблицу, в которой требуется выполнить проверку записей.

  2. На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Правило проверки поля.

  3. Создайте правило проверки с помощью построителя выражений. Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.

Создание сообщения для отображения при вводе недопустимой записи

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

  2. На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Сообщение о проверке записи.

  3. Введите соответствующее сообщение. Например, для правила проверки [ДатаНачала]<[ДатаОкончания] можно ввести сообщение «Дата начала должна предшествовать дате окончания».

К началу страницы

Проверка имеющихся данных на соответствие новому правилу проверки

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

  1. Откройте таблицу для проверки в режиме конструктора.

    На вкладке Конструктор в группе Сервис нажмите кнопку Проверка условий.

  2. Нажмите кнопку Да, чтобы закрыть сообщение и начать проверку.

  3. Если будет предложено сохранить таблицу, нажмите кнопку Да.

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

К началу страницы

Добавление правила проверки в элемент управления формы

Можно использовать свойства элементов управления Правило проверки и Сообщение об ошибке для проверки данных, вводимых в элемент управления, и предупреждения пользователей о вводе недопустимых данных.

Совет:  При автоматическом создании формы из таблицы с помощью одной из команд в группе «Формы» на ленте все проверки поля, имеющиеся в базовой таблице, наследуются соответствующими элементами управления в форме.

Элемент управления и поле таблицы, с которым он связан, могут иметь разные правила проверки. Это позволяет при необходимости установить для формы большее количество ограничений, чем для таблицы. В этом случае сначала будет применяться правило формы, а затем — правило таблицы. Если для таблицы установлено больше ограничений, чем для формы, приоритет отдается правилам, заданным для поля таблицы. Если правила являются взаимоисключающими, ввод каких-либо данных будет невозможен.

Предположим, что к полю даты в таблице применено следующее правило:

<#01.01.2010#

А затем к элементу управления формы, связанному с этим полем данных, применено другое правило:

>=#01.01.2010#

Таким образом, в поле данных необходимо вводить значения, предшествующие 2010 году, а в элементе управления формы — не ранее этого года. Согласно этим правилам нельзя ввести никакую дату.

Создание правила проверки для элемента управления

  1. Щелкните правой кнопкой мыши форму, которую требуется изменить, и выберите пункт Режим макета.

  2. Щелкните правой кнопкой мыши элемент управления, который требуется изменить, и выберите пункт Свойства для отображения окна свойств.

  3. Откройте вкладку Все и введите правило проверки в поле свойства Правило проверки.

    Совет:  Нажмите кнопку Построить для запуска построителя выражений.

    Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.

  4. Введите сообщение об ошибке в поле свойства Сообщение об ошибке.

К началу страницы

Справочная информация о правилах проверки

В правилах проверки используется синтаксис выражений Access. Дополнительные сведения о выражениях см. в статье Введение в использование выражений.

Примеры правил и текста проверки

Правило проверки

Текст проверки

<>0

Введите значение, отличное от нуля.

>=0

Значение не должно быть отрицательным.

-или-

Введите положительное число.

0 or >100

значение должно быть равно 0 либо быть больше 100.

BETWEEN 0 AND 1

Введите значение со знаком процента. (Для полей с числовыми значениями процентов.)

<#01.01.2007#

Введите дату, предшествующую 2007 году.

>=#01.01.2007# AND <#01.01.2008#

Укажите дату в 2007 году.

<Date()

Дата рождения не может быть в будущем.

StrComp(UCase([Фамилия]),
[Фамилия],0) = 0

Заполните поле «Фамилия» прописными буквами.

>=Int(Now())

Ведите текущую дату.

М Or Ж

Введите «М» для мужского пола, «Ж» — для женского.

LIKE «[A-Z]*@[A-Z].com» OR «[A-Z]*@[A-Z].net» OR «[A-Z]*@[A-Z].org»

Введите допустимый адрес электронной почты, оканчивающийся на .com, .net или .org.

[Срок]<=[ДатаЗаказа]+30

Заказ должен быть исполнен не позже чем через 30 дней.

[ДатаОкончания]>=[ДатаНачала]

Дата окончания не должна предшествовать дате начала.

Примеры синтаксиса для основных операторов правил проверки

Оператор

Функция

Пример

NOT

Проверяет наличие противоположных значений. Используется перед любым оператором сравнения, кроме IS NOT NULL.

NOT > 10 (то же, что и <=10).

IN

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

IN («Токио», «Париж», «Москва»)

BETWEEN

Проверяет принадлежность к диапазону значений. Необходимо использовать два значения для сравнения — верхний и нижний пределы — и разделять эти значения с помощью разделителя AND.

BETWEEN 100 AND 1000 (то же, что и >=100 AND <=1000)

LIKE

Сопоставляет образец строки с текстовым полем или полем МЕМО.

LIKE «Гео*»

IS NOT NULL

Требует ввода значения в поле. Результат такой же, как при задании для свойства Обязательное поле значения Да. Но если свойство Обязательное поле включено, а пользователю не удается ввести значение, в Access отображается непонятное сообщение об ошибке. Удобнее использовать в базе данных оператор IS NOT NULL и ввести информативное сообщение в свойстве Текст проверки.

IS NOT NULL

AND

Указывает, что все части правила проверки должны быть истинными.

>= #01.01.2007# AND <=#06.03.2008#

Примечание: Для объединения правил проверки можно также использовать оператор AND. Например: NOT «КНР» AND LIKE «Р*».

OR

Указывает, что некоторые (но не все) части правила проверки должны быть истинными.

«Январь» OR «Февраль»

<

Меньше.

<=

Меньше или равно.

>

Больше.

>=

Больше или равно.

=

Равно.

<>

Не равно.

Использование подстановочных знаков в правилах проверки

В правилах проверки можно использовать подстановочные знаки. Имейте в виду, что Access поддерживает два набора подстановочных знаков: ANSI-89 и ANSI-92. В этих стандартах используются различные наборы подстановочных знаков.

По умолчанию, для всех файлов формата ACCDB и MDB используется стандарт ANSI-89.

Можно изменить стандарт ANSI для базы данных на стандарт ANSI-92, выполнив следующие действия.

  1. На вкладке Файл выберите пункт Параметры.

  2. В диалоговом окне Параметры Access выберите пункт Конструкторы объектов.

  3. В разделе Конструктор запросов в группе Синтаксис для SQL Server (ANSI 92) установите флажок эта база данных.

Дополнительные сведения об использовании подстановочных знаков и стандартах ANSI для языка SQL см. в статье Справочные сведения о подстановочных знаках в Access.

К началу страницы

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск

Страница 1 из 2 1 2 Следующая >

Почему возникает эта ошибка.
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘[Стипендія нарахування].[Середній бал]? (база данных в Access 2010)

SELECT [Стипендія нарахування].[Середній бал]
IF([Середній бал]<4,»0″,
IF([Середній бал]=5,»950″,
IF([Середній бал]>=4 And <5,»800″)) AS [Стипендія]
FROM [Стипендія нарахування];

Сообщение об ошибке при использовании специальных символов в базах данных 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), не следует использовать следующие специальные символы:

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

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

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

Что значит пропущен оператор в выражении запроса access

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Здравствуйте.

Вобще на форме выбирется ДАТА в dateTimePicker, затем хочу сделать ЗАПРОС на ВЫБОРКУ из таблицы (Access) по этой дате . ну если дата совпала, то потом все вывожу в dataGridView1

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=»+dateTimePicker1.Value+»», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

ну вобщем когда я на форме выбираю дату и нажимаю кнопку поиск ВЫЛАЗИЕТ вот такая ОШИБКА:

Код
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘Дата=03.12.2008 0:00:00’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=03.12.2008 0:00:00

Помогите разобраться с этой проблемой.
Заранее спасибо.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

kuller, dateTimePicker1.Value.ToString(«dd.MM.yyyy»);

Добавлено через 36 секунд
kuller, а вообще в каком формате дата хранится в базе?

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

Вот так выглядит у меня в Access 2003 запрос на выборку поля с датой

SELECT Table1.ID, Table1.Field1
FROM Table1
WHERE (((Table1.Field1)=#1/10/2008#));

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Код
Дата содержит синтаксическую ошибку в выражении запроса ‘Дата=#03.12.2008 0:00:00#’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=#03.12.2008 0:00:00#

Добавлено через 4 минуты и 4 секунды
и так ошибка(((

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE (([Содержание_заказа].[Дата]=» + dateTimePicker1.Value + «))», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
Код
Ошибка синтаксиса (пропущен оператор) в выражении запроса ‘(([Содержание_заказа].[Дата]=03.12.2008 0:00:00))’.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

kuller, попробуйте прогнать запрос с хардкодом

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата= #12/03/2008#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#12/03/2008#», .

ну т.к. в БД нет строки с такой датой то у меня выскочила табличка:

Код
MessageBox.Show(«Извените, по вашему запросу ничего не найдено», .

значит все работает, но это для статического варианта даты . а вот как теперь это исправить для динамически меняющейся даты.

Добавлено через 1 минуту и 8 секунд
Вот поставил 20/11/2008:
и в dataGridView1 вывелись ВСЕ найденные РЕЗУЛЬТАТЫ .. причем верные)))))

Добавлено через 3 минуты и 34 секунды
ВЫВОД:

дату надо получить из dateTimePicker1.Value и привести к виду:

#ч/м/г#,а потом только вызывать запрос.

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#»+dateTimePicker1.Value.ToString(«dd/MM/yyyy»)+»#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
B.SelectCommand.Connection.Open();
B.SelectCommand.ExecuteNonQuery();
B.SelectCommand.Connection.Close();
DataTable C = new DataTable();
B.Fill(C);
dataGridView1.DataSource = C;

Это сообщение отредактировал(а) Partizan — 4.12.2008, 12:28

Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет

Да уж(
и так не работате((((

Код
OleDbDataAdapter B = new OleDbDataAdapter(«SELECT * FROM Содержание_заказа WHERE Дата=#»+dateTimePicker1.Value.ToString(«MM/dd/yyyy»)+»#», «Provider=Microsoft.Jet.OLEDB.4.0;» + «Data Source=» + @»….kafe.mdb»);
Код
Дата содержит синтаксическую ошибку в выражении запроса ‘Дата=#11.20.2008#’.
Код
SELECT * FROM Содержание_заказа WHERE Дата=#11.20.2008#

Добавлено через 5 минут
Причем по моему не так:
ToString(«MM/dd/yyyy»)
а вот так:
ToString(«dd/MM/yyyy»)
ну всеравно не пашет((((

Это сообщение отредактировал(а) kuller — 4.12.2008, 12:32

Let’s do some .NET

Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

1

02.01.2011, 21:48. Показов 8648. Ответов 12


Студворк — интернет-сервис помощи студентам

Не могу разобраться как задать сообщение об ошибке в Access 2003!
Тип поля в таблице «Текстовый», нужно сделать так, что бы в это поле вводился текст только прописными буквами! Подскажите как это это сделать!



0



ironegg

1904 / 781 / 31

Регистрация: 11.02.2010

Сообщений: 1,567

02.01.2011, 23:43

2

один из вариантов. на событие ПослеОбновления повесь код

Visual Basic
1
поле = UCase(поле)



0



Евгений B.E.$.

0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

02.01.2011, 23:53

 [ТС]

3

Цитата
Сообщение от ironegg
Посмотреть сообщение

на событие ПослеОбновления повесь код

Visual Basic
1
поле=UCase(поле)

Ты используешь Office 2010… на 2003 так же?

Добавлено через 7 минут
Не помогло, точнее после ввода текста пишет ошибку, но при любом раскладе, т.е. ввожу «прагма» (как должно быть, вся фраза прописными буквами) и «Прагма» (вот это уже с ошибкой) и мне все равно выходит ошибка!



0



1904 / 781 / 31

Регистрация: 11.02.2010

Сообщений: 1,567

03.01.2011, 09:36

4

уточни в wikipedia.org что такое Прописные_буквы
придется тебе приложить бд. непонятно, что у тебя за ошибка



0



0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

03.01.2011, 11:42

 [ТС]

5

В общем получаеться так, вот написано в Википедии: «Прописной буквой называется заглавная буква в предложении, маленькая буква, того же шрифта, называется строчной.» Исходяиз этого, нужно чтобы текст вводимый в поле был следующим, например: «Прагма», а при вводе «прагма» или «ПРАГМА» он выдавал ошибку. Теперь я думаю должно быть понятно



0



Teslenko_EA

1180 / 631 / 39

Регистрация: 30.05.2010

Сообщений: 715

03.01.2011, 21:13

6

Здравствуйте Евгений B.E.$..

Цитата
Сообщение от Евгений B.E.$.
Посмотреть сообщение

Тип поля

в таблице

«Текстовый», нужно сделать так,

что бы

в это поле

вводился текст только прописными буквами

! Подскажите как это это сделать!

Эта задача не выполнима, совет ironegg относился к обработке данных с помощью формы, а у Вас таблица.
Ну а если Вы и с этим напутали (как с регистром букв прописные/строчные) и задача выполняется с использованием формы, «ответит» на вопрос «..как задать сообщение об ошибке..?» — конструкция предложенная ironegg, доработанная подобным образом:

Visual Basic
1
2
3
Private Sub Поле0_AfterUpdate()
    If Not Поле0 = UCase(Left(Поле0, 1)) + LCase(Mid(Поле0, 2)) Then MsgBox "..."
End Sub

Евгений.



0



0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

03.01.2011, 21:23

 [ТС]

7

Здравствуйте, Teslenko_EA!

Большое спасибо за помощь, но не могли бы вы на конкретном примере это написать, а именно, как я понимаю вместо слова «поле» нужно вписывать название того поля на которое накладывается ограничение. Но дальше не могу немного понять что и куда! Просто access я начал изучать относительно недавно и многое чего еще не знаю, в частности Visual Basic! Был бы Вам очень признателен, если несколько поподробней расписали, что, куда и как вводиться! Заранее большое!

PS: имя поля «Предприятие», мне так будет проще с ориентироваться, на своем конкретном примере!



0



Teslenko_EA

1180 / 631 / 39

Регистрация: 30.05.2010

Сообщений: 715

03.01.2011, 21:56

8

подобная конструкция корректнее

Visual Basic
1
2
3
4
5
6
Private Sub Поле0_AfterUpdate()
Dim s1$, s2$
s1 = Поле0
s2 = UCase(Left(s1, 1)) + LCase(Mid(s1, 2))
If InStr(1, s1, s2, vbBinaryCompare) Then MsgBox "Error...."
End Sub

Евгений B.E.$., поверьте объяснение «на пальцах» не дает желаемого результата.
Выкладывайте архив с образцом Вашей БД, и на Вашем примере можно будет продемонстрировать способ решения Вашей задачи.
Евгений.

P.S. свои сообщения я подписываю в надежде, что обращаться ко мне будут не по НИК’у, а по имени.



0



0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

03.01.2011, 22:10

 [ТС]

9

Евгений, вот образец моей БД, так же скинул файл, где написано условие задания, с которым у меня возникла проблема! Это пункт №4!



0



1904 / 781 / 31

Регистрация: 11.02.2010

Сообщений: 1,567

06.01.2011, 02:29

10

посмотрел БД. в файле только таблицы. сделай, будь добр, форму, через которую будешь добавлять записи, а мы предложим варианты по ограничению ввода



0



0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

06.01.2011, 02:35

 [ТС]

11

Цитата
Сообщение от ironegg
Посмотреть сообщение

посмотрел БД. в файле только таблицы. сделай, будь добр, форму, через которую будешь добавлять записи, а мы предложим варианты по ограничению ввода

Хорошо, сделаю! Просто я думал что эта ошибка будет работать и без формы, а просто в таблице выводиться!



0



1904 / 781 / 31

Регистрация: 11.02.2010

Сообщений: 1,567

06.01.2011, 05:01

12

не, ну можно и примерно так сделать. но этож не наш метод. в форме все гораздо проще и симпатичнее. в форме полный контроль. таблицы только для хранения данных. представь, вдруг, ну вдруг понадобится ввести производителя (например) имя которого начинается на $…. или с маленькой буквы (это будет его торговая марка зарегистрированная, ему так больше нравится). придется всю базу переделывать!

Миниатюры

Как задать сообщение об ошибке в Access 2003???
 



0



0 / 0 / 0

Регистрация: 02.01.2011

Сообщений: 23

08.01.2011, 11:55

 [ТС]

13

ironegg, по твоей просьбе выкладываю БД с формой! Я сделал только для одной таблицы, если нужно будет что то исправить, скажи!



0



Возможно, вам также будет интересно:

  • Свойство памяти и ошибки памяти
  • Свойство не попадать в состояния отказов вследствие ошибок
  • Свойство виртуального коммутатора ошибка применения изменений
  • Свойство алгоритма заключающееся в отсутствии ошибок это
  • Свойство алгоритма заключающееся в отсутствии ошибок в том что

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии