Как сделать условие на значение в access
Перейти к содержимому

Как сделать условие на значение в access

  • автор:

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

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

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

Откройте вкладку Всеи введите условие на значение в ячейку свойстваУсловие на значение (Validation Rule).

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

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

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

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

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

Откройте вкладку Все, найдите ячейки свойствДоступ (Enabled)иЗаблокировано (Locked), а затем выполните одно из следующих действий.

Чтобы отключить элемент управления (элемент управления будет отображаться как недоступный и не сможет получать фокус), задайте для свойства Доступ (Enabled)значениеНет.

Чтобы разрешить чтение данных в элементе управления, но запретить их изменение, задайте для свойства Заблокировано (Locked)значениеДа. Если задать для свойстваДоступ (Enabled)значениеНет, а для свойстваЗаблокировано (Locked)— значениеДа, то элемент управления будет отображаться как доступный, но не сможет получать фокус.

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

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

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

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

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

Импорт или связывание данных в книге Excel

Импорт или связывание со списком SharePoint

Импорт или связывание с данными текстового файла

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

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

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

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

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

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

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

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

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

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

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

BETWEEN 0 AND 1

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

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

Дата должна быть в пределах 2007 года.

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

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

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

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

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

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

Как сделать условие на значение в access

Для ограничения списка записей, получаемых в результате работы запроса, только удовлетворяющими определенным условиям — в бланке запроса предусмотрены поля для условий отбора. Коротко про это было рассказано в «Шаг 22 — Создание запроса на выборку», теперь настало время разобраться более подробно.

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

Для текстового поля задается строка, содержимое которой будет сравниваться со значениями соответствующего поля таблицы. Совпадение значений приведет к добавлению текущей записи в итоговую таблицу. При составлении строки знак * означает любую последовательность символов, а ? один любой символ. Например, условие «Новикон» в поле Издательство, выдаст список книг, напечатанных только в этом издательстве. Условие «Нов*» соответствует значениям начинающимся с Нов, «*а*» выдаст все издательства с буквой а в названии, «. « отыщет все комбинации из пяти символов, а «??*» соответствует значениям состоящим не менее чем из двух символов.

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

Для этой цели служит специальная команда языка SQL, которая выглядит так:

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

    В режиме конструктора, скопируйте текст подсказки (без квадратных скобок) из поля Условие обора в буфер обмена. Для этого выделите строку подсказки и нажмите комбинацию клавиш Ctr+C на клавиатуре или воспользуйтесь пунктом Копировать, контекстного меню правой кнопки мыши.

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

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

Как сделать условие на значение в access

Используя условия запроса, вы можете находить в базе данных Access определенные элементы. Если элемент соответствует всем введенным условиям, он отобразится в результатах запроса.

Чтобы добавить условие в запрос Access, откройте этот запрос в конструкторе. Затем определите поля (столбцы), на которые распространяется данное условие. Если нужное поле в бланке запроса отсутствует, добавьте его с помощью двойного щелчка. Затем в строке Условия введите для него условие. Дополнительные сведения см. в статье Общие сведения о запросах.

Условие запроса — это выражение, которое Access сравнивает со значениями в полях запроса, чтобы определить, следует ли включать в результат записи, содержащие то или иное значение. Например, = «Воронеж» — это выражение, которое Access сравнивает со значениями в текстовом поле запроса. Если значение этого поля в определенной записи равно «Воронеж», Access включает ее в результаты запроса.

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

В этом разделе

Общие сведения об условиях запроса

Условие похоже на формулу — это строка, которая может включать ссылки на поля, операторы и константы. В Access условия запроса также называются выражениями.

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

Это условие применяется к числовому полю, такому как «Цена» или «ЕдиницНаСкладе». Оно позволяет вывести только те записи, в которых поле «Цена» или «ЕдиницНаСкладе» содержит значение больше 25 и меньше 50.

DateDiff («гггг», [ДатаРождения], Date()) > 30

Это условие применяется к полю «Дата/время», такому как «ДатаРождения». В результаты запроса включаются только записи, в которых количество лет между датой рождения человека и текущей датой больше 30.

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

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

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

Узнаем, где и как можно добавлять условия. Чтобы добавить условия в запрос, необходимо открыть его в Конструкторе. После этого следует определить поля, для которых вы хотите задать условия. Если поля еще нет на бланке запроса, добавьте его, перетащив его из окна конструктора запросов на сетку полей или дважды щелкнув поле (при этом поле автоматически добавляется в следующий пустой столбец в сетке). Наконец, введите условия в строку Условия.

