Access

Access условие на значение: Ограничение ввода данных с помощью правил проверки

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

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

Печать

 

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

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

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

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

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

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

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

Условия на значение вносят ограничения на данные, которые пользователь может ввести в поле таблицы или элемент управления (например, поле ввода) в форме. В 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)в полях таблицы, запросах и элементах управления форм. Полное описание других средств проверки, таких как типы данных, размеры полей и маски ввода выходит за рамки данной статьи.

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

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

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

  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.

Метки: MS Access, MS Access 2010, Таблицы, Типы данных

admin

Проблемы с базой данной Access? Не можете сдать курсовую и получить зачет? Заходите в группу ВКонтакте vk.com/access_community. Поможем!

Создание условных (логических) выражений

В этой статье объясняется, как создавать условные (также известные как логические) выражения в Access. Условное выражение принимает значение true или false, а затем возвращает результат, соответствующий заданному вами условию. Если вы используете функции в своих условных выражениях, вы также можете указать действие для значений, которые соответствуют и не соответствуют условию в выражении. Например, вы можете создать выражение, которое находит все продажи с маржой прибыли 10 процентов или меньше, а затем указать, что эти числа должны отображаться красным шрифтом, или заменить значения сообщением.

В этой статье

  • Понимание условных выражений

  • Создать условное выражение

  • Примеры условных выражений

Понимание условных выражений

