全部显示
Filter 事件
在 Microsoft Access 项目(.adp)或 Access 数据库(.mdb)中可以发生 Filter 事件。
当用户在 Access 数据库中执行下列操作时,Filter 事件发生:
- 在“窗体”视图中的“记录”菜单上,指向“筛选”,然后单击“按窗体筛选”,或在工具栏上单击“按窗体筛选”
。这样将打开“按窗体筛选”窗口,在此窗口中可以创建一个基于窗体中字段的筛选。
- 在“窗体”视图中的“记录”菜单上,指向“筛选”,然后单击“高级筛选/排序”。这样将打开“高级筛选/排序”窗口,在此窗口中可为窗体创建复杂的筛选。
- 在“按窗体筛选”窗口打开时,在“筛选”菜单上单击“高级筛选/排序”;或在“高级筛选/排序”窗口打开时,在“筛选”菜单上单击“按窗体筛选”。这些操作会在打开的筛选窗口关闭时,导致 ApplyFilter 事件发生,然后,在其他“筛选”窗口打开时,Filter 事件发生。
当用户在 Access 项目中执行下列操作时,Filter 事件发生:
- 在“窗体”视图中的“记录”菜单上,指向“筛选”,然后单击“按窗体筛选”,或在工具栏上单击“按窗体筛选”
。这样将打开“按窗体筛选”窗口,在此窗口中可以创建一个基于窗体中字段的筛选。
- 在“窗体”视图中的“记录”菜单上,指向“筛选”,然后单击工具栏上的“按窗体服务器筛选”
。 这样将打开“按窗体服务器筛选”窗口,在此窗口中可以快速创建基于窗体中字段的服务器筛选。
- 在 Access 项目中“高级筛选/排序”窗口不可用。
说明
若要在此事件发生时运行宏或事件过程,请将 OnFilter 属性设置为宏的名称或 [事件过程]。
使用 Filter 事件可以执行以下操作:
- 删除窗体上以前的所有筛选。为此,首先在筛选操作或事件过程中将窗体的 Filter 或 ServerFilter 属性设为一个空字符串 (" ")。如果要确保在新的筛选中不显示无关的条件,此方法非常有用。例如,当使用“按选定内容筛选”功能,使用的条件(在窗体中选取的文本)都将添加到 Filter 或 ServerFilter 属性的 WHERE 子句表达式中,而且会在“按窗体筛选”窗口和“高级筛选/排序”或“按窗体服务器筛选”窗口中显示。通过使用 Filter 事件可删除旧条件。
- 为新筛选输入默认设置,可设置 Filter 或 ServerFilter 属性来包含这些条件。例如,可以使“产品”窗体的全部筛选仅显示当前产品(在“产品”窗体中的“中止”控件没有选定的产品)。
- 使用自定义的筛选窗口而不是 Microsoft Access 的“筛选”窗口。当 Filter 事件发生时,可打开自己的自定义窗体,然后使用此窗体中的项目来设置 Filter 或 ServerFilter 属性以及对以前的窗体进行筛选。当用户关闭此自定义窗体时,将原来窗体的 FilterOn 或 ServerFilterByForm 属性设为 True (-1) 即可应用筛选。取消 Filter 事件可阻止打开 Microsoft Access“筛选”窗口。
- 避免窗体中的特定控件在“按窗体筛选”或“按窗体服务器筛选”窗口中显示或使用。如果在 Filter 宏或事件过程中禁用或隐藏某个控件,则此控件将在“按窗体筛选”或“按窗体服务器筛选”窗口中隐藏或失效,不能用于设置筛选条件。然后,在应用筛选之后,或者从窗体中删除筛选后,便可以使用 ApplyFilter 事件来显示或启用该控件。