Выражения строятся из операндов, знаков операций (операторов) и функций.
Операнды:
1) Идентификаторы (имена объектов Access):
· полей (в таблице, запросе, форме, отчете);
· элементов управления в текущем или в другом объекте;
· таблиц или запросов;
· свойств.
Полное имя объекта задается с использованием следующих символов:
[ ] - выделяет имя объекта, состоящее более чем из одного слова (т. е. имеющее пробелы в имени), например [номер детали].
! - разделяет имена объектов, например [Поставщики]![номер поставщика]. Здесь Поставщики - имя таблицы, а номер поставщика - имя поля этой таблицы.
. (точка) - отделяет имена объектов от свойств, например
Forms![Поставщики]![Отбор].OnClick
Здесь Forms - служебное слово, указывающее тип объекта (семейство, к которому принадлежит объект и имя которого указано далее),
Поставщики – имя формы, Отбор – имя объекта на форме (по-видимому, кнопка), OnClick- свойствокнопки.
[Поставщики] - имя формы, [Отбор] - имя кнопки (элемента управления) на форме, а OnCkick - имя свойства кнопки (Нажатие кнопки).
2) Литералы:
· текстовые заключаются в двойные кавычки, например “Москва”
· типа даты заключаются в символы решетки, например#31.01.99#
· числовые записываются буквально, например, целое число 5245 или действительное число 44,25 (так пишется на QBE-бланке) и 44.25 (так пишется в SQL-запросе).
3) Константы (специальные литералы):
· “ ” - пустая строка соответствует текстовому выражению, которое ничего не содержит
· Null - пустое ( не введенное) значение
· Истина(True)/ Ложь(False) - логические значения
Операторы:
1) Арифметические (+ - * / ^ \ Mod). Здесь символ \ означает деление без остатка (возвращает только целую часть частного), Mod - вычисляет остаток от деления
2) Текстовые (+ &). И тот, и другой символ используются для слияния (конкатенации) строк текста
· Отношения или сравнения (> >= = <>(не равно) < <= Between...And). Between...And означает в указанном диапазоне, например Between 5 And 10 означает в диапазоне от 5 до 10 включительно.
· Логические (And, Or, Not и пр.)
3) Присваивания (=)
4) Like, содержащий символы подстановки:
* - любая группа символов
? - один любой символ
· Например Like “A*”, что означает начинающиеся на букву А.
Функции:
· Пользовательские (созданные пользователем)
· Встроенные:
¨ Математические: Sin(), Sqr(), Abs() и пр.
¨ Текстовые (для работы с текстом): Ltrim(), Rtrim(), Trim() - удаляют ненужные пробелы в начале, в конце, в начале и в конце строки и пр.
· Дата/ Время: Year([Поставки]![Дата поставки]) - выделяет в виде четырех цифр год из поля Дата поставки таблицы Поставки
¨ Статистические: Max(), Sum(), Avg() и пр.
¨ Общие: In() - обозначает принадлежность заданному в скобках множеству значений, например In(1;5;7;23) или In(“Москва”;”СПб”;”Самара”) и пр.
¨ Проверки: IsNull() - проверяет, имеет ли поле пустое (не введенное) значение, например IsNull([Имя поставщика]) и пр.
· Управления: Iif(), например Iif([Цена]>100; “Дорогая”; “Дешевая”), что означает: если условие [Цена]>100 - истина, то функция возвращает значение “Дорогая”, если - ложь, то функция возвращает значение “Дешевая” и пр.
Примеры запросов
Пусть БД состоит из трех взаимосвязанных таблиц (схема данных дана на рисунке 16):