Условное выражение — это тип выражения, которое проверяет ваши данные на соответствие условию, а затем выполняет действие в зависимости от результата.

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

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

  • Для полей таблицы вы добавляете свое выражение к свойству правила проверки поля. Затем пользователи должны ввести в поле значения, соответствующие условиям в выражении. Например, если вы используете такое выражение, как >=#1/1/2000# в поле Дата/Время, пользователи должны ввести значения, равные или более поздние, чем 1 января 2000 года.

  • Для элементов управления в формах вы можете добавить свое выражение в

    Control Source или Validation Rule свойство элемента управления. Как правило, вы добавляете условные выражения в свойство правила проверки , а выражения, вычисляющие значения, добавляете в свойство Control Source . Например, использование >=#1/1/2000# в свойстве правила проверки элемента управления предотвращает ввод пользователями недопустимой даты. Использование такого выражения, как Date() в свойстве Control Source , отображает текущую дату как значение по умолчанию.

  • Для запросов вы можете добавить свои условные выражения в пустую ячейку в строке Field или использовать выражение в строке Criteria запроса. При использовании выражения в строке

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

    Например, вы можете использовать это выражение в строке Поле запроса: =IIf([Дата заказа]<=#04/01/2018#,[Дата заказа],"Заказ поступил после 1 апреля") . Выражение указывает критерий даты (<=#04/01/2018#). При выполнении запроса отображаются все значения дат, соответствующие критерию, а любые значения дат, не соответствующие критерию, заменяются сообщением «Заказ введен после 1 апреля». Шаги в разделе Добавление выражения в запрос поясняют, как использовать это выражение в запросе.

    Напротив, использование этого выражения в поле запроса Criteria возвращает только те записи с датами, которые соответствуют условию:

    Bet ween #01/04/2018# AND #15/05/2018# .

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

Верх страницы

Создать условное выражение

Шаги в этом разделе объясняют, как добавить условное выражение в таблицу, элемент управления в форме или отчете и запрос. В каждом наборе шагов используется немного отличающееся выражение для проверки значений в поле «Дата/время» и выполнения действий в зависимости от того, соответствуют ли значения даты заданному условию.

Добавить выражение в поле таблицы

  1. В области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите изменить, и выберите Представление «Дизайн» в контекстном меню.

  2. В столбце Тип данных щелкните поле Дата/Время.

  3. В разделе Свойства поля на вкладке Общие щелкните Правило проверки 9 0030 и введите следующее выражение:

    >=#01/01/2000#

    Примечание. Вам не обязательно использовать формат даты в США. Вы можете использовать формат даты для вашей страны/региона или региона. Однако вы должны окружить значение даты знаком фунта (

    # ), как показано на рисунке.

  4. Щелкните столбец рядом с Validation Text и введите следующую текстовую строку:

    Дата должна быть больше 1 января 2000 г.

    Опять же, вы можете использовать свой локальный формат даты.

  5. Сохраните изменения и переключитесь в режим таблицы. Для этого щелкните правой кнопкой мыши вкладку документа для таблицы и выберите Datasheet View в контекстном меню.

  6. org/ListItem»>

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

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

  1. В области навигации щелкните правой кнопкой мыши форму, которую вы хотите изменить, и выберите Design View в контекстном меню.

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

    Появится лист свойств для элемента управления.

  3. На вкладке Данные или на вкладке Все щелкните поле рядом с Правилом проверки и введите следующее выражение:

    >=#01/01/2000#

    Примечание. Вам не обязательно использовать формат даты в США. Вы можете использовать формат даты для вашей страны/региона или региона. Однако вы должны окружить значение даты знаком решетки ( # ), как показано на рисунке.

  4. Щелкните столбец рядом с Validation Text и введите следующую текстовую строку:

    Дата должна быть больше 1 января 2000 г.

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

Добавить выражение в запрос

  1. В области навигации щелкните правой кнопкой мыши запрос, который вы хотите изменить, и выберите Design View в контекстном меню.

  2. Щелкните пустую ячейку в строке Поле сетки дизайна и введите следующее выражение:

    =IIf([ Field_Name ]<=#01. 04.2018# , [ Field_Name ] , «Дата позднее 1 апреля 2018»)

    При вводе выражения убедитесь, что вы заменили оба экземпляра Field_Name именем вашего поля Дата/Время. Кроме того, если в вашей таблице нет дат до 1 апреля 2018 г., измените даты в выражении, чтобы они работали с вашими данными.

  3. Сохраните изменения и нажмите Выполнить , чтобы просмотреть результаты.

Выражение работает следующим образом: первый аргумент ( =IIf([ Field_Name ]<=#04/01/2018# ) указывает условие, которому должны соответствовать данные — даты должны быть не ранее 1 апреля. , 2018. Второй аргумент ( [ Field_Name ] ) указывает, что пользователи увидят, когда условие истинно – даты в поле. Третий аргумент ( «Дата позднее 1 апреля 2018 г.») ) указывает сообщение, которое видят пользователи, когда данные не соответствуют условию.

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

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

Верх страницы

Примеры условных выражений

Выражения в следующей таблице показывают некоторые способы вычисления значений true и false. Эти выражения используют функцию IIf (Немедленное если), чтобы определить, является ли условие истинным или ложным, а затем возвращают одно значение, если условие истинно, и другое значение, если условие ложно.

Дополнительные сведения см. в статье Функция IIf.

Выражение

Описание

=IIf([Подтверждено] = «Да», «Заказ подтвержден», «Заказ не подтвержден»)

Отображает сообщение «Заказ подтвержден», если значение поля Подтверждено равно Да; в противном случае отображается сообщение «Заказ не подтвержден».

=IIf(IsNull([Страна/регион]),» «, [Страна/регион])

Отображает пустую строку, если значение поля Страна/регион равно Null; в противном случае отображается значение поля Страна/регион.

=IIf(IsNull([Регион]),[Город]&» «& [Почтовый индекс], [Город]&» «&[Регион]&» » &[Почтовый индекс])

Отображает значения полей City и PostalCode, если значение поля Region равно Null; в противном случае отображаются значения полей «Город», «Регион» и «Почтовый индекс».

=IIf(IsNull([RequiredDate] — [ShippedDate]), «Проверить отсутствие даты», [RequiredDate] — [ShippedDate])

Отображает сообщение «Проверить отсутствующую дату», если результат вычитания значения поля ShippedDate из поля RequiredDate равен Null; в противном случае отображается разница между значениями полей RequiredDate и ShippedDate.

Верх страницы

Условное форматирование, выражение доступа, которое проверяет, находится ли значение в 3-й строке поля с возвратом каретки

Задавать вопрос

спросил

Изменено 1 год, 7 месяцев назад

Просмотрено 181 раз

1

Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.

Я создал матричный запрос для отчета, который объединяет несколько полей с возвратом каретки:

 TheValue: Max([CLCraftLevel]) & Chr(13) & Chr(10) & Max([CTrainingLevel]) & Chr(13 ) & Chr(10) & Max([CSignatory]) & Chr(13) & Chr(10) & Max([CAuthDate]) & Chr(13) & Chr(10) & First([CAuthorisedBy])
 

Результат может выглядеть следующим образом ([] — строки без значения):

1

[]

S

19/01/2021

Блоги вакансий

или это:

3]

2

[]

[]

[]

или это:

[]

[]

S

19/10/2021

. «S», тогда мне нужно условное форматирование, чтобы сделать поле синим в моем отчете, тогда, если во второй строке есть «2», а в третьей строке нет «S», тогда мне нужно условное форматирование, чтобы сделать поле желтым . Я перепробовал много вариантов выражений и мне больше всего повезло с этим:

 Левый(Mid$([Col8],4,InStrRev([Col8],Chr(13))-1),1)="2"
 

Но я должен изменить 4 в зависимости от того, сколько строк заполнено.
Обычно я не использую выражения, поэтому немного теряюсь. Я также был бы открыт для использования решения vba, если это лучший способ сделать это.

  • ms-доступ
  • выражение
  • условное форматирование

2

Предложить использование пользовательской функции VBA. Функция Split() преобразует строку в одномерный массив с отсчетом от нуля (третья строка будет элементом с индексом 2). Поскольку известно, на какой элемент массива смотреть (зацикливание массива для выполнения чего-либо не требуется), не нужен полный объект массива.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *