Параметрический запрос – это запрос, при выполнении которого задаётся переменный параметр.
Для создания параметрического запроса необходимо сначала создать простой запрос для вывода нужных полей (в том числе и полей, по которым будут вводиться параметры). Чтобы определить параметр, необходимо в поле, для которого задаётся переменное значение в строке Условие отбора вместо конкретного значения ввести фразу, заключенную в квадратные скобки. То, что заключено в квадратных скобках, АССЕSS рассматривает как имя параметра. Оно выводится в окне диалога при выполнении запроса. Поэтому в качестве имени параметра разумно использовать содержательную фразу. В одном запросе можно задать несколько параметров. При этом имя каждого параметра должно быть уникальным и содержательным. При выполнении запроса АССЕSS попросит ввести поочередно значения для каждого из параметров, используя окна диалогов.
Пример. Из базы данных вывести сведения о поставках поставщиками конкретного материала (вводимого по запросу) в заданный период (указанный в запросе).
Ход выполнения:
Чтобы вывести эти сведения необходимо создать параметрический запрос с тремя параметрами. В верхнюю часть запроса необходимо поместить таблицы ПОСТАВКА, МАТЕРИАЛ, ПОСТАВЩИК, т.к. понадобятся поля только из этих таблиц. В нижней части запроса необходимо выбрать нужные поля из соответствующих таблиц. Для поля Материал в строке Условие отбора необходимо ввести параметр [Введите материал]. Для указания диапазона дат нужного периода в поле Дата_поставки в строке Условие отбора необходимо ввести BETWEEN [Введите начальную дату] AND [Введите конечную дату].
В результате будет сформирован запрос, который в режиме конструктора имеет вид, показанный на рис. 1.27.
Если выполнить этот запрос, щелкнув мышью по его названию дважды, то сначала появится диалоговое окно для ввода значения параметра [Введите материал], показанное на рис. 1.28, а после ввода значения "песок" и щелчка по кнопке ОК этого диалогового окна поочередно появятся диалоговые окна для ввода значений параметров [Введите начальную дату] и [Введите конечную дату]. После ввода в них значений "1.07.01" и "31.12.01" соответственно, как показано на рис. 1.29 – 1.30, можно будет увидеть набор записей этого запроса, показанный на рис. 1.31.