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

Основные логические операторы.. 7

Логический оператор AND.. 8

Логический оператор OR.. 13

Логический оператор NOT. 19

Сочетание логических операторов And, Or и Not 22

Специальные операторы сравнения. 27

Логический оператор BITWEEN.. 29

Логический оператор IN.. 48

Логический оператор LIKE. 60

Совместное использование логических операторов. 85

Условия отбора записей в фильтрах или запросах вводятся в одноименную строку бланка расширенного фильтра или бланка запроса (см. Рис. 1). 

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

 

Рис. 1. Ввод условий на значения для полей таблицы (таблиц).

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

Текстовое значение, используемое в качестве условия отбора, должно быть заключено в кавычки (Рис. 1, А). Следует обратить ваше внимание на то, что кавычки к введенному тексту добавляются автоматически (в бланке на Рис. 1 для поля Область было введено WA, но после нажатия клавиши Enter на экране появилось «WA»).

Числовые значения в кавычки не заключаются (Рис. 1, Б).

Даты и время, используемые в качестве условия отбора, должны быть заключены в специальные символы – «решеточки» (Рис. 1, В). «Решеточки» к введенной дате или времени добавляются автоматически (в бланке на Рис. 1 для поля ДатаРазмещения было введено >01.02.99 And < 03.11.01, но после нажатия клавиши Enter на экране появилось «>#01.02.99# And < #03.11.01#»).

В начало документа

Основные логические операторы Логический оператор AND При вводе условий отбора для нескольких полей все выражения в строке Условие отбора или в строке Или должны принимать значение Истина для любой записи, включаемой в набор записей фильтра или запроса. Иными словами, Access выполняет логическую операцию AND  над частными условиями отбора, находящимися в одной строке. Так если для полей Группа и Фамилия таблицы «Студенты» базы данных Student97 заданы условия как на Рис. 2, то будут отобраны записи о студентках 102 группы с фамилией Ефимова.

Рис. 2. Условия отбора связаны логическим оператором AND.

Есть еще один способ задать несколько частных условий для одного поля, связанных оператором AND. Можно ввести все условия в одну ячейку строки Условие отбора, соединив их оператором AND (Рис. 1, В).

В начало документа

Логический оператор OR Когда вы задаете для некоторого поля несколько частных условий отбора, соединенных логическим оператором OR, то для того, чтобы запись была отобрана фильтром или запросом, истинным должно быть хотя бы одно из них. Есть также два способа задать несколько частных условий для одного поля, связанных оператором OR. Можно ввести все условия в одну ячейку строки Условие отбора, соединив их оператором OR (Рис. 1,Г). Другой вариант: ввести каждое частное условие в отдельную ячейку строки Или. При использовании нескольких строк Или для отбора записи достаточно выполнения всех частных условий, заданных в одной из строк. Так если для поля Группа «Студенты» базы данных Student97 заданы условия как на (Рис. 3), то будут отобраны записи о студентках 102, 301 и 405 групп.

Рис. 3. Условия отбора связаны логическим оператором OR.

ПРИМЕЧАНИЕ

Распространенной ошибкой является неправильное использование операторов Or и And при задании сложного условия отбора для одного поля. Например, вы можете подумать: «Мне нужны данные для городов Москва и Осака, а затем ввести выражение «Москва» and «Осака» в строку Условие отбора для поля Город. В этом случае вы просите Access найти записи, удовлетворяющие условию (Город = «Москва») and (Город = «Осака»). Поскольку поле записи не может содержать более одного значения одновременно, то в результате  вы не найдете ни одной записи, удовлетворяющей этому условию. Чтобы отобрать все строки для этих двух городов, вы должны искать записи, для которых выполняется условие (Город = «Москва») or (Город = «Осака»). Иначе говоря, в строке Условие отбора для поля Город нужно ввести выражение «Москва» or «Осака» (см. Рис. 1, Г).

В начало документа

Логический оператор NOT Очень часто для ввода условия отбора записей используется логический оператор NOT (логическое отрицание). Так, для отбора из общего списка всех женщин для поля Пол, в которое вводятся значения «женский» или «мужской» достаточно ввести условие «женский» (Рис. 4, А). Однако, мы получим тот же самый набор записей, и если введем условие «Not «мужской»  (пол - не «мужской») (см. Рис. 4, Б).

Рис. 4. Использование логического оператора NOT

В начало документа Сочетание логических операторов And, Or и Not На практике встречаются более сложные ситуации использования логических операторов And, Or и Not. Рассмотрим пример. Для отбора записей из таблицы «Студенты» базы данных Student97 в строки Условие отбора и несколько строк Или были введены условия как на Рис. 5.

Рис. 5. Ввод сложных условий отбора

Учитывая то, что условия, записанные в одной строчке, связываются логическим оператором And (русское «и»), а записанные в одном столбце союзом Or (русское «или»), «прочитаем» инструкцию Access по отбору записей: «Отобрать записи обо всех студентках, кроме тех, которые учатся в 304 или 402 группах (первая строка условий) ИЛИ всех  студентов с фамилиями Иванова и Климов независимо от группы» (вторая строка условий) ИЛИ всех студентов независимо от группы, родившихся до 10 октября 1969 года» (третья строка условий).

В начало документа

Специальные операторы сравнения Кроме обычных операторов сравнения Access предоставляет три специальных оператора, применяемых для отбора данных. Это операторы Bitween, In и Like.

Логический оператор BITWEEN Оператор BITWEEN определяет принадлежность значения выражения указанному диапазону.

Синтаксис:

выражение [Not] Between значение_1 And значение_2

Ниже перечислены аргументы оператора Between...And:

 

Элемент

Описание

выражение

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

значение_1, значение_2

Выражения, задающие границы диапазона.

Дополнительные сведения

Если значение поля, определенного в аргументе выражение, попадает в диапазон, задаваемый аргументами значение_1 и значение_2 (включительно), оператор Between...And возвращает значение True (истина); в противном случае возвращается значение False (ложь).  Логический оператор Not позволяет проверить противоположное условие (что выражение находится за пределами диапазона, заданного с помощью аргументов значение_1 и значение_2).

Оператор Between...And часто используют для проверки, попадает ли значение поля в указанный диапазон чисел.

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

Выражение

Описание

Between #02.02.93# And #01.12.93#

Даты в диапазоне от 2-фев-93 до 1-дек-93. Означает то же самое, что и условие >= #02.02.93# and <=#01.12.93#.

Between 2 And 9

Числа от 2 до 9. Означает то же самое, что и условие >= 2 and <=9.

Not Between 17 and 87

Все числа кроме диапазона от 17 до 87. Означает то же самое, что и условия <17 and >87 или Not(>=17 and <=87).

ПРИМЕЧАНИЕ

Значения даты и времени отображаются в бланке запроса в формате, соответствующем настройкам, выбранным в окне Язык и стандарты панели управления Windows. Например, месяц/день/год для США, день.месяц.год для России или год/день/месяц для Швеции.                                                                                

В начало документа Логический оператор IN Оператор In проверяет, совпадает ли значение выражения с одним из элементов указанного списка.

Синтаксис

выражение [Not] In(значение_1, значение_2,  . . .)

Ниже перечислены аргументы оператора In:

Элемент

Описание

выражение

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

значение_1, значение_2, …

Выражение или список выражений, с которыми сравнивается выражение.

Дополнительные сведения

Если выражение содержится в списке значений, оператор In возвращает значение True (истина); в противном случае возвращается значение False (ложь).  С помощью логического оператора Not можно проверить обратное условие (т. е., что выражение не принадлежит списку значений).

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

Выражение

Описание

In(«Москва»; «Осака»)

Города Москва или Осака. Означает то же самое, что и условие «Москва» Or «Осака».

Not In(01.03.99)

Все даты, кроме 1 марта 1999 года. Означает то же самое, что и условие Not #01.03.99#.

In(3;5;10)

Число 3, 5 или 9. Означает то же самое, что и условие 3 Or 5 Or 9.

В начало документа Логический оператор LIKE Оператор Like полезен при поиске образцов в текстовых полях. Используется для сравнения строкового выражения с образцом в выражении.

Синтаксис

выражение Like "образец"

Ниже перечислены аргументы оператора Like:

Элемент

Описание

выражение

Выражение, используемое в условии на значение (>, <, >=, <=, Not и т.д.)

образец

Строка, с которой сравнивается выражение.

Дополнительные сведения

 

Для аргумента образец можно задавать полное значение (например, Like "Иванов") или использовать подстановочные знаки для поиска диапазона значений (например, Like "Ив*").

Оператор Like используется в выражении для сравнения значений поля со строковым выражением.  Например, если в условии на значение поля ввести Like "C*", фильтр или запрос возвратит все значения поля, начинающиеся с буквы "C".

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

 

Тип совпадения

Образец

Совпадение (True)

Несовпадение (False)

Несколько символов

a*a

aa, aBa, aBBBa

aBC

*ab*

abc, AABB, Xab

aZb, bac

 

Специальный символ

a[*]a

a*a

aaa

Несколько символов

ab*

abcdefg, abc

cab, aab

Одиночный символ

a?a

aaa, a3a, aBa

aBBBa

Одиночная цифра

a#a

a0a, a1a, a2a

aaa, a10a

Диапазон символов

[a-z]

f, p, j

2, &

Вне диапазона

[!a-z]

9, &, %

b, a

Не цифра

[!0-9]

A, a, &, ~

0, 1, 9

Комбинированное выражение

a[!b-m]#

An9, az0, a99

abc, aj0

В начало документа Совместное использование логических операторов Приведем пример совместного использования логических операторов для ввода сложного условия отбора записей (см. Рис. 6). «Расшифруем» условия отбора записей, заданные этим фильтром для таблицы «Студенты» базы данных Student97: отобрать фамилии всех студентов кроме тех, которые учатся в 202 группе, пишущих работы по базам данных (в названии встречается ключевая фраза «БД» ИЛИ производные фразы от словосочетания «база данных») ИЛИ студентов 503, 504 групп, первые буквы фамилий которых с А по Д.

Рис. 6. Совместное использование логических операторов.

В начало документа