ApplyFilter 操作
使用 ApplyFilter 操作可以对表、窗体或报表应用筛选、查询或 SQL Where 子句,以便限制或排序表的记录以及窗体或报表的基础表或基础查询中的记录。对于报表,只能在其“打开”事件属性所指定的宏中使用该操作。
ApplyFilter 操作具有以下参数:
操作
|
说明
|
筛选名称
|
用以限制或排序表、窗体或报表中的记录的筛选或查询的名称。可以输入已有查询或筛选的名称,该筛选已作为查询保存在“宏”窗口“操作参数”节的“筛选名称”框内。
|
Where 条件
|
有效的 SQL Where 子句(不包含 Where 一字)或表达式,用以限制表、窗体或报表中的记录。
注意 在“Where 条件”参数表达式中,表达式的左边通常包含某个窗体或报表的基础表或基础查询的字段名。表达式的右边通常包含要应用于该字段的条件,以限制或排序记录。例如,条件可以是另一个窗体中的控件的名称,该窗体包含要用来使第一个窗体的记录与之相匹配的值。控件名称必须完整限定,例如: Forms!formname!controlname
字段名应使用双引号包围起来,而字面值则应使用单引号。
“Where 条件”参数最长为 255 个字符。如果要输入较长的 SQL 子句,可以在 Microsoft Visual Basic 中,使用 DoCmd 对象的 ApplyFilter 方法。在 Visual Basic 中可以输入最长为 32,768 个字符的 SQL Where 子句。
|
注意 如果已经定义了某个提供适当数据的筛选,可以使用“筛选名称”参数。也可以直接使用“Where 条件”参数输入限制条件。如果同时使用两个参数,Microsoft Access 将应用 Where 子句的条件进行筛选。使用该操作时必须至少包含一个参数。
可以对“窗体”视图或“数据表”视图中的窗体应用筛选或查询。
所用的筛选和 Where 条件将成为窗体或报表的“筛选”或“服务器筛选”属性设置。
对于表和窗体,该操作与单击“记录”菜单上的“应用筛选/排序”或“应用服务器筛选”类似。但是,该菜单命令将对表或窗体应用最新创建的筛选,而 ApplyFilter 操作则应用指定的筛选或查询。
在 Access 数据库中,如果在运行 ApplyFilter 操作之后指向“记录”菜单上的“筛选”,然后单击“高级筛选/排序”,那么“高级筛选/排序”窗口将显示对该操作所选的筛选条件。
在 Access 数据库中,如果要删除筛选并显示表或窗体的全部记录,可使用 ShowAllRecords 操作或“记录”菜单上的“取消筛选/排序”命令。
保存表或窗体时,Access 将保存当前在对象中定义的任一筛选,但是下一次打开对象时并不会自动应用该筛选(虽然在保存它之前,会自动应用对对象的任何排序)。如果要在首次打开窗体时自动应用筛选,可以指定一个包含 ApplyFilter 操作的宏,或包含 DoCmd 对象的 ApplyFilter 方法的事件过程作为对窗体的“打开”事件属性的设置。也可以使用 OpenForm 或 OpenReport 操作,或者与它们相对应的方法来应用筛选。如果要在首次打开表时自动应用筛选,可以使用一个包含 OpenTable 操作并紧跟 ApplyFilter 操作的宏来打开表。
示例: 通过使用宏应用筛选
下面的宏包含一组操作,每项操作都可对“客户电话列表”窗体的记录进行筛选。它显示了 ApplyFilter、ShowAllRecords 和 GoToControl 操作的使用方法,同时也显示了如何使用条件来判定窗体上所选择的是选项组中哪一个切换按钮。每个操作行都与一个切换按钮相关联,该切换按钮可以选择以 A、B、C 等打头的记录集合,也可以选择所有记录。该宏应附加在 CompanyNameFilter 选项组的 AfterUpdate 事件上。
条件
|
操作
|
参数:设置
|
说明
|
[公司名称筛选] =1
|
ApplyFilter
|
Where 条件:[公司名称]Like "[AÀÁÂÃÄ]*"
|
筛选公司名以 A、À、Á、Â、Ã 或 Ä 打头的记录。
|
[公司名称筛选] =2
|
ApplyFilter
|
Where 条件:[公司名称] Like "B*"
|
筛选公司名以 B 打头的记录。
|
[公司名称筛选] =3
|
ApplyFilter
|
Where 条件:[公司名称] Like "[CÇ]*"
|
筛选公司名以 C 或 Ç 打头的记录。
|
... 由 D 到 Y 的操作行与由 A 到 C 的操作行具有相同的格式 ...
|
[公司名称筛选] =26
|
ApplyFilter
|
Where 条件:[公司名称] Like "[ZÆØÅ]*"
|
筛选公司名以 Z、Æ、Ø 或 Å 打头的记录。
|
[公司名称筛选] =27
|
ShowAllRecords
|
|
显示所有记录。
|
[RecordsetClone].[RecordCount]>0
|
GoToControl
|
控件名称:公司名称
|
如果为选定字母返回了记录,那么将焦点移动到 CompanyName 控件。
|
Beep 操作
使用 Beep 操作,可以通过计算机的扬声器发出嘟嘟声。
Beep 操作没有任何参数。
可以使用 Beep 操作提示下列情况:
- 已发生重要的屏幕更改。
- 控件中输入了某种错误类型的数据。例如,用户在文本框控件中输入了数值型数据。
- 宏已经执行到指定位置或已经完成操作。
嘟嘟声的频率和持续时间取决于计算机硬件,在不同的计算机上可能会有所不同。
若要在 Visual Basic 中执行 Beep 操作,请使用 DoCmd 对象的 Beep 方法。
上一课 下一课