Условия, заданные для разных полей в строке Условия, объединяются с помощью оператора AND. Другими словами, условия, заданные в полях «Город» и «ДатаРождения», интерпретируются следующим образом:

Город = «Воронеж» AND ДатаРождения < DateAdd гггг «, -40, Date())

1. Поля «Город» и «ДатаРождения» включают условия.

2. Этому условию соответствуют только записи, в которых поле «Город» имеет значение «Воронеж».

3. Этому условию соответствуют только записи людей, которым не менее 40 лет.

4. В результат будут включены только те записи, которые соответствуют обоим условиям.

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

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

1. 1. Условие «Город» указывается в строке «Условие отбора».

2. 2. Условие «ДатаРождения» указывается в строке «или».

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

Город = «Чикаго» OR ДатаРождения < DateAdd(«гггг», -40, Date())

Если требуется задать несколько альтернативных условий, используйте строки под строкой или.

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

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

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

Условия для текстовых полей, полей Memo и полей гиперссылок

Примечание: Начиная с версии Access 2013, текстовые поля носят название Краткий текст, а поля Memo — Длинный текст.

Следующие примеры относятся к полю «СтранаРегион», основанном на таблице, в которой хранится информация о контактах. Условие задается в строке Условие отбора поля на бланке.

Условие, заданное для поля «Гиперссылка», по умолчанию применяется к отображаемому тексту, который указан в поле. Чтобы задать условия для конечного URL-адреса, используйте выражение HyperlinkPart. У него следующий синтаксис: HyperlinkPart([Таблица1].[Поле1],1) = «http://www.microsoft.com/», где «Таблица1» — это имя таблицы, содержащей поле гиперссылки, «Поле1» — это само поле гиперссылки, а «http://www.microsoft.com» — это URL-адрес, который вы хотите найти.

Чтобы добавить записи, которые.

Используйте это условие

Результат запроса

Точно соответствуют определенному значению, например «Китай»

Возвращает записи, в которых поле «СтранаРегион» содержит значение «Китай».

Не соответствуют определенному значению, например «Мексика»

Возвращает записи, в которых значением поля «СтранаРегион» не является «Мексика».

Начинаются с заданной строки символов, например «С»

Возвращает записи всех стран или регионов, названия которых начинаются с буквы «С», таких как Словакия и США.

Примечание: Символ «звездочка» (*) в выражении обозначает любую строку символов. Он также называется подстановочным знаком. Список таких знаков см. в статье Справочные сведения о подстановочных знаках в приложении Access.

Не начинаются с заданной строки символов, например «С»

Возвращает записи всех стран или регионов, названия которых не начинаются с буквы «С».

Содержат заданную строку, например «Корея»

Возвращает записи всех стран или регионов, названия которых содержат строку «Корея».

Не содержат заданную строку, например «Корея»

Возвращает записи всех стран или регионов, названия которых не содержат строку «Корея».

Заканчиваются заданной строкой, например «ина»

Возвращает записи всех стран или регионов, названия которых заканчиваются на «ина», таких как «Украина» и «Аргентина».

Не заканчиваются заданной строкой, например «ина»

Возвращает записи всех стран или регионов, названия которых не заканчиваются на «ина», как в названиях «Украина» и «Аргентина».

Содержат пустые значения (или значения отсутствуют)

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

Не содержат пустых значений

Возвращает записи, в которых это поле содержит значение.

Содержат пустую строку

Возвращает записи, в которых поле имеет пустое значение (но не значение NULL). Например, записи о продажах другому отделу могут содержать пустое значение в поле «СтранаРегион».

Не содержат пустых строк

Возвращает записи, в которых поле «СтранаРегион» имеет непустое значение.

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

Возвращает записи, в которых значение в поле отсутствует или является пустым.

Ненулевые и непустые

Is Not Null And Not «»

Возвращает записи, в которых поле «СтранаРегион» имеет непустое значение, не равное NULL.

При сортировке в алфавитном порядке следуют за определенным значением, например «Мексика»

Возвращает записи с названиями стран и регионов, начиная с Мексики и до конца алфавита.

Входят в определенный диапазон, например от А до Г

Возвращает страны и регионы, названия которых начинается с букв от «А» до «Г».

Совпадают с одним из двух значений, например «Словакия» или «США»

«Словакия» Or «США»

Возвращает записи для США и Словакии.

