Создание
запроса из фильтра
Еще одним
способом создания запроса является сохранение фильтра в виде запроса. Выше мы
говорили, что фильтр используется при просмотре таблицы для отбора нужных записей.
Если вы создали достаточно сложный фильтр в- окне
Фильтр
(Filter by form)
и знаете, что его придется использовать и в дальнейшем, можно сохранить его
в базе данных в виде запроса. Для этого достаточно нажать кнопку
Сохранить
как запрос
(Save as query) на панели инструментов при открытом окне
Фильтр
(Filter by form).
Рис. 4.34.
Сохранение фильтра в виде запроса
Сохраненный
фильтр может быть легко использован в дальнейшем, приием двумя способами.
Рис. 4.35.
Диалоговое окно
Применяемый фильтр
Замечание
Обратите внимание, что в списке фильтров не присутствуют другие запросы, а присутствует только фильтр, сохраненный как запрос.
Обратите внимание,
что хотя в режиме Таблицы запрос отображал все столбцы исходной таблицы, в бланке
запроса указан только один столбец "Должность" (ContactTitle), который
содержит условие отбора, и тот не включен в результат запроса. Чтобы понять,
почему так происходит, откройте запрос в режиме SQL. Для этого нужно нажать
кнопку
Вид, Режим SQL
(View, SQL View). Появится диалоговое окно, содержащее
инструкцию языка SQL, которая и обрабатывается при выполнении запроса (рис.
4.37). Эта инструкция имеет вид:
SELECT
*
FROM
Клиенты
WHERE
(((Клиенты.Должность)= "Менеджер по продажам"));
Значок * означает,
что выбираются все поля из таблицы "Клиенты".
Рис. 4.36.
Запрос "Менеджеры по продажам" в режиме Конструктора
Рис. 4.37.
Запрос "Менеджеры по продажам" в режиме SQL
В виде запроса
можно также сохранить так называемый
расширенный фильтр.
Расширенный
фильтр используется в том случае, если требуется задать сложные критерии отбора
и сортировки записей. Чтобы создать расширенный фильтр для открытой таблицы,
необходимо выполнить команду
Записи, Фильтр, Расширенный фильтр
(Records,
Filter, Advanced Filter/Sort). При этом появляется окно расширенного фильтра,
которое очень напоминает окно Конструктора запроса. На рис. 4.38 представлено
окно расширенного фильтра для таблицы "Заказы" (Orders). Чтобы создать
такой фильтр, мы выполнили следующие действия:
Рис. 4.38.
Окно расширенного фильтра
Окно расширенного фильтра действительно очень похоже на окно Конструктора запросов, однако панель инструментов очень сильно отличается от панели инструментов Конструктора запросов. Например, нельзя добавить еще одну таблицу (расширенный фильтр строится только для одной таблицы — в данном примере вторая таблица отображает поле подстановки) или выполнить группировку записей. На панели инструментов есть только две важные кнопки: Применение фильтра (Apply filter) и Сохранить как запрос (Save as query). В бланке фильтра отсутствует строка, содержащая флажки включения поля в запрос. Это означает, что фильтр не влияет на состав столбцов в результирующей таблице — всегда отображаются все столбцы, фильтруются только записи. Однако критерии отбора записей могут быть установлены сколь угодно сложные. Задаются они по тем же правилам, что и в запросах.