Создание условия на значение для проверки данных в поле

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

Предполагаемое действие:


Основные сведения об условиях на значение

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

  • Типы данных.    Типы данных обеспечивают первый уровень проверки. При разработке таблицы базы данных определяются типы данных для каждого поля в таблице, и эти типы данных служат ограничением на вводимые пользователями данные. Например, в поле типа даты и времени можно ввести только дату и время, а в поле денежного типа можно ввести только денежные данные и т. д.
  • Размеры полей.    Размеры полей обеспечивают другой уровень проверки. Например, при создании поля для хранения имен можно указать, что оно должно принимать не более 20 знаков. Так можно предотвратить вставку в поле больших объемов ненужного текста недобросовестными пользователями или ошибочный ввод неопытным пользователем имени и фамилии в поле, предназначенное для хранения только имени.
  • Свойства таблицы.    Свойства таблицы обеспечивают особые типы проверки. Например, если задать для свойства Обязательное поле (Required) значение Да, пользователи обязательно должны будут вводить значение в это поле.

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

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

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

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

В этой статье рассматривается использование свойств Сообщение об ошибке (Validation Text) и Условие на значение (Validation Rule) в полях таблицы, запросах и элементах управления форм. Полное описание других средств проверки, таких как типы данных, размеры полей и маски ввода выходит за рамки данной статьи.

Дополнительные сведения о типах данных и размерах полей см. в статье Изменение типа данных для поля. Дополнительные сведения о масках ввода см. статью Создание маски ввода для ввода значений в поле или элемент управления в определенном формате.

Типы условий на значение

Можно создать два основных типа условий на значение.

  • Условия на значение поля.    Условие на значение поля используется для проверки значения, введенного в поле, при выходе из поля. Предположим, что имеется поле даты, и для свойства Условие на значение (Validation Rule) задано значение >=#01.01.2007#. Это условие требует ввода даты не ранее 1 января 2007 года. При вводе даты, предшествующей 2007 году, и попытке поместить курсор в другое поле в приложении Access нельзя перейти к другому полю, пока ошибка не будет исправлена.
  • Условия на значение записи (или таблицы)    Условие на значение записи используется для управления сохранением записи (строки в таблице). В отличие от условий на значение поля, в условиях на значение записи используются ссылки на другие поля той же таблицы. Условие на значение записи создается при необходимости сравнения значений одного поля со значениями в другом. Предположим, что требуется доставить товар в течение 30 дней, и в случае, если товар не будет доставлен в этот срок, необходимо возместить клиенту убытки. Можно задать условие на значение записи [ДатаНазначения]<=[ДатаЗаказа]+30, чтобы кто-нибудь не установил слишком позднюю дату доставки заказа (значение в поле «ДатаНазначения»).

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

Применение условий на значение

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

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

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

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

Полное описание выражений и функций выходит за рамки данной статьи. Дополнительные сведения о выражениях см. в статье Создание выражений. Дополнительные сведения о функциях см. в статьях на веб-узле Microsoft Office Online.

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

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

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

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

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

Условия на значения могут быть заданы для всех типов данных за исключением типов «Счетчик», «Объект OLE» и «Вложение» и числовых полей со значением «Код репликации».

Проверка данных в поле

  1. В области переходов щелкните правой кнопкой мыши таблицу, которую требуется изменить, и выберите команду Конструктор.
  2. В столбце Имя поля выберите поле, которое требуется изменить.
  3. В нижней части конструктора таблиц на вкладке Общие выделите ячейку свойства Условие на значение (Validation Rule) и введите условие на значение.

-или-

На вкладке Данные нажмите кнопку Изображение кнопки, чтобы открыть построитель выражений и создать выражение.

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

Введите условие, применимое только к полю. Например, можно ввести >0, чтобы можно было вводить только положительные значения. Помните, что условие на значения для поля не ссылается на другие поля в таблице. Если условие на значение ссылается на другие поля, это означает, что создается проверка на уровне записей.

  1. Выделите ячейку свойства Сообщение об ошибке (Validation Text) и введите сообщение об ошибке.

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

  1. Сохраните внесенные изменения.

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

