В запросе для каждой записи могут производиться вычисления с числовыми и строковыми значениями или значениями дат с использованием данных из одного или нескольких полей. Результат вычисления образует в таблице запроса новое вычисляемое поле. В исходных таблицах новых полей не создается. При каждом выполнении запроса производится вычисление с использованием текущих значений полей. Вычисления проводятся построчно (горизонтально).
В выражениях вычисляемых полей помимо имен полей могут использоваться литералы и функции. В результате обработки выражения может получаться только одно значение. Для записи выражения в вычисляемом поле может быть использован Построитель выражений, который вызывается из контекстного меню кнопкой «Построить». Курсор мыши предварительно должен быть установлен в ячейке ввода выражения. При этом открывается окно построителя выражений (Рис. 2.36). В формулах, которые будут созданы в построителе выражений, участвуют не данные, а заголовки полей, из которых они будут взяты. В окне построителя выражений будет отражаться вводимая формула (Рис. 2.37).
|
|
Рис. 2.36 Вызов окна построителя выражений
Рис. 2.37 Создание формул в построителе выражений
Вычисляемое поле может содержать вызовы встроенных функций Access и следующие операторы:
«+» – складывает два арифметических выражения;
«–» – вычитает из первого арифметического выражения второе;
«*» – перемножает два арифметических выражения;
«/» – делит первое арифметическое выражение на второе;
«\» – округляет два арифметических выражения до целых значений и делит первое на второе. Результат округляется до целого;
«^» – возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением;
«MOD» – округляет оба арифметических выражения до целых значений, делит первое на второе и возвращает остаток;
«&» – создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, то оно автоматически преобразуется в строку символов.
Например, необходимо вычислить стоимость товара, приобретенного у поставщика. Для этого необходимо ввести формулу:
цена покупки * количество купленного
Для построения выражения надо выбрать таблицу «Товары», а в ней поля «Цена покупки» и «Количество купленного». При создании выражения в окне построителя формула будет отображаться следующим образом:
[товары]![цена покупки]*[товары]![кол-во купленного]
В первых квадратных скобках указывается название таблицы, из которой взяты данные. (Это нужно на тот случай, если данные берутся из нескольких таблиц, или в нескольких таблицах есть поля с одинаковыми названиями). В следующих скобках указывается название поля. Знак «!» используется как разделитель. В результате вычислений будет создано поле, в котором числа из поля «Цена» построчно будут перемножены на числа, из поля «Количество» (Рис. 2.38).
|
|
№ | Название | Цена покупки | Кол-во покупки | … | В результате выполнения запроса появится таблица: | № | Название | Выражение 1 | |
Хлеб | Хлеб | ||||||||
Батон | Батон | ||||||||
Сушка | Сушка |
Рис. 2.38 Вычисление стоимости товара с помощью построителя выражений
Если в процессе работы с базой данных цена товара или его количество изменится, это сразу же отразится на значении стоимости товара в запросе.
По умолчанию первому вычисляемому полю присваивается имя Выражение1 следующему Выражение2 и т.д. Пользователь имеет возможность присвоить новое имя и подпись вычисляемому полю.
Для изменения только имени поля в запросе в режиме конструктора запроса в бланке запроса вместо «выражение N» надоввести новое имя. Новое имя используется не только в заголовке столбца таблицы запроса, а и в новых объектах, построенных на этом запросе.
Для изменения подписи поля в свойствах поля надо установить курсор мыши на вычисляемое поле в бланке запроса. В окне «Свойства поля»на вкладке «Общие»ввести нужный текст подписи в строку «Подпись поля».
При создании вычисляемых полей так же могут быть использованы параметры. Например, увеличение оклада работников может производиться не на заданную сумму, а на определенный процент, вводимый с клавиатуры. Для этого в формулу построителя выражений надо добавить, например, [введите процент]. (Рис. 2.39)
Рис. 2.39 Использование параметра в вычисляемых полях