
access запросы
.pdf
|
СОДЕРЖАНИЕ |
|
|
СОКРАЩЕНИЯ И УСЛОВНЫЕ ОБОЗНАЧЕНИЯ . . . |
. . . . . . . . . |
4 |
|
ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . . |
5 |
|
1 ОПИСАНИЕ БАЗЫ ДАННЫХ. . . . . . . . . . . . . . . . . . . |
. . . . . . . . . |
6 |
|
2 ЗАПРОСЫ К ОДНОМУ ИСТОЧНИКУ ДАННЫХ . . |
. . . . . . . . . |
9 |
|
2.1 |
Общие сведения о запросах как объектах БД. . . . . . |
. . . . . . . . |
9 |
2.2 |
Запросы на выборку . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
11 |
2.2.1 Применение мастера для создания простых запросов. . . . . . |
11 |
||
2.2.2 Режимы работы с запросами . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
13 |
|
2.2.3 Применение конструктора запросов . . . . . . . . . . . . |
. . . . . . . . |
16 |
|
2.2.4 Запросы с вычисляемыми полями. . . . . . . . . . . . . . . |
. . . . . . . |
18 |
|
2.2.5 Применение построителя выражений. . . . . . . . . . . . |
. . . . . . . |
21 |
|
2.3 |
Отбор записей в запросах. . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
26 |
2.3.1 Применение условий отбора. . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
26 |
|
2.3.2 Параметрические запросы. . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
31 |
|
2.3.3 Применение форм для ввода параметров. . . . . . . . . |
. . . . . . . |
34 |
|
2.4 |
Группировочные запросы. . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
39 |
2.5 |
Перекрестные запросы. . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
48 |
3 ЗАПРОСЫ К БАЗЕ ДАННЫХ. . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
56 |
|
3.1 |
Особенности ведения информации в таблицах. . . . . . |
. . . . . . . |
56 |
3.2 |
Запросы на выборку из базы данных . . . . . . . . . . . . . |
. . . . . . . . |
62 |
3.3 |
Статистические выборки. . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . . |
68 |
4 СПЕЦИАЛЬНЫЕ ВИДЫ ЗАПРОСОВ. . . . . . . . . . . . . . |
. . . . . . . |
82 |
|
4.1 |
Запросы на поиск записей без подчиненных. . . . . . . . |
. . . . . . . |
82 |
4.2 |
Запросы - действия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
82 |
4.2.1 Запросы на создание таблиц. . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
83 |
|
4.2.2 Запросы на добавление записей. . . . . . . . . . . . . . . . . |
. . . . . . . |
84 |
|
4.2.3 Запросы на обновление данных . . . . . . . . . . . . . . . . |
. . . . . . . . |
87 |
|
4.2.4 Запросы на удаление записей . . . . . . . . . . . . . . . . . . |
. . . . . . . |
88 |
|
4.3 |
Запросы SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
90 |
4.4 |
Работа с архивом данных. . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
90 |
4.5 |
Работа с итоговым файлом данных . . . . . . . . . . . . . . . |
. . . . . . . |
94 |
5 ОПТИМИЗАЦИЯ ЗАПРОСОВ. . . . . . . . . . . . . . . . . . . . |
. . . . . . . . |
99 |
|
5.1 |
Этапы оптимизации обработки запросов . . . . . . . . . . |
. . . . . . . |
99 |
5.2 |
Устранение неопределенных значений . . . . . . . . . . . . |
. . . . . . . |
100 |
5.3 |
Сравнительные запросы . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
101 |
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
112 |
|
ЛИТЕРАТУРА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
113 |
|
Приложение А Описание базы данных . . . . . . . . . . . . . . |
. . |
114 |
|
Приложение Б Результаты расчета зарплаты . . . . . . . . |
. . . . . . . . |
115 |
|
Приложение В Операторы и функции СУБД Microsoft Access . . . |
118 |
СОКРАЩЕНИЯ И УСЛОВНЫЕ ОБОЗНАЧЕНИЯ
БД, РБД – база данных реляционная БЗО – бланк запроса по образцу выр – выражение Д_рожд – поле Дата_рождения знач – значение ИД – источник данных
Код_с – поле Код_сотрудника КТ – конструктор таблицы От – поле Отчество П – поле Подразделение
ПВ – построитель выражений ПП – программное приложение т – реляционная таблица Таб_н – табельный номер тД – таблица тДолжности тН – таблица тНазначения
тП – таблица тПодразделения тРП – таблица тРаботаПлан тРФ – таблица тРаботаФакт тС – таблица тСотрудники зЧ – запрос Численность тШ – таблица тШтаты Фам – поле Фамилия
DQL – Data Query Language, язык запросов к данням MS – корпорация Microsoft
SQL – Structured Query Language, структурированный язык запросов
4
Приложение В
Операторы и функции СУБД Microsoft Access
Оператор * (звездочка) возвращает произведение двух чисел. Синтаксис результат = операнд1 * операнд2
Операндами могут быть любые числовые выражения. Результат обычно имеет тип данных операнда с максимальной точностью*.
Из этого правила существуют следующие исключения:
–при умножении операндов типа Single и Long результат преобразуется к типу
Double**;
–если результат должен получить значение типа Long, Single или Date, выходящее за рамки допустимого для этого типа диапазона значений, то результат преобразуется к типу
Double;
–если результат должен получить значение типа Integer, выходящее за рамки допустимого для этого типа диапазона значений, то результат преобразуется к типу Long;
–если один или оба операнда является выражением со значением Null, то результат получает значение Null;
–любой операнд со значением Empty рассматривается как значение 0.
Оператор + (плюс) возвращает сумму двух чисел или сцепление двух строк. Синтаксис результат = операнд1 + операнд2 Выполняемая операция определяется типом операндов.
Сложение выполняется если
–оба операнда имеют числовые типы данных;
–одно выражение имеет числовой тип данных, а другое – тип Variant (не Null). Сцепление выполняется если
–оба выражения имеют тип String;
–одно выражение имеет тип String, а другое – тип Variant (не Null).
Если одно из выражений типа Variant содержит значение Empty, то результат получает значение второго операнда.
Если одно выражение имеет числовой тип данных, а другое тип String, то возникает ошибка несогласования типов.
Если хотя бы один из операндов имеет значение Null, результат имеет значение Null.
Оператор / (наклонная черта) возвращает результат деления двух действительных
чисел.
Синтаксис результат = операнд1 / операнд2 Операндами могут быть любые числовые выражения, результат обычно имеет тип
данных Double или Variant вида Double. Из этого правила существуют следующие исключения:
–если оба операнда являются выражениями типа Integer или Single, результат получает значение типа Single, если при этом результат не выходит за рамки допустимого для этого типа диапазона значений; в последнем случае результат имеет тип Double;
–если оба операнда являются выражениями типа Integer или Single, то результат получает значение типа Single, если при этом результат не выходит за рамки допустимого для этого типа диапазона значений; в последнем случае результат имеет тип Double;
–если один или оба операнда является выражением со значением Null, то результат имеет значение Null.
Любой операнд со значением Empty рассматривается как значение 0.
118
Оператор – (минус) возвращает либо разность двух чисел, либо значение с измененным знаком.
Синтаксис 1 результат = операнд1 - операнд2 Синтаксис 2 -число
Всинтаксисе 1 оператор - является арифметическим оператором вычитания, возвращающим разность двух чисел. Операндами могут быть любые числовые выражения.результат обычно имеет тип данных операнда с максимальной точностью. В порядке возрастания точности следуют типы Integer, Long, Single, Double, Currency. Если операнды являются выражениями типа Variant, то вместо этого порядка действуют следующие правила:
– если операнды имеют типы Single и Long, результат преобразуется к типу Double.
– если результат должен получить значение типа Long, Single или Date, выходящее за рамки допустимого для этого типа диапазона значений, то результат преобразуется к типу
Double.
– если результат должен получить значение типа Integer, выходящее за рамки допустимого для этого типа диапазона значений, то результат преобразуется к типу Long.
– если один или оба операнда является выражением со значением Null, то результат имеет значение Null.
– операнд со значением Empty рассматривается как значение 0.
Всинтаксисе 2 оператор - является унарным оператором, изменяющим знак операнда. Аналогично синтаксису 1, операндом может быть любая числовая константа, переменная, выражение или функция возвращающая число.
Впростых операциях сложения с участием только операндов числовых типов результат обычно имеет тип данных слагаемого с максимальной точностью. Из этого правила существуют такие исключения:
– при сложении чисел типа Single и Long результат преобразуется к типу Double.
– если результат должен получить значение типа Long, Single или Date, выходящее за рамки допустимых для этих типов диапазонов значений, то результат преобразуется к типу Double.
– если результат должен получить значение типа Integer, выходящее за рамки допустимого для этого типа диапазона значений, то результат преобразуется к типу Long.
– если один или оба операнда является выражением со значением Null, то результат имеет значение Null.
– если оба операнда имеют значение Empty, результат имеет значение Empty;
– если значение Empty имеет только один из операндов, результат получает значение второго операнда.
Оператор \ (обратная наклонная) используется для целого деления двух целых чисел; возвращает значение типа Integer или Long.
Синтаксис результат = операнд1 \ операнд2 Операндами могут быть любые числовые выражения.
Перед выполнением деления значения операндов округляются до целых значений типа Integer или Long.Обычно, результат имеет тип данных Integer, Long. Дробный остаток при делении отбрасывается.
Если один или оба операнда является выражением со значением Null, то результат имеет значение Null.
Любой операнд со значением Empty рассматривается как значение 0.
Оператор ^ возводит число в степень. Синтаксис результат = число ^ показатель
Операндами число и показатель могут быть любые числовые выражения. Однако отрицательные значения числа допускаются только для целых значений показателя.
119
Стоящие рядом в выражении несколько операторов возведения в степень ( ^ ) выполняются слева направо.
Обычно результат имеет тип данных Double.
Если любой из операндов имеет значение Null, то результат получает значение Null.
Оператор Mod возвращает остаток при целом делении двух чисел (значение по модулю).
Синтаксис результат = операнд1 Mod операнд2
Выполняется деление по модулю (нахождение остатка) для чисел операнд1 и операнд2 (с округлением действительных чисел до целых). результат получает значение остатка. Например
A = 19 Mod 6.7 (А=5):
Операндами могут быть любые числовые выражения. Обычно результат имеет тип данных Integer, Long. Дробный остаток при делении отбрасывается.
Если один или оба операнда является выражением со значением Null, то результат имеет значение Null.
Любой операнд со значением Empty рассматривается как значение 0.
Операторы сравнения используются для сравнения двух выражений. Синтаксис результат = exp1 operator exp2
Операторы сравнения, называемые также реляционными операторами, используются для сравнения двух выражений. Ниже представлен список операторов сравнения и результаты при разных выражениях.
Оператор |
Выражение |
True, если |
False, если |
< |
Меньше чем |
exp1 < exp2 |
exp1 >= exp2 |
<= |
Меньше или равно |
exp1 <= exp2 |
exp1 > exp2 |
> |
Больше чем |
exp1 > exp2 |
exp1 <= exp2 |
>= |
Больше или равно |
exp1 >= exp2 |
exp1 < exp2 |
= |
Равняется |
exp1 = exp2 |
exp1 <> exp2 |
<> |
Не равняется |
exp1 <> exp2 |
exp1 = exp2 |
Если хотя бы одно из выражений неопределенно (Null), то результат для любого оператора будет неопределен (Null).
При сравнении двух выражений иногда затруднительно определить, будут ли сравниваться выражения как числовые или как строковые.
Если хотя бы одно из выражений не принадлежит к типу Variant, то сравнение чисел происходит если.
–оба выражения имеют числовой тип данных;
–одно выражение имеет числовой тип, а другое тип Variant числового вида или String, допускающий преобразование к числовому;
–одно выражение имеет значение Empty, а другое числовой тип.
Сравнение строк происходит если:.
–одно выражение имеет тип String, а другое тип Variant вида String;
–оба выражения имеют тип String;
–одно выражение имеет значение Empty, а другое тип String.
Если одно выражение имеет числовой тип, а другое тип Variant вида String, не допускающий преобразование к числовому, то числовое выражение считается меньшим, чем выражение типа String.
Если одно выражение имеет числовой тип данных, а другое тип Variant вида String, то возникает ошибка несогласования типов.
Если оба выражения принадлежат к типу Variant, то тип сравнения определяется значениями VarType. Ниже показано, как осуществляется сравнение в зависимости от значения VarType типа Variant.
120
Оба выражения типа Variant имеют значения VarType 2-7 |
|
|
(числовые типы данных) |
|
Сравнение чисел. |
Одно выражение типа Variant имеет значение Empty, а другое |
|
|
VarType 2-7 (числовой тип данных) |
|
Сравнение чисел. |
Оба выражения типа Variant имеют значения VarType 8 (String) |
Сравнение строк. |
|
Одно выражение типа Variant имеет значение Empty, |
|
|
а другое VarType 8 (String) |
|
Сравнение строк. |
Оба выражения типа Variant имеют значение Empty |
Выражения считаются равными. |
Если одно выражение типа Variant имеет значение VarType 2-7 (числовой тип данных), а другое VarType 8 (String), то числовое выражение считается меньшим, чем выражение типа String.
При сравнении значения типа Currency со значениями типа Single или Double, значение типа Single или Double преобразуется к типу Currency. При этом дробные части меньшие чем 0.0001 в значениях типа Single или Double отбрасываются. Такое преобразование может привести к ошибке переполнения, если значения типа Single или Double достаточно велики.
Оператор & используется для слияния двух строковых значений. Синтаксис результат = операнд1 & операнд2
Если операнд является числом, то он преобразуется к типу String.
Если оба операнда являются выражениями типа String, то результат имеет тип данных String; в противном случае результат имеет тип String.
Если оба операнда имеют значение Null, результат также имеет значение Null. Если значение Null имеет только один из операндов, то при слиянии с другим операндом этот операнд. рассматривается как пустая строка.
Любой операнд со значением Empty также рассматривается как пустая строка.
Оператор And возвращает результат конъюнкции (логического И) для двух выражений.
Синтаксис результат = exp1 And exp2
Если и только если оба выражения истинны (имеют ненулевое значение), результат имеет значение True (-1). Если хотя бы одно из выражений ложно (0), результат имеет значение False (0). Возвращаемые оператором значения представлены в следующей таблице.
exp1 |
exp2 |
результат |
истина (ненул. значение) |
истина |
True (-1) |
истина |
ложь (0) |
False (0) |
истина |
Null |
Null |
ложь |
истина |
False |
ложь |
ложь |
False |
ложь |
Null |
False |
Null |
истина |
Null |
Null |
ложь |
False |
Null |
Null |
Null |
Оператор And выполняет также поразрядное сравнения двух числовых выражений и присваивает каждому разряду в переменной результат следующее значение.
Разряд в exp1 |
Разряд в exp2 |
Результат |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Поразрядное сравнение допускается только в инструкциях Access Basic.
121
Оператор Eqv используется для проверки логической эквивалентности двух выражений.
Синтаксис результат = exp1 Eqv exp2
Если хотя бы одно из выражений имеет значение Null, результат также имеет значение Null.
Если ни одно из выражений не имеет значение Null, результат имеет значения,
представленные в следующей таблице. |
|
|
exp1 |
exp2 |
результат |
истина (ненул.значение) истина |
True (-1) |
|
истина |
ложь (0) |
False (0) |
ложь |
истина |
False |
ложь |
ложь |
True |
Оператор Eqv выполняет также поразрядное сравнения двух числовых выражений и |
||
присваивает каждому разряду в переменной результат следующее значение. |
||
Разряд в exp1 |
Разряд в exp2 |
Результат |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Поразрядное сравнение допускается только в инструкциях Access Basic.
Оператор Imp вполняет операцию логической импликации для двух выражений. Синтаксис результат = exp1 Imp exp2
Пояснения Возвращаемые оператором значения представлены в следующей таблице.
exp1 |
exp2 |
результат |
истина (ненул.значение) |
истина |
True (-1) |
истина |
ложь (0) |
False (0) |
истина |
Null |
Null |
ложь |
истина |
True |
ложь |
ложь |
True |
ложь |
Null |
True |
Null |
истина |
True |
Null |
ложь |
Null |
Null |
Null |
Null |
Оператор Imp выполняет также поразрядное сравнения двух числовых выражений и присваивает каждому разряду в переменной результат следующее значение.
Разряд в exp1 |
Разряд в exp2 |
Результат |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
Поразрядное сравнение допускается только в инструкциях Access Basic.
Оператор Not изменяет знак числового выражения. Синтаксис результат = Not exp
Оператор возвращает следующие значения
exp |
результат |
истина (ненул. значение) |
False (0) |
ложь (0) |
True (-1) |
Null |
Null |
Оператор Not выполняет также поразрядное изменение значений каждого разряда и
122
присваивает каждому разряду в переменной результат следующее значение.
Разряд в exp |
Разряд в результат |
0 |
1 |
1 |
0 |
Not обращает значения разрядов для любых переменных. Если целая переменная имеет значение 0 (False), она получает значение -1 (True); если переменная имеет значение - 1, она получает значение 0. Однако, поразрядные операции с оператором допускаются только в инструкциях Not.
Оператор Or выполняет операцию логического сложения для двух выражений. Синтаксис результат = exp1 Or exp2
В зависимости от выражений оператор возвращает следующие значения.
exp1 |
exp2 |
результат |
истина (ненул.значение) истина |
True (-1) |
|
истина |
ложь (0) |
True |
истина |
Null |
True |
ложь |
истина |
True |
ложь |
ложь |
False (0) |
ложь |
Null |
Null |
Null |
истина |
True |
Null |
ложь |
Null |
Null |
Null |
Null |
Оператор Or выполняет также поразрядное сравнения двух числовых выражений и |
||
присваивает каждому разряду в переменной результат следующее значение. |
||
Разряд в exp1 |
Разряд в exp2 |
результат |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Поразрядное сравнение допускается только в инструкциях Access Basic.
Оператор Xor выполняет операцию исключающего ИЛИ для двух выражений. Синтаксис результат = exp1 Xor exp2
Оператор Xor является оператором исключающего Or (ИЛИ). Он возвращает результат True (-1), если одно из выражений истинно, а другое ложно. Если хотя бы одно из выражений имеет значение Null, результат также имеет значение Null. Если ни одно из выражений не имеет значение Null, результат имеет значения, представленные в следующей
таблице. |
|
|
exp1 |
exp2 |
результат |
истина (ненул. значение) |
истина |
False (0) |
истина |
ложь (0) |
True (-1) |
ложь |
истина |
True |
ложь |
ложь |
False |
Оператор Xor выполняет также поразрядное сравнения двух числовых выражений и присваивает каждому разряду в переменной результат следующее значение.
Разряд в exp1 |
Разряд в exp2 |
Результат |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Поразрядное сравнение допускается только в инструкциях Access Basic.
123
Оператор Like ипользуется для сравнения двух строковых выражений в инструкциях Access Basic или в выражении.
Синтаксис Access Basic: результат = выражение Like образец Выражение: Like "образец"
Оператор Like используют для поиска в поле значений, совпадающих с указанным образцом. Допускается как точное указание аргумента образец (например, Like "Вася"), так и использование поддерживаемых операционной системой операторов шаблона, определяющих диапазон значений (например, Like "Вас*").При подстановке в выражение оператор Like позволяет сравнивать значение поля со строковым значением. Например, при вводе в ячейку "Условие отбора" бланка запроса QBE выражения Like "C*" в запросе будут выведены все поля, содержимое которых начинается с буквы "C". В запросе с параметрами допускается вывод для пользователя приглашения ввести образец поиска. Предположим, что в ячейку строки "Условие отбора" бланка запроса QBE введено следующее выражение:
Like [Введите первые буквы фамилии:]&"*"
При выполнении запроса будет открыто окно диалога с надписью над полем "Введите первые буквы фамилии". Если пользователь введет в поле буквы Ив, то в запросе будет выполняться поиск по образцу "Ив*" (т.е. будут найдены все фамилии, начинающиеся с букв
"Ив").
Оператор Like используют также в выражениях, задающих значение свойства Условие на значение (ValidationRule) или условия в макросе. В следующем примере возвращаются значения госномеров автомобилей, начинающиеся с буквы "А", за которой следуют буква от "A" до "Н" и три цифры:
Like "А[A-Н]###"
Для ссылки на значение элемента управления необходимо заключать идентификатор в прямые кавычки (" ") и символы вертикальной черты(| |). Например, предположим, что требуется задать в форме "Печать заказов" условия отбора для отчета "Заказы". Для этого следует ввести в поле "Код заказа" значение, позволяющее отобрать либо группу заказов, либо конкретный заказ. В запросе, на базе которого создан отчет, можно задать условия отбора для поля "Код заказа" в виде:
Like "|[Формы]![Печать заказов]![Код заказа]|"
Если в выражение не будут включены символы вертикальной черты, то оператор Like буде возвращать не значение, а имя элемента управления.В инструкциях Access Basic, если выражение совпадает с аргументом образец, то переменная результат получает значение True (-1); если совпадения нет, результат равен False (0); а если любое из значений выражение или образец является пустым (Null), то результат также получает значение Null. Учет регистра символов и порядок сортировки символов в операторе Like определяются настройками, задаваемыми в инструкции Option Compare. Если модуль не содержит инструкцию Option Compare, то по умолчанию при сравнении строковых значений используется метод Binary.
Оператор Between...And определяет принадлежность значения указанному диапазону значений.
Синтаксис выражение [Not] Between значение1 And значение2
где выражение определяет поле, значение которого проверяется на принадлежность к диапазону;
значение1, значение2 – по выражения, задающие границы диапазона.
Если значение поля (выражение), попадает в диапазон, задаваемый аргументами значение1 и значение2 (включительно), оператор возвращает значение True (-1) ("Истина"); в противном случае возвращается значение False (0) ("Ложь").
Допускается проверка с помощью логического оператора Not обратного условия, когда выражение не принадлежит диапазону значение1 - значение2.
Оператор часто используют для проверки, попадает ли значение элемента управления в указанный диапазон чисел. В следующем примере проверяется значение поля "Заказано" и,
124
если количество единиц в заказе попадает в диапазон 1 - 20, заказ классифицируется как мелкий. Остальные заказы считаются крупными.
=IIf([Заказано] Between "1" And "20", "Мелкий", "Крупный")
Если или выражение, или значение1, или значение2 имеет значение Null, то оператор возвращает значение Null.
Оператор In проверяет значение выражения на совпадение с любым из элементов указанного списка.
Синтаксис выражение [Not] In(значение1, значение2, . . .)
где выражение определяет поле, значение которого проверяется на принадлежность к списку;
значение1, значение2 – выражение или список выражений, с которыми сравнивается выражение.
Если содержимое поля выражение совпадает со значением одного из элементов списка, оператор возвращает значение True (-1) ("Истина"); в противном случае возвращается False (0) ("Ложь").
Допускается проверка с помощью логического оператора Not обратного условия, когда выражение не принадлежит списку значений.
Оператор позволяет провести проверку, принадлежит ли значение элемента управления указанному списку значений. В следующем примере проверяется, входит ли город получателя в список городов, для которых был выполнен заказ.
=IIf([Город получателя] In ("Донецк","Киев","Львов"), "Выполнен", "Не выполнен") Если выражение или какой-либо из элементов списка имеет значение Null, то
оператор возвращает значение Null.
Оператор Is используется вместе с зарезервированным словом Null для проверки, является ли значение пустым (Null).
Синтаксис выражение Is [Not] Null
Пример проверки значения віражения. =IIf(Выр Is Null, "", Выр])
Если выр имеет значение Null, функция IIf возвращает значение "Пустой"; в противном случае возвращается значение элемента управления.
Допускается проверка с помощью логического оператора Not обратного условия (т.е того, что значение выражения не является пустым (Null)).
Примечания
* В порядке возрастания точности чисел следуют типы Integer, Long, Single, Double, Currency.
**Переменные, в именах которых нет символа описания типа и отсутствует действующая инструкция описания типа Def <тип>, получают по умолчанию тип Variant. Это позволяет сохранять значения различного типа. Для типа Variant существуют следующие виды (подтипы, VarType)
0Empty
1Nul
2Integer
3Long
4Single
5Double
7Date
8String
125