ТОП 10:

Использование выражений в запросах



При работе с объектами Access очень широко -используются выражения. Примеры простых выражений приводились ранее, например при вводе условий на значение поля в таблице (см. "Работа с таблицами" гл. 2).

Выражения активно используются в запросах для описания критериев выборки записей, как уже упоминалось раньше в данной главе. В дачьнейших главах книги при описании объектов Access мы будем постоянно указывать, где и как могут использоваться выражения. В этом разделе мы опишем правила создания выражений в Access, которые должны использоваться в дальнейшем во всех случаях применения выражений.

Выражения в Access

Каждое выражение может содержать один или несколько операторов и одну или несколько констант, идентификаторов или функций. Выражение может быть сколь угодно сложным.

· Константы — характеризуют неизменные значения. Их часто используют для создания значений по умолчанию и для сравнения значений в полях таблиц. Значения констант определяются пользователем при вводе выражения. (Например, 09, страна фирмы изготовителя Швеция.)

· Идентификаторы — это имена объектов в Access (например, полей таблиц или запросов), которые при вычислении выражений заменяются их текущими значениями (для определения этой операции обычно используется термин возвращают). Например, идентификатор имени поля [Household Inventory] в выражении возвращает значение поля Household Inventory из текущей выделенной записи. Именованные константы и переменные, применяемые в программах Visual Basic для приложений (VBA), тоже являются идентификаторами. Существует несколько встроенных именованных констант, служащих идентификаторами: True, False, Yes, No И Null.

Замечание

Если имя поля или таблицы содержит пробелы, его идентификатор обязан в выражении заключаться в квадратные скобки. Чтобы упростить ввод идентификаторов, рекомендуется не использовать пробелы в названиях таблиц, полей в таблицах и названиях других объектов Access.

· Функции возвращают в выражение значение вместо имени функции. В отличие от идентификаторов, большинство функций требуют заключать в скобки свои-аргументы — идентификаторы или значения подвыражений. Например, функция Date (), имеющая пустой список аргументов, возвращает текущую дату.

· Операторы — обычные значки арифметических операций (+, -, *, /) и другие символы и аббревиатуры. Большинство из них эквивалентны операторам традиционных языков программирования типа Basic. Некоторые — специфичны для Access или SQL, например Between или Like. Используемые в операции константы, идентификаторы и функции называются операндами.

Для создания выражений в Access существует шесть категорий операторов: арифметические, операторы присваивания, логические операторы, операторы конкатенации, идентификации и сравнения с образцом.

Ниже рассмотрены:

· типы операторов;

· идентификаторы объектов и функций.

Арифметические операторы

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

В табл. 4.2 приведен список арифметических операторов для выражений Access.

Таблица 4.2. Арифметические операторы

         
  Оператор Пример Описание  
  + [Итог] + [Надбавка] Складывает два операнда  
  - Date () - 7 Считает разность двух операндов  
  - (унарный) -12345 Меняет знак операнда  
  * [Коробок] * [Цена коробки] Перемножает два операнда  
  / [Количество] / 12.55 Делит один операнд на другой  
         

 

       
  Оператор Описание Пример  
  \ Делит один целый операнд на другой нацело. При использовании деления нацело операнды с десятичными дробями округляются до целого, а дробные части отбрасываются [Коробок] \ 2  
  Mod [Коробок] Mod 12 Возвращает остаток от деления нацело. Например, 15 Mod 12 равно 3  
  ^ Возводит операнд Основание в степень Показатель ^[Показатель]  

В таблице отсутствует знак равенства (=), поскольку он отнесен к группе операторов присваивания и сравнения.

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

Обычно в качестве оператора присваивания значения объекту, переменной или константе используется знак равенства (=). Например, выражение =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. Значения логических операторов для однобитовых операндов







Последнее изменение этой страницы: 2016-06-29; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.200.226.179 (0.012 с.)