- •Запросы и фильтры
- •Создание простого запроса с помощью Мастера запросов
- •Создание и изменение запроса с помощью Конструктора запросов
- •Конструктор запросов
- •Внимание
- •Затем нужно указать, какие поля из базовых таблиц будут отображаться в запросе. Включать в запрос можно поля из любой таблицы. Способов включения полей в запрос существует несколько:
- •Создание вычисляемых полей в запросах
- •Виды соединений
- •Замечание
- •Замечание
- •Запросы с параметрами
- •Замечание
- •Выполнение запроса
- •Изменение данных в результирующем множестве запроса
- •Передача результатов запроса в другие приложения
- •Использование выражений в запросах
- •Замечание
- •Арифметические операторы
- •Операторы присваивания и сравнения
- •Операторы сравнения с образцом
- •Идентификаторы объектов
- •Константы
- •Функции
- •Замечание
Операторы присваивания и сравнения
Обычно в качестве оператора присваивания значения объекту, переменной или константе используется знак равенства (=). Например, выражение =Now() может присваивать полю таблицы значение по умолчанию, и тогда знак равенства действует как оператор присваивания. С другой сторону, знак = представляет собой оператор сравнения, определяющий, равны ли два операнда.
Оператор сравнения соотносит значения двух операндов и возвращает логические значения (True или False), соответствующие результату сравнения. Основное назначение операторов сравнения — создание условий на значение, установление критериев выборки записей в запросах, определение действий макросов и контроль выполнения программ в VBA. В табл. 4.3 приведен список операторов сравнения Access.
Таблица 4.3. Операторы сравнения
|
|
|
|
|
|
|
Оператор |
Пример |
Результат |
Описание |
|
|
< |
1 < 100 |
True |
Меньше |
|
|
<= |
1 <= 1 |
True |
Меньше либо равно |
|
|
= |
1 = 100 |
False |
Равно |
|
|
>= |
100 >= 1 |
True |
Больше либо равно |
|
|
> |
100 > 100 |
False |
Больше |
|
|
<> |
1 <> 100 |
True |
Неравно |
|
|
|
|
|
|
|
Замечание
Если один из операндов имеет значение Null (пустое значение), то любое" сравнение возвращает значение Null (тоже пустое значение).
Логические операторы
Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое:
-
And — конъюнкции (логического И);
-
Or — дизъюнкции (логического ИЛИ);
-
Not — логического отрицания;
-
Хог — исключающего ИЛИ;
-
Eqv — логической эквивалентности;
-
Imp — логической импликации.
Они могут состоять только из выражений, возвращающих логические значения True, False или Null. В противном случае выполняется побитовое сравнение. Логические операторы всегда требуют двух операндов, за исключением Not — логического эквивалента унарного минуса.
В табл. 4.4—4.6 приведены результаты логических операторов Access в зависимости от значения операндов.
Таблица 4.4. Зависимость значения логических операторов от значения операндов
|
|
|
|
|
|
|
|
|
A=True B=False |
A=True B=True |
A=False B=False |
A=False B=True |
|
|
A And В |
False |
True |
False |
False |
|
|
A Or В |
True |
True |
False |
True |
|
|
Not A |
False |
False |
True |
True |
|
|
А Хог В |
True |
False |
False |
True |
|
|
A Eqv В |
False |
True |
True |
False |
|
|
A Imp В |
False |
True |
True |
True |
|
|
|
|
|
|
|
|
Для всех логических операторов, кроме Imp, значение одного из операндов Null приводит к значению результата Null.
Таблица 4.5. Значения оператора Imp с Null-операндами
|
|
|
|
|
|
|
|
|
|
A=Null B=False |
A=Null B=True |
A=False B=Null |
A=True B=Null |
A=Null B=Null |
|
|
A Imp В |
Null |
True |
True |
Null |
Null |
|
|
|
|
|
|
|
|
|
В случае если сравниваются два выражения и, по крайней мере, одно из них не является константой из множества (True, False, Null), логические операторы приводят к побитовому сравнению выражений-операндов (табл. 4.6).
Таблица 4.6. Значения логических операторов для однобитовых операндов
|
|
|
|
|
|
|
|
Значения соответствующего бита результата |
битА=1 бит В=0 |
6итА=1 битВ=1 |
6итА=0 бит В=0 |
бит А=0 бит В=1 |
|
|
A And В |
0 |
1 |
0 |
0 |
|
|
A Or В |
1 |
1 |
0 |
1 |
|
|
Not A |
0 |
0 |
1 |
1 |
|
|
А Хог В |
1 |
0 |
0 |
1 |
|
|
A Eqv В |
0 |
1 |
1 |
0 |
|
|
A Imp В |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
Операторы слияния строковых значений (конкатенации)
Стандартный значок оператора конкатенации SQL, амперсант (&), является более предпочтительным, чем значок плюса (+), хотя оба они приводят к одинаковому результату: объединению двух текстовых значений в единую строку символов. Применение значка плюс (+) двусмысленно, его основное назначение — сложение двух числовых операндов.
Пример: слияние "Visual" & "Basic" дает "Visual Basic". Обратите внимание на дополнительный пробел в первом слове, без него результат выглядел бы несколько иначе: "VisualBasic".
Операторы идентификации
Операторы идентификации применяются в качестве разделителей в ссылках на объекты (оператор "!"), их методы или свойства (оператор "."):
КлассОбъекта!ИмяОбъекта
КлассОбъекта!ИмяОбъекта.Свойство
КлассОбъекта!ИмяОбъекта.Метод()
ИмяОбъекта.Свойство
ИмяОбъекта.Метод().
Эти операторы позволяют объединять имена объектов и классов объектов для отбора специфических объектов или их свойств, различать имена объектов и их свойств, идентифицировать определенные поля в таблицах.
Например:
-
Forms!Категории, Tables ! Категории — идентификация формы и таблицы с одинаковыми именами;
-
MyTextbox.Caption = "Будьте внимательны!" — здесь MyTextbox — объект управления, a Caption — свойство;
-
Заказы! [Код клиента] — определяет поле "Код клиента" (CustomerlD) в таблице "Заказы" (Customers).
Благодаря наличию операторов идентификации можно присваивать полям разных объектов одни и те же имена (поэтому, например, свойство Caption есть у большинства объектов).