Проверка данных в записи

  1. Повторите шаги 1-2 предыдущего раздела, чтобы открыть таблицу в режиме конструктора.
  2. На вкладке Общие введите условие на значение на уровне записи в ячейку свойства Условие на значение (Validation Rule).

-или-

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

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

Условия на уровне записей ссылаются на несколько полей. Например, условие [ДатаНазначения]<=[ДатаЗаказа]+30 ссылается на два поля в таблице, «ДатаНазначения» и «ДатаЗаказа», и гарантирует, что пользователи будут вводить даты срока исполнения заказа, отличающиеся от даты поступления заказа не более чем на 30 дней. Дополнительные примеры условий на значение на уровне записей приведены в разделе Справочные сведения об условии на значение.

  1. Сохраните изменения.

Проверка работы условий на значение

  1. В режиме конструктора откройте таблицу, содержащую нужное условие на значение.
  2. На вкладке Конструктор в группе Сервис выберите команду Проверка правил проверки данных.
  1. Нажмите кнопку Да, чтобы закрыть сообщение и начать проверку.
  2. Если будет предложено сохранить таблицу, нажмите кнопку Да.
  3. Возможно, в процессе работы будет выведено несколько других предупреждений. Читайте инструкции, данные в каждом предупреждении, и нажимайте кнопку Да или Нет, в соответствии с ситуацией, чтобы завершить или прекратить проверку.

Проверка работы условий на значение при помощи запроса

 Примечание.   Можно также проверить работу условия на значение, составив запрос, выявляющий записи, в которых не соблюдается это условие на значение. Результаты такого запроса показывают, какие именно записи не удовлетворяют условию на значение. Например, если задать для свойства Обязательное поле (Required) значение Да или Не Null, будут найдены поля, в которых отсутствуют значения.

  1. На вкладке Создание в группе Другие щелкните Конструктор запросов.

Изображение ленты Access

Будет открыт новый запрос в режиме конструктора и отображено диалоговое окно Добавление таблицы.

  1. В диалоговом окне Добавление таблицы выберите одну или несколько таблиц, которые необходимо использовать в запросе, и нажмите кнопку Добавить, чтобы добавить их в запрос, а затем нажмите кнопку Закрыть.

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

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

-или-

Перетащите поля из таблицы на пустые ячейки в строке Поле в нижней части бланка запроса.

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

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

Например, если используется условие на значение BETWEEN 100 AND 1000, введите <100 OR >1000.

  1. На вкладке Конструктор в группе Результаты выберите команду Запуск.

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

Проверка данных при вводе в формы

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

Можно также применить условие на значение к элементу управления формы путем открытия формы в режиме конструктора и добавления условия в свойство Условие на значение (Validation Rule) и сообщения об ошибке в свойство Сообщение об ошибке (Validation Text) элемента управления. Можно добавить условия на значение только в некоторые элементы управления формы. Наиболее простой способ определить, можно ли добавить условие на значение к элементу управления — это открыть форму в режиме конструктора и следовать инструкциям этого раздела.

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

<#01.01.2007#

Но затем было применено условие на значение для элемента управления, присоединенного к этому полю таблицы:

>=#01.01.2007#

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

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

Создание условия на значение

  1. В области переходов щелкните правой кнопкой мыши форму, которую требуется изменить, и выберите команду Конструктор.
  2. Щелкните правой кнопкой мыши элемент управления, который нужно изменить, и выберите команду Свойства для отображения окна свойств.
  3. Откройте вкладку Все и введите условие на значение в ячейку свойства Условие на значение (Validation Rule).

-или-

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

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

  1. Введите сообщение об ошибке в ячейку свойства Сообщение об ошибке (Validation Text).
  2. Сохраните изменения.

