ApplyFilter 事件在 Microsoft Access 项目 (.adp) 或 Access 数据库 (.mdb) 中都可以发生。
在 Access 数据库中,用户执行下列操作之一时,ApplyFilter 事件将发生:
在 Access 项目中,用户执行下列操作之一时,ApplyFilter 事件发生:
当该事件发生时,若要运行一个宏或事件过程,可将 OnApplyFilter 属性设置为宏的名称或 [事件过程]。
使用 ApplyFilter 事件可以:
在应用筛选或取消筛选前,或者在关闭“高级筛选/排序”、“按窗体筛选”、“按窗体服务器筛选”窗口之后、重新显示窗体之前,ApplyFilter 宏中的操作或事件过程将发生。在新建筛选中输入的条件,将成为 ApplyFilter 宏或事件过程的 Filter 或 ServerFilter 属性设置。
注意 当用户执行下列操作之一时,ApplyFilter 事件不会发生:
以下示例显示了当筛选用于限制那些已支付的订单记录时,如何在“订单”窗体上隐藏“数量”、“折扣”和“总价”控件。
若要试用该示例,请在包含“数量”、“折扣”和“总价”控件的“订单”窗体中添加下列事件过程。运行只列出那些已支付了的订单记录的筛选。
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