ApplyFilter 宏操作

可以使用 ApplyFilter 操作将 筛选器 、 查询 或 SQL WHERE 子句应用于 表 、 窗体 或 报表 以限制或排序表中的记录,或者窗体或报表的基础表或查询中的记录。 对于报表,只能在由报表的 OnOpen 事件 宏 指定的名称中使用此操作。

注意: 此操作只能在应用服务器筛选器SQL WHERE 子句。 服务器筛选器不能应用于存储过程的记录源。

注意: ApplyFilter 宏操作在 Access Web 应用中不可用。

设置

ApplyFilter操作具有下列参数。

操作参数

说明

筛选器名称

限制或排序表、窗体或报表记录的筛选器或查询的名称。 可以在"宏生成器"窗格的"操作参数"部分中的"筛选器名称"框中输入现有查询或已保存为查询的筛选器的名称。

注意: 使用此操作应用服务器筛选器时,筛选器 名称参数必须 为空。

Where Condition

一个有效的SQL WHERE 子句 (不带单词 WHERE) 或 表达式 限制表、窗体或报表的记录的行。

注意: 在 Where Condition 参数表达式中,表达式左侧通常包含基础表或窗体或报表查询中的字段名称。 表达式的右侧通常包含要应用到 条件 以限制或排序记录的值。 例如,条件可以是另一个窗体上控件的名称,该控件包含希望第一个窗体中的记录匹配的值。 控件的名称应完全限定,例如:

表单formname!controlname

字段名称应用双引号括起来,字符串文本应用单引号括起来。

Where Condition 参数 的最大 长度为 255 个字符。 如果需要在 WHERE 子句中输入SQL,请使用 VBA 模块中DoCmd Visual Basic for Applications (ApplyFilter) 方法。 可以在 VBA SQL最多包含 32,768 个字符的 WHERE 子句语句。


注意: 如果已定义 提供 适当数据的筛选器,可以使用"筛选器名称"参数。 可以使用 Where Condition 参数直接输入限制条件。 如果同时使用这两个参数, Access 将 WHERE 子句应用到筛选器的结果。 必须使用一个或两个参数。

备注

可以将筛选器或查询应用于窗体中的 窗体视图 或 数据表视图 。

所应用到的筛选器和 WHERE 条件将成为窗体或报表的 FilterServerFilter 属性的设置。

对于表和窗体,此操作类似于单击"记录"菜单上的"应用筛选/排序"或"应用服务器筛选器"。 菜单命令将最近创建的筛选器应用到表或窗体, 而 ApplyFilter 操作应用指定的筛选器或查询。

在 Access 数据库中,如果指向"记录"菜单上的"筛选",然后在运行ApplyFilter操作后单击"高级筛选/排序",则 “高级筛选/排序”窗口 会显示通过此操作选择的筛选条件。

若要删除筛选器并显示 Access 数据库中表或窗体的所有记录,可以使用"记录"菜单上的 ShowAllRecords 操作或"删除筛选 / 排序" 命令 。 若要删除 Access 项目 (.adp) 中的筛选器,可以返回到 按窗体服务器筛选 窗口并删除所有筛选条件,然后单击工具栏上"记录"菜单上的"应用服务器筛选器",或将ServerFilterByForm属性设置为False (0) 。

保存表或窗体时,Access 会保存该对象中当前定义的任何筛选器,但在下次打开对象 (时不会自动应用筛选器,尽管它会在保存对象之前自动应用应用于该对象的任何) 。 如果要在首次打开窗体时自动应用筛选器,请指定包含ApplyFilter操作或包含DoCmd对象的ApplyFilter方法的事件过程作为窗体的OnOpen事件属性设置。 也可使用 OpenFormOpenReport 操作或相应的方法应用筛选器。 若要在首次打开表时自动应用筛选器,可以使用包含 OpenTable 操作(紧跟在 ApplyFilter 操作之后)的宏打开表。

示例

使用宏应用筛选器

以下宏包含一组操作,每个操作筛选"客户电话列表"窗体的记录。 它显示ApplyFilter、ShowAllRecordsGoToControl 操作的使用。 它还显示使用条件来确定在窗体上选择了选项组中哪个切换按钮。 每个操作行都与一个切换按钮相关联,该按钮选择以 A、B、C 等开始的记录集或所有记录。 此宏应附加到 CompanyNameFilter 选项组的 AfterUpdate 事件。

条件

操作

参数:设置

批注

[CompanyNameFilters]=1

ApplyFilter

Where Condition: [CompanyName] Like "[AÀÁÂÃÄ]*"

筛选以 A、À、Á、Â、Ã 或 Ä 开始的公司名称。

[CompanyNameFilters]=2

ApplyFilter

Where Condition: [CompanyName] Like "b*"

筛选以 B 开始的公司名称。

[CompanyNameFilters]=3

ApplyFilter

Where Condition: [CompanyName] Like "[CÇ]*"

筛选以 C 或 Ç 开始的公司名称。

...D 到 Y 的操作行的格式与 A 到 C 相同...

[CompanyNameFilters]=26

ApplyFilter

Where Condition: [CompanyName] Like "[ZÅØÅ]*"

筛选以 Z、Å、Ø 或 Å 开始的公司名称。

[CompanyNameFilters]=27

ShowAllRecords

显示所有记录。

[RecordsetClone]。[RecordCount]>0

GoToControl

控件名称:CompanyName

如果为所选字母返回记录,将焦点移动到 CompanyName 控件。


需要更多帮助?

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×