Блокировка элемента управления

  1. Повторите шаги 1-2 предыдущего раздела, чтобы открыть окно свойств элемента управления, который нужно заблокировать.
  2. Откройте вкладку Все, найдите ячейки свойств Доступ (Enabled) и Заблокировано (Locked), а затем выполните одно из следующих действий.
    • Чтобы отключить элемент управления (элемент управления будет отображаться как недоступный и не сможет получать фокус), задайте для свойства Доступ (Enabled) значение Нет.
    • Чтобы разрешить чтение данных в элементе управления, но запретить их изменение, задайте для свойства Заблокировано (Locked) значение Да. Если задать для свойства Доступ (Enabled) значение Нет, а для свойства Заблокировано (Locked) — значение Да, то элемент управления будет отображаться как доступный, но не сможет получать фокус.

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

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

При добавлении условий на значение в таблицу и последующем импорте данных в эту таблицу в приложении 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 дней.
[КонечнаяДата]>=[НачальнаяДата] Конечная дата не должна быть раньше начальной.

Синтаксис часто используемых условий на значение

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

Дополнительные сведения о выражениях см. в статье Создание выражений. Дополнительные сведения о функциях см. в статье Функции (по категориям).

При создании выражений помните следующие правила.

  • Имена полей таблицы следует заключать в квадратные скобки: [ДатаНазначения]<=[ДатаЗаказа]+30.
  • Даты следует заключать в знаки решетки (#): <#01.01.2007#
  • Текстовые значения следует заключать в двойные прямые кавычки: IN ("Токио","Париж","Москва"). Кроме того, обратите внимание на то, что элементы следует разделять запятыми, а списки заключать в круглые скобки.

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

Оператор Функция Пример
NOT Проверка на наличие противоположных значений. Используется перед любым оператором сравнения за исключением IS NOT NULL. NOT > 10 (то же, что и <=10).
IN Проверка на наличие значений, равных существующим элементам списка. Значение, используемое в сравнении, должно быть списком значений, разделенных запятыми и заключенных в круглые скобки. IN ("Токио","Париж","Москва")
BETWEEN Проверка на принадлежность к диапазону значений. Необходимо использовать два значения для сравнения — верхний и нижний пределы — и разделять эти значения с помощью разделителя AND. BETWEEN 100 AND 1000 (то же, что >=100 AND <=1000)
LIKE Сопоставляет образец строки с текстовым полем или полем МЕМО. LIKE "Гео*"
IS NOT NULL Требует ввода значения в поле. Результат тот же самый, что и при задании для свойства поля Обязательное поле (Required) значения Да. Однако при включении свойства Обязательное поле (Required), если пользователь не вводит значение, в приложении Access отображается краткое сообщение об ошибке. С базой данных будет удобнее работать, если использовать оператор IS NOT NULL и задать дружественное и информативное сообщение в свойстве Сообщение об ошибке (Validation Text). IS NOT NULL
AND Указывает, что все перечисленные условия должны выполняться для вводимых данных или что данные должны находиться в указанном диапазоне.

>= #01.01.2007# AND <=#03.06.2008#

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

OR Указывает, что для данных должно выполняться хотя бы одно из перечисленных условий. "Январь" OR "Февраль"
< Меньше
<= Меньше или равно.
> Больше.
>= Больше или равно.
= Равно.
<> Не равно.

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

В условиях на значение можно использовать любые подстановочные знаки, допустимые в Access. Помните, что в приложении Access поддерживаются два набора подстановочных знаков. Это связано с тем, что в Access поддерживается два стандарта для структурированного языка запросов (Structured Query Language, SQL), используемого для создания и управления базами данных: ANSI-89 и ANSI-92. В этих стандартах используются разные наборы подстановочных знаков.

По умолчанию во всех ACCDB- и MDB-файлах используется стандарт ANSI-89. Напротив, в проектах Access используется стандарт ANSI-92. В проекте Access таблицы в базе данных располагаются на компьютере с Microsoft SQL Server, а формы, отчеты и другие объекты располагаются на других компьютерах. При необходимости можно изменить стандарт ANSI для ACCDB- и MDB-файлов на ANSI-92.

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

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

 
 
Применимо к:
Access 2007