Операторы присваивания и сравнения
Выражения в Access
Каждое выражение может содержать один или несколько операторов и одну или несколько констант, идентификаторов или функций. Выражение может быть сколь угодно сложным.
- Константы — характеризуют неизменные значения. Их часто используют для создания значений по умолчанию и для сравнения значений в полях таблиц. Значения констант определяются пользователем при вводе выражения. (Например, 09, страна фирмы изготовителя Швеция.)
- Идентификаторы — это имена объектов в Access (например, полей таблиц или запросов), которые при вычислении выражений заменяются их текущими значениями (для определения этой операции обычно используется термин возвращают). Например, идентификатор имени поля [Household Inventory] в выражении возвращает значение поля Household Inventory из текущей выделенной записи. Именованные константы и переменные, применяемые в программах Visual Basic для приложений (VBA), тоже являются идентификаторами. Существует несколько встроенных именованных констант, служащих идентификаторами: True, False, Yes, No И Null.
Примечание: Если имя поля или таблицы содержит пробелы, его идентификатор обязан в выражении заключаться в квадратные скобки. Чтобы упростить ввод идентификаторов, рекомендуется не использовать пробелы в названиях таблиц, полей в таблицах и названиях других объектов Access.
- Функции возвращают в выражение значение вместо имени функции. В отличие от идентификаторов, большинство функций требуют заключать в скобки свои-аргументы — идентификаторы или значения подвыражений. Например, функция Date (), имеющая пустой список аргументов, возвращает текущую дату.
- Операторы — обычные значки арифметических операций (+, -, *, /) и другие символы и аббревиатуры. Большинство из них эквивалентны операторам традиционных языков программирования типа Basic. Некоторые — специфичны для Access или SQL, например Between или Like. Используемые в операции константы, идентификаторы и функции называются операндами.
Для создания выражений в Access существует шесть категорий операторов: арифметические, операторы присваивания, логические операторы, операторы конкатенации, идентификации и сравнения с образцом.
Арифметические операторы
Арифметические операторы, как следует из названия, выполняют сложение, вычитание, умножение и деление. Арифметические операторы оперируют только с числовыми значениями и должны, за исключением унарного минуса, иметь два числовых операнда.
В табл. 1 приведен список арифметических операторов для выражений Access.
Таблица 1.Арифметические операторы
Оператор | Пример | Описание |
+ | [Итог] + [Надбавка] | Складывает два операнда |
- | Date () - 7 | Считает разность двух операндов |
- (унарный) | -12345 | Меняет знак операнда |
* | [Коробок] * [Цена коробки] | Перемножает два операнда |
/ | [Количество] / 12.55 | Делит один операнд на другой |
\ | [Коробок] \ 2 | Делит один целый операнд на другой нацело. При использовании деления нацело операнды с десятичными дробями округляются до целого, а дробные части отбрасываются |
Mod | [Коробок] Mod 12 | Возвращает остаток от деления нацело. Например, 15 Mod 12 равно 3 |
^ | ^ [Показатель] | Возводит операнд Основание в степень Показатель |
В таблице отсутствует знак равенства (=), поскольку он отнесен к группе операторов присваивания и сравнения.
Операторы присваивания и сравнения
Обычно в качестве оператора присваивания значения объекту, переменной или константе используется знак равенства (=). Например, выражение =Now() может присваивать полю таблицы значение по умолчанию, и тогда знак равенства действует как оператор присваивания. С другой сторону, знак = представляет собой оператор сравнения, определяющий, равны ли два операнда.
Оператор сравнения соотносит значения двух операндов и возвращает логические значения (True или False), соответствующие результату сравнения. Основное назначение операторов сравнения — создание условий на значение, установление критериев выборки записей в запросах, определение действий макросов и контроль выполнения программ в VBA. В табл. 2 приведен список операторов сравнения Access.
Таблица 2.Операторы сравнения
Оператор | Пример | Результат | Описание |
< | 1 < 100 | True | Меньше |
<= | 1 <= 1 | True | Меньше либо равно |
= | 1 = 100 | False | Равно |
>= | 100 >= 1 | True | Больше либо равно |
> | 100 > 100 | False | Больше |
<> | 1 <> 100 | True | Неравно |
Логические операторы
Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое:
- And — конъюнкции (логического И);
- Or — дизъюнкции (логического ИЛИ);
- Not — логического отрицания;
- Хог — исключающего ИЛИ;
- Eqv — логической эквивалентности;
- Imp — логической импликации.
Они могут состоять только из выражений, возвращающих логические значения True, False или Null. В противном случае выполняется побитовое сравнение. Логические операторы всегда требуют двух операндов, за исключением Not — логического эквивалента унарного минуса.
В табл. 3-5 приведены результаты логических операторов Access в зависимости от значения операндов.
Таблица 3.Зависимость значения логических операторов от значения операндов
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.Значения оператора 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), логические операторы приводят к побитовому сравнению выражений-операндов (табл. 5).
Таблица 5.Значения логических операторов для однобитовых операндов
Значения соответствующего бита результата | битА=1 бит В=0 | 6итА=1 битВ=1 | битА=0 бит В=0 | бит А=0 бит В=1 |
A And В | ||||
A Or В | ||||
Not A | ||||
А Хог В | ||||
A Eqv В | ||||
A Imp В |
Операторы слияния строковых значений (конкатенации)
Стандартный значок оператора конкатенации SQL, амперсант (&), является более предпочтительным, чем значок плюса (+), хотя оба они приводят к одинаковому результату: объединению двух текстовых значений в единую строку символов. Применение значка плюс (+) двусмысленно, его основное назначение — сложение двух числовых операндов.
Пример: слияние "Visual" & "Basic" дает "Visual Basic". Обратите внимание на дополнительный пробел в первом слове, без него результат выглядел бы несколько иначе: "VisualBasic".
Операторы идентификации
Операторы идентификации применяются в качестве разделителей в ссылках на объекты (оператор "!"), их методы или свойства (оператор "."):
- КлассОбъекта!ИмяОбъекта
- КлассОбъекта!ИмяОбъекта.Свойство
- КлассОбъекта!ИмяОбъекта.Метод()
- ИмяОбъекта.Свойство
- ИмяОбъекта.Метод().
Эти операторы позволяют объединять имена объектов и классов объектов для отбора специфических объектов или их свойств, различать имена объектов и их свойств, идентифицировать определенные поля в таблицах.
Например:
- Forms!Категории, Tables ! Категории — идентификация формы и таблицы с одинаковыми именами;
- MyTextbox.Caption = "Будьте внимательны!" — здесьMyTextbox — объект управления, aCaption — свойство;
- Заказы! [Код клиента] — определяет поле "Код клиента" (CustomerlD) в таблице "Заказы" (Customers).
Благодаря наличию операторов идентификации можно присваивать полям разных объектов одни и те же имена (поэтому, например, свойство Caption есть у большинства объектов).