Access VBA教程:ApplyFilter事件

ApplyFilter事件在Microsoft Access 项目 (.adp) 或Access 数据库 (.mdb) 中都可以发生。

在 Access 数据库中,用户执行下列操作之一时,ApplyFilter事件将发生:

在 Access 项目中,用户执行下列操作之一时,ApplyFilter事件发生:

说明

当该事件发生时,若要运行一个宏或事件过程,可将OnApplyFilter属性设置为宏的名称或 [事件过程]。

使用 ApplyFilter事件可以:

在应用筛选或取消筛选前,或者在关闭“高级筛选/排序”、“按窗体筛选”、“按窗体服务器筛选”窗口之后、重新显示窗体之前,ApplyFilter 宏中的操作或事件过程将发生。在新建筛选中输入的条件,将成为 ApplyFilter 宏或事件过程的 Filter 或 ServerFilter属性设置。

注意  当用户执行下列操作之一时,ApplyFilter事件不会发生:

VBA示例

以下示例显示了当筛选用于限制那些已支付的订单记录时,如何在“订单”窗体上隐藏“数量”、“折扣”和“总价”控件。

若要试用该示例,请在包含“数量”、“折扣”和“总价”控件的“订单”窗体中添加下列事件过程。运行只列出那些已支付了的订单记录的筛选。


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

上页:Access VBA教程:AfterUpdate事件 下页:Access VBA教程:BeforeBeginTransaction事件

Access VBA教程:ApplyFilter事件

Access VBA教程:BeforeBeginTransaction事件 Access VBA教程:BeforeCommitTransaction事件
Access VBA教程:BeforeDelConfirm事件 Access VBA教程:BeforeInsert事件
Access VBA教程:BeforeQuery事件 Access VBA教程:BeforeRender事件
Access VBA教程:BeforeScreenTip事件 Access VBA教程:BeforeUpdate事件
Access VBA教程:BeginBatchEdit事件 Access VBA教程:Change事件
Access VBA教程:Click事件 Access VBA教程:Close事件
Access VBA教程:CommandBeforeExecute事件 Access VBA教程:CommandChecked事件
Access VBA教程:CommandEnabled事件 Access VBA教程:CommandExecute事件
Access VBA教程:Current事件 Access VBA教程:DataChange事件
Access VBA教程:DataSetChange事件 Access VBA教程:DblClick事件
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号