Операторы присваивания и сравнения

Выражения в 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 есть у большинства объектов).