Сохранение фильтров для дальнейшего использования

 

Одно из ограничений применения фильтров в формах заключается в том, что программа Access помнит только последний набор условий отбора. Если вы подготовили сложное выражение для фильтрации, которое хотите использовать в дальнейшем, подобное ограничение становится проблемой. Как только вы примените другое условие отбора, плоды вашей напряженной работы будут потеряны.

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

С другой стороны, если вы не планируете применять заданные условия отбора слишком часто, но хотите иметь их под рукой, когда они понадобятся в следующий раз (или если нужно хранить десятки разных условий отбора и при этом вы не хотите иметь десятки почти одинаковых форм), есть лучший выбор. Можно сохранить в вашей БД условия отбора фильтра как запрос. В дальнейшем, когда вы захотите вернуться к ним, вы сможете загрузить их и применить в вашей форме.

Далее описано, как реализовать этот прием.

1.  Примените ваши фильтры.

Используйте любой из методов, описанных в разд. "Фильтрация в форме"ранее в этой главе.

2.  Выберите на ленте Главная > Сортировка и фильтр > Дополнительно > Расширенный фильтр (Home > Sort & Filter > Advanced > Advanced Filter/Sort).

Это действие открывает на экране окно запроса. Данный запрос использует тот же источник данных (таблицу или запрос), что и ваша форма, и применяет ваши условия отбора с помощью поля Условие отбора, расположенного под соответствующим полем. Вам не нужно вносить никакие изменения в окне запроса, поскольку программа Access автоматически заполняет поле (или поля) Условие отбора на основании текущих условий фильтрации.

3.  Выберите на ленте Главная > Сортировка и фильтр > Дополнительно > Сохранить как запрос (Home > Sort & Filter > Advanced > Save as Query). Задайте имя запроса и нажмите кнопку ОК.

 

Несмотря на то, что этот запрос можно использовать как обычный, вряд ли вы захотите это делать. Для того чтобы не возникало путаницы, примените другой тип имени, например, CustomerBrowser_FiIter (фильтр обозревателя клиентов), ясно указывающий на то, что данный запрос применяется для фильтрации формы.

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

1. Выберите на ленте Главная > Сортировка и фильтр > Дополнительно > Расширенный фильтр.

Этот шаг открывает окно запроса.

2. Выберите на ленте Главная > Сортировка и фильтр > Дополнительно > Загрузить из запроса (Home > Sort & Filter > Advanced > Load From Query).

Программа Access отобразит все запросы, использующие ту же таблицу и не содержащие операций объединения.

3. Выберите запрос с условиями фильтрации, созданный ранее, и щелкните мышью кнопку
ОК.

В окне запроса появятся условия отбора из этого запроса.

4. Щелкните правой кнопкой мыши на свободном месте в окне запроса и выберите команду Применить фильтр (Apply Filter/Sort) для применения заданных условий отбора.

 

 

Подсказка

Этот прием можно использовать для применения одних и тех же условий отбора в разных формах, при наличии в них полей, по которым вы хотите фильтровать записи. (Можно воспользоваться условиями отбора, созданными для формы CustomerBrowser в другой форме, отображающей клиентов, но не в форме, которая выводит товары.)

 

 

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100