Расширение сферы использования запросов
Взаимодействие с запросом путем добавления параметра
До сих пор запросы выполняли именно то, что от них требовалось. Если добавить параметр (разновидности выражения), перед выполнением запроса понадобится ответить на несколько вопросов. Это даст возможность изменить получаемые результаты с помощью лишь одного запроса.
Параметрический запрос на самом деле отличается от активных запросов или запросов на выборку. Параметр позволяет "взаимодействовать" с запросом непосредственно во время его выполнения.
Предположим, нужно просмотреть записи о растениях, однако часто отображаемые запросом растения следует отфильтровать по стране, где они были приобретены. Необходимо создать простой параметрический запрос, для которого будет указана страна, после чего запрос возвратит лишь записи, отвечающие поставленному критерию. Вот как это реализуется на практике.
- Выберите таблицу Растения в окне базы данных и выполните команду Вставка › 3апрос. Дважды щелкните на записи Конструктор в; меню Новый запрос.
- В режиме конструктора добавьте таблицу Каталоги на рабочее поле, щелкнув на кнопке Отобразить таблицу, расположенной на панели инструментов, дважды щелкнув на опции Каталоги, а затем на кнопке Закрыть.
- Добавьте в таблицу конструктора все записи таблицы Растения. Затем добавьте поле Страна из таблицы Каталоги.
- Введите параметрическое выражение [Пожалуйста, добавьте страну] в ячейку Условие отбора поля Страна, как показано на рис. 12.23. При вводе выражения не забудьте указать квадратные скобки.
- Запустите запрос, и появится диалоговое окно, в котором нужно ввести название страны. Введите Россия, как показано на рис. 12.24, и щелкните на кнопке ОК. Результат, который вы должны получить, представлен на рис. 12.25. Как видите, запрос отобразил только записи о растениях, приобретенных из российских каталогов (если в прошлых примерах записи Россия не были заменены на Российская Федерация, введите именно параметр Россия). Сохраните запрос (это делать не обязательно) как ПараметрСтрана.
При желании строку параметра запроса можно проигнорировать, но это не имеет особого смысла. В данном случае запрос должен отобразить все записи, поскольку никакой параметр фильтрации не указан, однако пустая строка параметра обрабатывается Access другим образом, и в результате можно остаться вообще без записей. Дело в том, что пустая строка воспринимается Access как условие для отображения пустых, незаполненных записей. Так как все поля Страна имеют определенное значение, условие запроса будет не выполнено, следовательно, никакие записи не будут выведены на экран.
Рис. 12.23. Ввод параметрического выражения в ячейку Условие отбора поля Страна
Рис. 12.24. В строке параметрического запроса Access нужно ввести дополнительную информацию
Рис. 12.25. Запрос отображает только записи Россия