Правила проверки позволяют выполнять проверку данных по мере их ввода в базы данных Access для настольных систем. Для правильного форматирования правил вы можете использовать построитель выражений. Правила проверки можно задавать в конструкторе таблиц или в режиме таблицы. В Access существуют правила проверки трех типов.
1. Правило проверки полей . С помощью правила проверки полей можно указать условие, которому должны соответствовать все допустимые значения полей. Не указывайте текущее поле в качестве части правила, если вы не используете это поле в функции. Для ограничения типов символов, которые можно вводить в поле, удобно использовать маску ввода. Например, для полей даты можно задать правило проверки, запрещающее указывать прошедшие даты.
Краткие примеры
Запретить значения дат в прошлом: >=Date()
Общепринятый формат электронной почты: имеет значение NULL ИЛИ ((Как "*?@?*.? *") AND (не нравится "*[ ,;] *"))
Число меньше пяти: <=5
Поле валюты не может быть отрицательным: >=0
Ограничение длины символов в строке: Len([StringFieldName])<100
2. Правило проверки записей . С помощью правила проверки записей можно указать условие, которому должны соответствовать все допустимые записи. С помощью него вы можете сравнивать значения в разных полях. Например, для записи с двумя полями дат можно потребовать, чтобы значения одного поля всегда предшествовали значениям другого поля (то есть чтобы дата начала предшествовала дате окончания).
Краткие примеры
Убедитесь, что дата окончания не приходит до даты начала: [Дата окончания]>=[Дата начала]
Введите требуемую дату, которая наступает не более чем через 30 дней после даты заказа: [RequiredDate]<=[OrderDate]+30
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
-
Вложение
-
Код репликации
Создание правила проверки поля
-
Выберите поле, которое требуется проверить.
-
На вкладке Поля таблицы в группе Проверка полей щелкните Проверка, а затем — Правило проверки полей.
-
Создайте правило проверки с помощью построителя выражений. Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.
Создание сообщения для отображения при вводе недопустимых данных
-
Выберите поле, для которого требуется создать сообщение на случай ввода недопустимых значений. Поле уже должно содержать правило проверки.
-
На вкладке Поля таблицы в группе Проверка поля щелкните Проверка, а затем — Сообщение проверки поля.
-
Введите соответствующее сообщение. Например, для правила проверки >10 можно ввести сообщение Введите значение больше 10.
Примеры правил проверки поля и сообщений см. в разделе Справочная информация о правилах проверки.
Создание правила проверки записи
-
Откройте таблицу, в которой требуется выполнить проверку записей.
-
На вкладке Поля таблицы в группе Проверка полей щелкните Проверка, а затем — Правило проверки.
-
Создайте правило проверки с помощью построителя выражений. Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.
Создание сообщения для отображения при вводе недопустимой записи
-
Откройте таблицу, для которой требуется создать сообщение на случай ввода недопустимых значений. Таблица уже должна содержать правило проверки.
-
На вкладке Поля таблицы в группе Проверка поля щелкните Проверка, а затем — Сообщение проверки.
-
Введите соответствующее сообщение. Например, если правило проверки имеет значение [StartDate]<[EndDate], может появиться сообщение "StartDate должен предшествовать EndDate".
Проверка имеющихся данных на соответствие новому правилу проверки
При добавлении правила проверки в существующую таблицу может потребоваться применить правило для проверки всех имеющихся данных на допустимость.
-
Откройте таблицу для проверки в режиме конструктора.
На вкладке Конструктор таблиц в группе Сервис щелкните Проверить правила проверки.
-
Нажмите кнопку Да, чтобы закрыть сообщение и начать проверку.
-
Если будет предложено сохранить таблицу, нажмите кнопку Да.
-
В процессе работы могут выводиться и другие предупреждения. Прочтите инструкции в каждом из них и нажмите соответствующие кнопки Да или Нет, чтобы завершить или прекратить проверку.
Добавление правила проверки в элемент управления формы
Можно использовать свойства элементов управления Правило проверки и Сообщение об ошибке для проверки данных, вводимых в элемент управления, и предупреждения пользователей о вводе недопустимых данных.
Совет: При автоматическом создании формы из таблицы с помощью одной из команд в группе "Формы" на ленте все проверки поля, имеющиеся в базовой таблице, наследуются соответствующими элементами управления в форме.
Элемент управления и поле таблицы, с которым он связан, могут иметь разные правила проверки. Это позволяет при необходимости установить для формы большее количество ограничений, чем для таблицы. В этом случае сначала будет применяться правило формы, а затем — правило таблицы. Если для таблицы установлено больше ограничений, чем для формы, приоритет отдается правилам, заданным для поля таблицы. Если правила являются взаимоисключающими, ввод каких-либо данных будет невозможен.
Предположим, что к полю даты в таблице применено следующее правило:
<#01.01.2010#
А затем к элементу управления формы, связанному с этим полем данных, применено другое правило:
>=#01.01.2010#
Таким образом, в поле данных необходимо вводить значения, предшествующие 2010 году, а в элементе управления формы — не ранее этого года. Согласно этим правилам нельзя ввести никакую дату.
Создание правила проверки для элемента управления
-
Щелкните правой кнопкой мыши форму, которую требуется изменить, и выберите пункт Режим макета.
-
Щелкните правой кнопкой мыши элемент управления, который требуется изменить, и выберите пункт Свойства для отображения окна свойств.
-
Откройте вкладку Все и введите правило проверки в поле свойства Правило проверки.
Совет: Нажмите кнопку Построить для запуска построителя выражений.
Дополнительные сведения об использовании построителя выражений см. в статье Использование построителя выражений.
-
Введите сообщение об ошибке в поле свойства Сообщение об ошибке.
Справочная информация о правилах проверки
В правилах проверки используется синтаксис выражений 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, выполнив следующие действия.
-
На вкладке Файл выберите пункт Параметры.
-
В диалоговом окне Параметры Access выберите пункт Конструкторы объектов.
-
В разделе Конструктор запросов в группе Синтаксис для SQL Server (ANSI 92) установите флажок эта база данных.
Дополнительные сведения об использовании подстановочных знаков и стандартах ANSI для языка SQL см. в статье Справочные сведения о подстановочных знаках в Access.