Макрокоманда «ПрименитьФильтр»

С помощью команды ПрименитьФильтр вы можете применить фильтр, запрос или предложение SQL WHERE к таблице, форме или отчету, чтобы отфильтровать или отсортировать записи в таблице либо в форме или отчете, созданных на базе таблицы или запроса. Для отчетов это действие можно использовать только в макросе, заданном с помощью свойства события OnOpen данного отчета.

Примечание : Применить предложение SQL WHERE с помощью этого действия можно только при использовании серверного фильтра. Серверный фильтр нельзя применить к источнику записей хранимой процедуры.

Примечание : Макрокоманда "ПрименитьФильтр" недоступна в веб-приложениях Access.

Настройка

Аргументы макрокоманды ПрименитьФильтр описаны ниже.

Аргумент макрокоманды

Описание

Имя фильтра

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

Примечание : Когда эта макрокоманда используется для применения серверного фильтра, аргумент Имя фильтра должен быть пустым.

Условие Where

Действительное предложение SQL WHERE (без слова WHERE) или выражение, выполняющее отбор записей таблицы, формы или отчета.

Примечание : В выражении аргумента условия Where левая часть обычно содержит имя поля из таблицы или запроса, на которых основаны форма или отчет. Правая сторона выражения обычно содержит условия, которые нужно применить к этому полю, чтобы отобрать или отсортировать записи. Например, условие может быть именем элемента управления или другой формы, содержащей значение, с которым нужно сравнить записи в первой форме. Имя элемента управления должно быть указано в полном формате. Пример:

Forms!имя_формы!имя_элемента_управления

Имена полей заключаются в двойные кавычки, а строковые литералы — в одинарные.

Максимальная длина аргумента условия Where составляет 255 знаков. Если нужно указать более длинное предложение SQL WHERE, используйте метод ПрименитьФильтр объекта DoCmd из модуля Visual Basic для приложений (VBA). Длина предложений SQL WHERE в VBA может составлять до 32 768 знаков.


Примечание : Аргумент Имя фильтра можно использовать, если уже определен фильтр, содержащий соответствующие данные. С помощью аргумента условия Where можно непосредственно задать ограничительное условие. При использовании обоих аргументов Access применяет предложение WHERE к результатам фильтрации. Необходимо использовать один или оба этих аргумента.

Замечания

Фильтр или запрос можно применить к форме в представлении формы или режиме таблицы.

Применяемые фильтр и условие WHERE становятся значением свойства Фильтр или ServerFilter формы или отчета.

При работе с таблицами и формами выполнение этой макрокоманды аналогично выбору команды Применить фильтр/Отсортировать или Применить серверный фильтр в меню Записи. Команда меню применяет последний созданный фильтр к таблице или форме, в то время как макрокоманда ПрименитьФильтр применяет указанный фильтр или запрос.

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

Чтобы удалить фильтр и отобразить все записи таблицы или формы в базе данных Access, можно воспользоваться макрокомандой ПоказатьВсеЗаписи или командой Удалить фильтр в меню Записи. Чтобы убрать фильтр в проекте Access (ADP), можно вернуться в окно серверный фильтр по форме и удалить все условия фильтрации, а затем выбрать команду Применить серверный фильтр в меню Записи на панели инструментов или задать для свойства ServerFilterByForm значение Ложь (0).

При сохранении таблицы или формы Access сохраняет фильтр, заданный в соответствующем объекте в данный момент, однако не применяет его автоматически в следующий раз при открытии этого объекта (при этом автоматически применяются условия сортировки, которые были применены к объекту на момент его сохранения). Чтобы автоматически применять фильтр при первом открытии формы, задайте макрос с макрокомандой ПрименитьФильтр или процедуру события, содержащую метод ПрименитьФильтр объекта DoCmd в качестве значения свойства события OnOpen формы. Применить фильтр также можно с помощью макрокоманд ОткрытьФорму и ОткрытьОтчет или их соответствующих методов. Чтобы автоматически применять фильтр при первом открытии таблицы, ее можно открывать с помощью макроса, содержащего макрокоманду ОткрытьТаблицу, за которой сразу следует макрокоманда ПрименитьФильтр.

Пример

Применение фильтра с помощью макроса

Приведенный ниже макрос содержит набор макрокоманд, каждая из которых фильтрует записи в форме "Список телефонов клиентов". В нем демонстрируется использование макрокоманд ПрименитьФильтр, ПоказатьВсеЗаписи и КЭлементуУправления. Здесь также показано, как с помощью условий определить, какой выключатель выбран в группе переключателей на форме. Каждая строка действия связана с выключателем, который выбирает набор записей начиная с A, B, C и т. д. либо все записи. Этот макрос прикрепляется к событию AfterUpdate группы переключателей CompanyNameFilter.

Условие

Макрокоманда

Аргументы: параметр

Примечания

[CompanyNameFilters]=1

ПрименитьФильтр

Условие Where: [CompanyName] Like "[AÀÁÂÃÄ]*"

Фильтрация названий компании, которые начинаются с буквы A, À, Á, Â, Ã или Ä.

[CompanyNameFilters]=2

ПрименитьФильтр

Условие Where: [CompanyName] Like "B*"

Фильтрация названий компании, которые начинаются с буквы B.

[CompanyNameFilters]=3

ПрименитьФильтр

Условие Where: [CompanyName] Like "[CÇ]*"

Фильтрация названий компании, которые начинаются с буквы C или Ç.

... Строки действий с D по Y задаются в том же формате, что и строки с A по C...

[CompanyNameFilters]=26

ПрименитьФильтр

Условие Where: [CompanyName] Like "[ZÆØÅ]*"

Фильтрация названий компании, которые начинаются с буквы Z, Æ, Ø или Å.

[CompanyNameFilters]=27

ПоказатьВсеЗаписи

Показать все записи.

[RecordsetClone].[RecordCount]>0

КЭлементуУправления

Имя элемента: CompanyName

Если для выбранной буквы возвращаются записи, перевести фокус на элемент управления CompanyName.


Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×