Использование параметров в вычисляемых полях

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

Запрос с параметром:Создать параметрический запрос для расчета стоимости товара с учетом скидки, где – скидка – параметр, вводимый в диалоговое окно при выполнении запроса пользователем.

 

В режиме конструктора добавьте таблицу Товары, перенесите все ее поля в строку Поле. В четвертом столбце составьте вычисляемое поле ценасоскидкой: [Товары]![Цена]*(1-[скидка_в_ процентах]/100). При запуске этого запроса появится окно, в которое нужно будет ввести скидку в %. Сохраните запрос под именем ЗапросСПараметром.

 

Перекрестные запросы

Перекрестные запросы – это более сложная категория запросов, в которой тоже используются итоговые вычисления и группировка по записям, правда результат их работы – это двухмерная таблица. Рассмотрим сразу пример.

ЗапросНаПоквартальныеПродажи:Требуется создать такой запрос, который в виде таблицы будет отображать сумму, на которую заказана та или иная марка товара покупателями в целом в зависимости от квартала 2007 года.

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

Итак, начнем с создания предварительного запроса, с дополнительным вычисляемым полем. В режиме конструктора добавьте таблицы Товары, Заказы, Сведения о заказе. Оформите запрос, как показано на рис. 17.

 

(Рис. 17)

Сумма_заказа – вычисляемое поле. Для него должно быть введено выражение: «сумма_заказа: [Сведения о заказе]![Цена]*[Сведения о заказе]![Количество]». Выполните запрос и сохраните его под именем Вспомогательный_Запрос.Теперь создадим перекрестный запрос поквартальной суммы заказа по каждой марке на основе вспомогательного запроса. Выберите опцию Вставка/Запрос. Выберите Мастер перекрестных запросов, нажмите ОК. Перед вами появится окно, показанное на рис. 18. Выберите в графе Показать Запросы и найдите Вспомогательный_Запрос.Нажмите Далее. Выберите поле Марка в качестве поля, значения которого будут отображаться как заголовки строк, для

(Рис. 18)

 

этого, выделив название поле, нажмите кнопку «>». Нажмите Далее, теперь выберите поле ДатаРазмещения в качестве поля, значения которого будут представлять заголовки столбцов.

Нажмите Далее. На следующем этапе нужно выбрать интервал группировки дат, например, квартал. Нажмите Далее. Теперь выберите тип итогового вычисления. В нашем случае – это сумма. Нажмите Далее. Заключительное окно предлагает указать имя запроса. Введите ПоквартальныеПродажиЗа2007год,нажмите Готово.На рис. 19 показано, что примерно должно получаться, хотя в данном случае, запрос не совсем представительный, т.к. заказы в 2007 годы в рассматриваемой фирме были сделаны только в 4 квартале 2007 г. Если вы при заполнении формы Заказы по клиентам внесли более богатую информацию в плане дат в 2007 году, то и результат перекрестного запроса будет больше, например включать в себя все четыре квартала.

 

(Рис. 19)