Запрос с параметром (параметрический запрос)
Как правило, запросы с параметром (рис. 10.34) создаются в тех случаях, когда предполагается выполнять этот запрос многократно, изменяя лишь условия отбора.
Чтобы определить параметр, введите в строку "Условие отбора" вместо конкретного значения имя или фразу, заключенную в квадратные скобки ([]). То, что заключено внутри квадратных скобок, Access рассматривает как имя параметра. Оно выводится в окне диалога при выполнении запроса, поэтому в качестве имени параметра разумно использовать содержательную фразу. В запросе можно задать
Рис. 10.34. Пример создания запроса с параметром
несколько параметров; при этом имя каждого из них должно быть уникальным и информативным.
Например, требуется создать параметрический запрос для отображения процессоров стоимостью до определенной суммы, их наименования, цены и телефона склада, где они хранятся (параметром является цена товара).
Перекрестный запрос
Перекрестный запрос – особый тип итогового запроса. Он позволяет вывести вычисляемые значения в перекрестной таблице, напоминающей электронную.
Для построения перекрестного запроса выполните следующие действия.
В режиме конструктора сформируйте запрос на выборку.
Измените тип запроса на Перекрестный (вкладка Работа с запросами, группа Тип запроса) (рис. 10.35).
Рис. 10.35. Кнопка Перекрестный запрос
В нижней части бланка запроса появятся строки "Групповая операция" и "Перекрестная таблица" (рис. 10.36).
В строке "Перекрестная таблица" для каждого поля запроса выберите одну из четырех установок: Заголовки строк, Заголовки столбцов. Значение (выводимое в ячейках перекрестной таблицы) или Не отображается.
Для перекрестного запроса определите поле (можно несколько) в качестве заголовков строк. Определите одно (и только одно) поле, которое будет использоваться в качестве заголовков столбцов.
Определите одно (и только одно) поле значений. Это поле должно быть итоговым (т.е. в строке "Групповая операция" должна быть задана одна из итоговых функций, на-
Рис. 10.36. Конструктор Перекрестного запроса
пример суммирования (Sum), определения среднего значения (Avg) или количества (Count)).
В качестве примера рассмотрим создание перекрестного запроса, отображающего количество товаров, хранящихся на складах. В заголовках строк укажем наименования товаров, в заголовках столбцов – номера складов (рис. 10.37).
Рис. 10.37. Пример создания перекрестного запроса
Вычисляемые поля в запросах
Запрос можно использовать для выполнения расчетов и подведения итогов из исходных таблиц.
Для создания вычисляемых полей можно использовать арифметические операторы и любые встроенные функции Access.
Вычисляемое поле может также содержать результат конкатенации (объединения) значений текстовых полей. Для этого заключите текст в кавычки, в качестве оператора конкатенации используется символ "&". Например, можно создать поле, которое будет содержать результат объединения поля [Фамилия] и поля [Имя].
Поле, содержимое которого является результатом расчета но содержимому других полей, называется вычисляемым полем. Вычисляемое поле существует только в результирующей таблице.
Создание вычисляемого поля осуществляется путем простого ввода выражения для вычисления в ячейку "Поле" пустого столбца бланка запроса (рис. 10.38).
Рис. 10.38. Создание вычисляемого поля
После выполнения запроса в результирующей таблице появится новое иоле с названием "Выражение1", используемым в качестве имени вычисленного выражения.
В режиме конструктора запроса измените имя "Выражение!" на более содержательное. В примере "Выражение!" изменено на "ЦенаСоСкидкой".
Для того чтобы ввести сложные вычисления, используйте окно Построитель выражений (рис. 10.39), которое вызывается командой , расположенной на вкладке Работа с запросами (в режиме конструктора) в группе Настройка запроса, либо соответствующей командой контекстного меню.
Рис. 10.39. Построитель выражений
В верхней части окна расположена пустая область ввода, предназначенная для создания выражения; в нижней находятся три списка, предназначенные для поиска необходимых полей и функций.
Построитель поможет правильно построить выражение. Щелкните на кнопке ОК, и введенное выражение будет перенесено в бланк запроса.