Пока вы пользовались запросами для отбора и просмотра данных из таблицы. Но таблица может дать гораздо больше информации. Мы имеем в виду вычисление значений на основании существующих полей. Например, Сведения Заказов содержит поле Количество1, а в таблице Склад есть поле Цена. Количество1 сообщает, как много изделий заказал клиент. Цена – стоимость одного изделия. Для вычисления общей стоимости необходимо перемножить значения этих полей. (Она понадобится также при расчете полной суммы заказа.)
На рис. 5.9 представлен запрос, который может стать основой для отчета о состоянии дел на складе. Он содержит поле Код клиента из таблицы Клиенты, поля Код Заказа и Дата из таблицы Заказы, поле Код изделия из таблицы Сведения заказов. В запросе также участвует таблица Склад (ее не видно, так как она располагается во втором ряду, как раз под списком полей запроса), так что ее поля доступны для вычисления стоимости заказа. Обратите внимание, что вычисляемые поля могут участвовать в сортировке и фильтрации данных.
Рис.5.9. Запрос для подсчета стоимости
Чтобы произвести вычисления, в строке Поле (Field) вводится выражение (математическое). В нашем примере в первом пустом столбце введите следующее: Сумма:[Сведения Заказов]![Количество1]*[Цена]. «Сумма» – это название будущего столбца; за ней следует двоеточие. Если не указать заголовка, то Access создаст его сам, причем весьма бессмысленный. Имена полей вводятся в том виде, как они указаны в таблице, только заключенные в квадратные скобки, а для вычислений используются математические операторы.
Если какое-то поле встречается только в одной таблице, то ее имя указывать необязательно. Однако в нашем случае две используемые таблицы содержат поле Количество1. Если бы в выражении использовались только имена полей, то Access выдал бы сообщение о неоднозначной ссылке на поле. Мы не хотим огорчать Access, поэтому указываем имя таблицы, заключенное в квадратные скобки, восклицательный знак, затем имя поля: [Сведения Заказов]![Количество1]. Это гарантирует, что в поисках поля Количество1 программа обратится к таблице Сведения Заказов, а не к таблице Склад.
Выполните запрос и посмотрите на вычисленное значение. (При добавлении нового поля Access автоматически устанавливает флажок.)