Метод DoCmd.ApplyFilter (Access)
Метод ApplyFilter выполняет действие ApplyFilter в Visual Basic.
Синтаксис
expression. ApplyFilter (FilterName, WhereCondition, ControlName)
expression: переменная, представляющая объект DoCmd.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
FilterName | Необязательный | Variant | Строковое выражение, которое является допустимым именем фильтра или запроса в текущей базе данных. При использовании этого метода для применения фильтра сервера аргумент FilterName должен быть пустым. |
WhereCondition | Необязательный | Variant | Строковое выражение, которое является допустимым предложением SQL WHERE без слова WHERE. |
ControlName | Необязательный | Variant |
Примечания
Используйте действие ApplyFilter, чтобы применить фильтр, запрос или предложение SQL WHERE к таблице, форме или отчету, чтобы ограничить или сортировать записи в таблице или записи из базовой таблицы или запроса формы или отчета. Для отчетов это действие можно использовать только в макросе, указанном свойством события OnOpen отчета.
Используйте это действие для применения предложения SQL WHERE только при применении фильтра сервера. Фильтр сервера нельзя применить к источнику записей хранимой процедуры.
Примечание.
Используйте аргумент FilterName , если вы уже определили фильтр, предоставляющий соответствующие данные. Используйте аргумент WhereCondition , чтобы ввести условия ограничения напрямую. Если вы используете оба аргумента, Microsoft Access применяет предложение WHERE к результатам фильтра. Необходимо использовать один или оба аргумента.
Фильтр или запрос можно применить к форме в представлении формы или в режиме таблицы.
Применяемое условие фильтра и WHERE становятся параметром свойства Filter формы или свойства ServerFilter отчета.
При сохранении таблицы или формы Access сохраняет любой фильтр, определенный в данный момент в этом объекте, но не будет автоматически применять фильтр при следующем открытии объекта (хотя он будет автоматически применять любой сорт, примененный к объекту до его сохранения).
Если вы хотите автоматически применить фильтр при первом открытии формы, укажите макрос, содержащий действие ApplyFilter, или процедуру события, содержащую метод ApplyFilter объекта DoCmd в качестве параметра свойства события OnOpen формы. Фильтр также можно применить с помощью действия OpenForm или OpenReport или соответствующих им методов. Чтобы автоматически применить фильтр при первом открытии таблицы, можно открыть таблицу с помощью макроса, содержащего действие OpenTable, за которым сразу же следует действие ApplyFilter.
Необходимо включить по крайней мере один из двух аргументов метода ApplyFilter . Если ввести значение для обоих аргументов, к фильтру применяется аргумент WhereCondition .
Максимальная длина аргумента WhereCondition — 32 768 символов (в отличие от аргумента действия WhereCondition в окне макроса, максимальная длина которого составляет 256 символов).
Пример
В следующем примере метод ApplyFilter используется для отображения только записей, содержащих имя King в поле LastName .
DoCmd.ApplyFilter , "LastName = 'King'"
В следующем примере показано, как использовать свойство ApplyFilter для фильтрации записей, отображаемых при выборе переключателя с именем tglFilter .
Private Sub tglFilter_Click()
With tglFilter
If .Value = True Then
.Caption = "P/T"
.StatusBarText = "only full-timers"
DoCmd.ApplyFilter , "[Hours]=40"
ElseIf .Value = False Then
.Caption = "All"
.StatusBarText = "only part-timers"
DoCmd.ApplyFilter , "[Hours]<40"
Else
.Caption = "F/T"
.StatusBarText = "all employees"
DoCmd.ShowAllRecords
.SetFocus 'to activate the button's statusbar-text
End If
End With
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.