Поделиться через


Метод 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 и обратная связь.