Содержат одно из значений, указанных в списке

In(«Франция», «Китай», «Германия», «Япония»)

Возвращает записи всех стран или регионов, указанных в списке.

Содержат определенные знаки в заданном месте значения поля

Right([СтранаРегион], 1) = «а»

Возвращает записи всех стран или регионов, названия которых заканчиваются на букву «а».

Соответствуют заданной длине

Возвращает записи стран или регионов, длина названия которых превышает 10 символов.

Соответствуют заданному шаблону

Возвращает записи стран или регионов, названия которых состоят из пяти символов и начинаются с «Лив», например Ливия и Ливан.

Примечание: Символы ? и _ в выражении обозначают один символ. Они также называются подстановочными знаками. Знак _ нельзя использовать в одном выражении с символом ?, а также с подстановочным знаком *. Вы можете использовать подстановочный знак _ в выражении, где есть подстановочный знак %.

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

Следующие примеры относятся к полю «ЦенаЗаЕдиницу», основанном на таблице, в которой хранится информация о товарах. Условие задается в строке Условие отбора поля на бланке запроса.

Чтобы добавить записи, которые.

Результат запроса

Точно соответствуют определенному значению, например 1000

Возвращает записи, в которых цена за единицу товара составляет 1000 ₽.

Не соответствуют значению, например 10 000

Возвращает записи, в которых цена за единицу товара не равна 10 000 ₽.

Содержат значение, которое меньше заданного, например 1000

Возвращает записи, в которых цена товара меньше 1000 ₽ (<1000). Второе выражение (<=1000) отображает записи, в которых цена не больше 1000 ₽.

Содержат значение, которое больше заданного, например 999,99

Возвращает записи, в которых цена товара больше 999,99 ₽ (>999,99). Второе выражение отображает записи, цена в которых не меньше 999,99 ₽.

Содержат одно из двух значений, например 200 или 250

Возвращает записи, в которых цена товара равна 200 или 250 ₽.

Содержат значение, которое входит в определенный диапазон

>499,99 and <999,99
или
Between 500 and 1000

Возвращает записи товаров с ценами в диапазоне от 499,99 до 999,99 ₽ (не включая эти значения).

Содержат значение, которое не входит в определенный диапазон

Возвращает записи, в которых цена товара не находится в диапазоне от 500 до 1000 ₽.

Содержит одно из заданных значений

Возвращает записи, в которых цена товара равна 200, 250 или 300 ₽.

Содержат значение, которое заканчивается на заданные цифры

Возвращает записи товаров, цена которых заканчивается на 4,99, например 4,99 ₽, 14,99 ₽, 24,99 ₽ и т. д.

Примечание: Знаки * и % в выражении обозначают любое количество символов. Они также называются подстановочными знаками. Знак % нельзя использовать в одном выражении с символом *, а также с подстановочным знаком ?. Вы можете использовать подстановочный знак % в выражении, где есть подстановочный знак _.

Содержат пустые значения (или значения отсутствуют)

Возвращает записи, для которых не введено значение в поле «ЦенаЗаЕдиницу».

Содержат непустые значения

Возвращает записи, в поле «ЦенаЗаЕдиницу» которых указано значение.

Условия для полей «Дата/время»

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

Используйте этот критерий

Результат запроса

Точно соответствуют значению, например 02.02.2006

Возвращает записи транзакций, выполненных 2 февраля 2006 г. Обязательно ставьте знаки # до и после значений даты, чтобы Access мог отличить значения даты от текстовых строк.

Не соответствуют значению, такому как 02.02.2006

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

Содержат значения, которые предшествуют определенной дате, например 02.02.2006

Возвращает записи транзакций, выполненных до 2 февраля 2006 г.

Чтобы просмотреть транзакции, выполненные в определенную дату или до нее, воспользуйтесь оператором <= вместо оператора <.

Содержат значения, которые следуют за определенной датой, например 02.02.2006

Возвращает записи транзакций, выполненных после 2 февраля 2006 г.

Чтобы просмотреть транзакции, выполненные в определенную дату или после нее, воспользуйтесь оператором >= вместо оператора >.

Содержат значения, которые входят в определенный диапазон дат

>#02.02.2006# and <#04.02.2006#

Возвращает записи транзакций, выполненных в период между 2 и 4 февраля 2006 г.

Кроме того, для фильтрации по диапазону значений, включая конечные значения, вы можете использовать оператор Between. Например, выражение Between #02.02.2006# and #04.02.2006# идентично выражению >=#02.02.2006# and <=#04.02.2006#.

