Событие Form.ApplyFilter (Access)
Происходит при применении фильтра к форме.
Синтаксис
expression. ApplyFilter (Cancel, ApplyType)
выражение: переменная, представляющая объект Form.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Отмена | Обязательный | Integer | Параметр определяет, возникает ли событие ApplyFilter . Если для аргумента Cancel задано значение True , событие ApplyFilter будет отменено, и фильтр не применяется к форме. |
ApplyType | Обязательный | Integer | Возвращает тип примененного фильтра. |
Замечания
Чтобы выполнить макрос или процедуру события при возникновении этого события, задайте для свойства OnApplyFilter имя макроса или [Процедура события].
Используйте событие ApplyFilter , чтобы:
Убедитесь, что применяемый фильтр правильный. Например, может потребоваться убедиться, что любой фильтр, применяемый к форме Orders, содержит условия, ограничивающие поле OrderDate . Для этого проверьте значение свойства Filter или ServerFilter формы, чтобы убедиться, что этот критерий включен в выражение предложения WHERE.
Измените отображение формы перед применением фильтра. Например, при применении определенного фильтра может потребоваться отключить или скрыть некоторые поля, которые не подходят для записей, отображаемых этим фильтром.
Отмена или изменение действий, выполняемых при возникновении события Filter . Например, вы можете отключить или скрыть некоторые элементы управления в форме, когда пользователь создает фильтр, так как вы не хотите, чтобы эти элементы управления были включены в критерии фильтра. Затем эти элементы управления можно включить или отобразить после применения фильтра.
Действия в процедуре событий ApplyFilter или макросе выполняются перед применением или удалением фильтра либо после закрытия окна Расширенный фильтр/сортировка, Фильтрация по форме или Серверный фильтр по форме, но до повторного воспроизведения формы. Критерии, введенные во вновь созданном фильтре, доступны для процедуры события ApplyFilter или макроса в качестве параметра свойства Filter или ServerFilter .
Примечание.
Событие ApplyFilter не возникает, когда пользователь выполняет одно из следующих действий:
- Применяет или удаляет фильтр с помощью действий ApplyFilter, OpenReport или ShowAllRecords в макросе или соответствующих методов объекта DoCmd в Visual Basic.
- Использует действие Close или метод Close объекта DoCmd для закрытия окна Расширенный фильтр/сортировка, Фильтрация по форме или Фильтр сервера по форме.
- Задает свойство Filter или ServerFilter , свойство FilterOn или ServerFilterByForm в макросе или Visual Basic (хотя эти свойства можно задать в процедуре события ApplyFilter или макросе).
Пример
В следующем примере показано, как скрыть элементы управления AmountDue, Tax и TotalDue в форме Orders , если примененный фильтр ограничивает записи только теми заказами, которые были оплачены.
Чтобы попробовать этот пример, добавьте следующую процедуру события в форму Orders , содержащую элементы управления AmountDue, Tax и TotalDue. Запустите фильтр, который перечисляет только те заказы, за которые были оплачены.
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
If Not IsNull(Me.Filter) And (InStr(Me.Filter, "Orders.Paid = -1")>0 _
Or InStr(Me.Filter, "Orders.Paid = True")>0)Then
If ApplyType = acApplyFilter Then
Forms!Orders!AmountDue.Visible = False
Forms!Orders!Tax.Visible = False
Forms!Orders!TotalDue.Visible = False
ElseIf ApplyType = acShowAllRecords Then
Forms!Orders!AmountDue.Visible = True
Forms!Orders!Tax.Visible = True
Forms!Orders!TotalDue.Visible = True
End If
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.