DoCmd.SearchForRecord 方法 (Access)

使用 SearchForRecord 方法搜索表、查询、窗体或报表中的特定记录。

语法

表达式SearchForRecord (ObjectTypeObjectNameRecordWhereCondition)

expression:表示 DoCmd 对象的变量。

参数

名称 必需/可选 数据类型 说明
ObjectType 可选 AcDataObjectType AcDataObjectType 常量,用于指定在其中搜索的数据库对象的类型。 默认值为 acActiveDataObject
ObjectName 可选 Variant 包含要搜索的记录的数据库对象的名称。
Record 可选 AcRecord AcRecord 常量,用于指定搜索的起始点和方向。 默认值为 acFirst
WhereCondition 可选 Variant String,用于定位记录。 它类似于 SQL 语句中的 WHERE 子句,但不包含 WHERE 一词。

备注

在多个记录与 WhereCondition 参数中的条件匹配的情况下,以下因素确定找到的记录:

  • Record 参数设置。

  • 记录的排序顺序。 例如,如果 Record 参数设置为 acFirst,则更改记录的排序顺序可能会更改找到的记录。

在运行此操作之前,必须打开 ObjectName 参数中指定的对象。 否则,就会出错。

如果不满足 WhereCondition 参数中的条件,则不会发生任何错误,并且焦点将保留在当前记录上。

在搜索上一条或下一条记录时,搜索到达数据末尾时不会“返转”。 如果没有满足条件的其他记录,不会发生错误,且焦点仍保留在当前记录上。 若要确认找到匹配项,可以为下一个操作输入条件,并使条件与 WhereCondition 参数中的条件相同。

SearchForRecord 方法类似于 FindRecord 方法,但 SearchForRecord 具有更强大的搜索功能。 FindRecord 方法主要用于查找字符串,其功能与" 查找"对话框的功能相似。 SearchForRecord 方法使用的条件更像筛选或 SQL 查询中的条件。

以下列表演示了可使用 SearchForRecord 方法执行的一些操作:

  • WhereCondition 参数中使用复杂条件,例如 Description = "Beverages" and CategoryID = 11

  • 引用窗体或报表的记录源中但不显示在窗体或报表上的字段。 在前面的示例中, Description 不能在窗体或报表上显示 或 CategoryID ,条件才能正常工作。

  • 使用逻辑运算符,例如 <、、>ANDORBETWEENFindRecord 方法仅与满足以下条件的字符串匹配:等于、始于或包含被搜索的字符串。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。