Содержат значения, которые не входят в определенный диапазон

Возвращает записи транзакций, выполненных до 2 февраля 2006 г. или после 4 февраля 2006 г.

Содержат одно из двух заданных значений, например 02.02.2006 или 03.02.2006

#02.02.2006# or #03.02.2006#

Возвращает записи транзакций, выполненных 2 или 3 февраля 2006 г.

Содержит одно из нескольких значений

In (#01.02.2006#, #01.03.2006#, #01.04.2006#)

Возвращает записи транзакций, выполненных 1 февраля 2006 г., 1 марта 2006 г. или 1 апреля 2006 г.

Содержат дату, которая выпадает на определенный месяц (вне зависимости от года), например декабрь

DatePart(«m»; [ДатаПродажи]) = 12

Возвращает записи транзакций, выполненных в декабре любого года.

Содержат дату, которая выпадает на определенный квартал (вне зависимости от года), например первый

DatePart(«q»; [ДатаПродажи]) = 1

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

Содержат текущую дату

Возвращает записи транзакций, выполненных сегодня. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи, в поле «ДатаЗаказа» которых указано 2 февраля 2006 г.

Содержат вчерашнюю дату

Возвращает записи транзакций, выполненных вчера. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за 1 февраля 2006 г.

Содержат завтрашнюю дату

Возвращает записи транзакций, которые будут выполнены завтра. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за 3 февраля 2006 г.

Содержат даты, которые выпадают на текущую неделю

DatePart(«ww»; [ДатаПродажи]) = DatePart(«ww»; Date()) and Year([ДатаПродажи]) = Year(Date())

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

Содержат даты, которые выпадают на прошлую неделю

Year([ДатаПродажи])* 53 + DatePart(«ww»; [ДатаПродажи]) = Year(Date())* 53 + DatePart(«ww»; Date()) — 1

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

Содержат даты, которые выпадают на следующую неделю

Year([ДатаПродажи])* 53+DatePart(«ww»; [ДатаПродажи]) = Year(Date())* 53+DatePart(«ww»; Date()) + 1

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

Содержат дату, которая выпадает на последние 7 дней

Between Date() and Date()-6

Возвращает записи транзакций, выполненных за последние 7 дней. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за период с 24 января 2006 г. по 2 февраля 2006 г.

Содержат дату, которая выпадает на текущий месяц

Year([ДатаПродажи]) = Year(Now()) And Month([ДатаПродажи]) = Month(Now())

Возвращает записи за текущий месяц. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за февраль 2006 г.

Содержат дату, которая выпадает на прошлый месяц

Year([ДатаПродажи])* 12 + DatePart(«m»; [ДатаПродажи]) = Year(Date())* 12 + DatePart(«m»; Date()) — 1

Возвращает записи за прошлый месяц. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за январь 2006 г.

Содержат дату, которая выпадает на следующий месяц

Year([ДатаПродажи])* 12 + DatePart(«m»; [ДатаПродажи]) = Year(Date())* 12 + DatePart(«m»; Date()) + 1

Возвращает записи за следующий месяц. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за март 2006 г.

Содержат дату, которая выпадает на последние 30 дней или 31 день

Between Date( ) And DateAdd(«M», -1, Date( ))

Записи о продажах за месяц. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за период со 2 января 2006 г. по 2 февраля 2006 г.

Содержат дату, которая выпадает на текущий квартал

Year([ДатаПродажи]) = Year(Now()) And DatePart(«q»; Date()) = DatePart(«q»; Now())

Возвращает записи за текущий квартал. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за первый квартал 2006 г.

Содержат дату, которая выпадает на прошлый квартал

Year([ДатаПродажи])*4+DatePart(«q»;[ДатаПродажи]) = Year(Date())*4+DatePart(«q»;Date())- 1

Возвращает записи за прошлый квартал. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за последний квартал 2005 г.

Содержат дату, которая выпадает на следующий квартал

Возвращает записи за следующий квартал. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за второй квартал 2006 г.

Содержат дату, которая выпадает на текущий год

Возвращает записи за текущий год. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за 2006 г.

Содержат дату, которая выпадает на прошлый год

Year([ДатаПродажи]) = Year(Date()) — 1

Возвращает записи транзакций, выполненных в прошлом году. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за 2005 г.

Содержат дату, которая выпадает на следующий год

Year([ДатаПродажи]) = Year(Date()) + 1

Возвращает записи транзакций, которые будут выполнены в следующем году. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за 2007 г.

Содержат дату, которая приходится на период с 1 января до текущей даты (записи с начала года до настоящего момента)

Year([ДатаПродажи]) = Year(Date()) and Month([ДатаПродажи]) <= Month(Date()) and Day([ДатаПродажи]) <= Day (Date())

Возвращает записи транзакций, которые приходятся на период с 1 января текущего года до сегодняшней даты. Если сегодняшняя дата — 02.02.2006 г., вы увидите записи за период с 1 января 2006 г. по 2 февраля 2006 г.

Содержат прошедшую дату

Возвращает записи транзакций, выполненных до сегодняшнего дня.

Содержат будущую дату

Возвращает записи транзакций, которые будут выполнены после сегодняшнего дня.

Фильтр пустых (или отсутствующих) значений

Возвращает записи, в которых не указана дата транзакции.

Фильтр непустых значений

Возвращает записи, в которых указана дата транзакции.

Условия для полей «Да/Нет»

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

«Да», «Истина», 1 или -1

Проверено для значения «Да». После ввода значение 1 или -1 изменяется на «Истина» в строке условий.

Проверено для значения «Нет». После ввода значение 0 изменяется на «Ложь» в строке условий.

Нет значения (null)

Любое число, отличное от 1, -1 или 0

Нет результатов, если это единственное значение условия в поле

Любая строка символов, отличная от «Да», «Нет», «Истина» или «Ложь»

Не удается выполнить запрос из-за ошибки несоответствия типов данных.

Условия для других полей

Вложения. В строке Условие отбора введите Is Null, чтобы включить записи, которые не содержат вложений. Введите Is Not Null, чтобы включить записи с вложениями.

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

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

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

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

Найдите исходную таблицу в области навигации.

Откройте таблицу в Конструкторе, сделав одно из следующего:

Щелкните таблицу и нажмите клавиши CTRL+ВВОД.

Щелкните таблицу правой кнопкой мыши и выберите пункт Конструктор.

Тип данных для каждого поля указан в столбце Тип данных на бланке таблицы.

Многозначные поля. Данные в многозначных полях хранятся как строки скрытой таблицы, которые Access создает и заполняет для представления поля. В Конструкторе запроса они представлены в списке полей с помощью расширяемого поля. Чтобы задать условия для многозначного поля, необходимо указать их для одной строки скрытой таблицы. Для этого выполните указанные ниже действия.

Создайте запрос, содержащий многозначное поле, и откройте его в Конструкторе.

Разверните многозначное поле, щелкнув символ плюса (+) рядом с ним. Если поле уже развернуто, то выводится минус (). Под именем поля вы увидите поле, представляющее одно значение многозначного поля. Это поле будет иметь то же имя, что и многозначное поле, но к нему будет добавлена строка .Значение.

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

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

Каждое значение в многозначном поле будет оцениваться по отдельности на основе указанных условий. Например, допустим, что в многозначном поле хранится список чисел. Если указать условия >5 AND <3, будут выведены все записи, в которых есть по крайней мере одно значение больше 5 и одно значение меньше 3.

Как сделать условие на значение в access

Контроль и проверка введенных данных

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

  • условия на значение поля;
  • условия на значения записи.

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

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

  1. Открыть таблицу в режиме Конструктора.
  2. В верхней части окна выбрать нужное поле.
  3. Открыть на панели свойств поля вкладку Общие (General) и выбрать свойство Условие на значение (Validation Rule), а затем ввести необходимое условие. Задать условие на значение можно при помощи Построителя выражений (рис. 2.35), нажав на кнопку Построителя справа. Выражения, используемые в условиях, возвращают значения Истина (True), и в этом случае данные корректны, или Ложь (False) — данные некорректны. Одним из самых простых выражений, которое может встретиться в условии, является > 0, т. е. в поле могут вводиться только положительные числа. Для ввода более сложных выражений нужно знать правила построения выражений в Access. Эти правила, а также правила пользования Построителем выражений, подробно изложены в разд. "Создание выражений с помощью Построителя выражений" гл. 4.
  4. Выбрать свойство Сообщение об ошибке (Validation Text) и ввести сообщение, которое будет выводиться на экран, если данные не соответствуют заданному условию.

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

Чтобы проверить соответствие текущих данных в таблице условиям на значение, следует на заголовке таблицы в режиме конструктора нажать правую кнопку мыши, а затем выбрать команду Проверка условий (Test Validation Rules).

Рис. 2.35. Применение Построителя выражений при задании свойства Условие на значение

Условия на значение записи отличаются от условий на значение поля тем, что в условиях на значение записи допускаются ссылки на разные поля. Это позволяет использовать такие условия для сравнения значений, введенных в разные поля таблицы. Условия на значение записи проверяются при сохранении записи. Чтобы определить условие на значение записи, необходимо:

  1. Открыть таблицу в режиме Конструктора.
  2. Нажать на панели инструментов Конструктор таблиц (Table Design) кнопку Свойства (Properties) или, щелкнув правой кнопкой мыши по заголовку таблицы, выбрать из контекстного меню команду Свойства (Properties). Откроется диалоговое окно Свойства таблицы (Table Properties).
  3. Третья строка в этом окне — Условие на значение (Validation Rule), которое позволяет ввести выражение для условия на значение записи. Например, в таблице "Заказы" (Orders) нужно указать, что дата исполнения заказа должна быть больше, чем дата размещения. Если воспользоваться Построителем выражений, то видно, что в окне Построителя появилась папка Заказы, а рядом — список полей таблицы "Заказы" (Orders) (рис. 2.36).

Рис. 2.36. Ввод условия с помощью Построителя выражений

Выделите в списке значение ДатаИсполнения и нажмите на кнопку Вставить (Paste) или просто дважды щелкните мышью по этому элементу. В верхнем поле окна Построителя появится имя поля в квадратных скобках. Нажмите кнопку >. Аналогичным способом выберите из списка элемент ДатаРазмещения. В результате в верхнем поле появится выражение [ДатаРазмещения] > [ДатаИсполнения]. Нажмите кнопку ОК.

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

  1. Выбрать свойство Сообщение об ошибке (Validation Text) и ввести сообщение, которое будет выдаваться на экран, если данные не соответствуют указанному условию.

Для таблицы можно указать только одно выражение, определяющее условия на значения. Если же необходимо наложить более одного условия, то в ячейке свойства Условие на значение (Validation Rule) выражения можно объединить при помощи оператора And.

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

Значение поля может оказаться недопустимым по следующим причинам.

  • Значение несовместимо с типом данных поля (например, в числовых и текстовых полях или в поле даты). Если введено значение, не соответствующее типу данных поля, Microsoft Access пытается преобразовать его в правильный тип данных. Однако некоторые данные нельзя преобразовать в данные другого типа. Например, нельзя хранить текстовое значение в числовом поле.
  • Данные нарушают условие на значение, заданное в свойстве Условие на значение (Validation Rule) этого поля.
  • В поле необходимо ввести данные, а они не были введены.

Данные проверяются также при переходе на другую запись. Перед сохранением записи Microsoft Access проверяет все условия, заданные в свойстве Условие на значение (Validation Rule) записи. Кроме того, если таблица, в которую вносятся изменения, имеет ключ или уникальный индекс, то проверяется, что изменяемая запись не содержит в этом поле или полях значений, совпадающих со значениями в других записях таблицы. Если запись нельзя сохранить, необходимо внести требуемые изменения или нажать кнопку Отменить (Undo) для отмены всех изменений, внесенных в запись.

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

  1. Выбрать записи, столбцы, поля или часть текста поля, в которых требуется проверить орфографию.
  2. Нажать на кнопку Орфография (Spelling) на панели инструментов.

Кроме проверки орфографии, в Microsoft Access возможно автоматическое исправление орфографических ошибок при вводе данных. Для этого служит режим Автозамены (AutoCorrect), который позволяет автоматически исправлять слова, при вводе которых часто допускаются ошибки, а также автоматически заменять сокращения полными значениями. То есть можно ввести аббревиатуру, а Автозамена сама подставит расшифрованное наименование в поле. Чтобы включить режим Автозамены (AutoCorrect) необходимо:

  1. Выбрать в меню Сервис (Tools) команду Параметры автозамены (AutoCorrect Options) (рис. 2.37).
  2. Установить флажок Заменять при вводе (Replace text as you type).
  3. В поле Заменять (Replace) ввести образец, который должен заменяться автоматически.
  4. В поле на (With) ввести текст, который подставляется вместо образца.
  5. Нажать кнопку Добавить (Add).

Рис. 2.37. Диалоговое окно Автозамена

Текст, введенный до установки флажка Заменять при вводе (Replace text as you type), исправлен не будет.

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

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