你可以使用 Access 桌面数据库中的 FindRecord 操作来查找符合 FindRecord 参数所指定的 条件 的第一个数据实例。 此数据可能在当前 记录 中、当前记录之前或之后的记录中,也可能在第一条记录中。 可以在活动表 数据表、查询数据表、窗体数据表或窗体中查找记录。
注意: FindRecord 宏操作在 Access Web 应用中不可用。
设置
FindRecord 操作具有以下参数。
操作参数 |
说明 |
查找 内容 |
指定要在记录中查找的数据。 输入要查找的文字、数字或日期,或在宏生成器窗格的“操作参数”部分的“查找内容”框中键入一个以等号 (=) 开头的 表达式。 可以使用通配符。 此参数为必选项。 |
匹配 |
指定数据在 字段 中的位置。 可以指定搜索字段任何部分的数据(“字段任何部分”)、填充整个字段的数据(“整个字段”),或位于字段开头部分的数据(“字段开头”)。 默认值为“整个字段”。 |
区分大小写 |
指定搜索是否 区分大小写。 单击“是”(执行区分大小写的搜索)或“否”(执行不严格区分大小的搜索)。 默认值为“否”。 |
搜索 |
指定搜索是从当前记录向上搜索至记录开头(“向上”);还是向下搜索至记录的结尾(“向下”);或是向下搜索至记录结尾,然后从记录开头搜索至当前记录,以便搜索所有记录(“全部”)。 默认值为“全部”。 |
格式化搜索 |
指定是否搜索带格式的数据。 单击“是”(Access 将按字段中的格式和显示搜索数据)或“否”(Access 将搜索存储在数据库中的数据,该数据并不总与显示的一样)。 默认值为“否”。 可以使用此功能来限制对特定格式数据的搜索。 例如,单击“是”并在“查找内容”参数中键入 1,234,便可在格式设置为包含逗号的字段中查找值 1,234。 如果要键入 1234 以搜索此字段中的数据,请单击“否”。 要搜索日期,请单击“是”以查找格式完全相同的日期,如 08-July-2015。 如果单击“否”,请按照在 Windows 控制面板的区域设置中设置的格式,为“查找内容”参数输入日期。 此格式将显示在“短日期格式”框中,该框可在区域设置的“日期”选项卡上找到。 例如,如果将“短日期格式”框设置为“M/d/yy”,则可以输入 7/8/15,Access 将查找“日期”字段中所有与 2015 年 7 月 8 日相对应的条目,而忽略该字段的格式。 注意: 只有在当前字段为 绑定控件、将“匹配”参数设置为“整个字段”、将“只搜索当前字段”参数设置为“是”并将“区分大小写”参数设置为“否”的情况下,“格式化搜索”参数才会生效。 如果将“区分大小写”设置为“是”或将“只搜索当前字段”设置为“否”,则还必须将“格式化搜索”设置为“是”。 |
只搜索当前字段 |
指定是将搜索限定为每条记录中的当前字段,还是搜索每条记录中的所有字段。 搜索当前字段的速度更快。 单击“是”(将搜索限定到当前字段)或“否”(搜索每条记录中的所有字段)。 默认值是“是”。 |
查找第一个 |
指定是从第一条记录还是从当前记录开始搜索。 单击“是”(从第一条记录开始)或“否”(从当前记录开始)。 默认值是“是”。 |
备注
当某个 宏 运行 FindRecord 操作时,Access 会搜索记录中的指定数据(搜索顺序由“搜索”参数的设置确定)。 当 Access 找到指定数据时,就会在记录中选中该数据。
FindRecord 操作等同于单击“开始”选项卡上的“查找”,其参数与“查找和替换”对话框中的选项相同。 如果在宏生成器窗格中设置了 FindRecord 参数,然后运行该宏,则单击“查找”时便会看到在“查找和替换”对话框中选择的相应选项。
在数据库会话过程中,Access 会保留最近的 FindRecord 参数,这样在执行后续的 FindRecord 操作时,就不需要重复输入相同的条件。 如果将某一参数保留为空,则 Access 会使用由前一个 FindRecord 操作设置的或在“查找和替换”对话框中设置的该参数的最近设置。
如果要使用宏来查找记录,请使用 FindRecord 操作(而不是 RunCommand 操作),并将其参数设置为运行“查找”命令。
注意: 虽然 FindRecord 操作与表、查询和窗体的“开始”选项卡上的“查找”命令相对应,但它并不与 代码窗口 中“编辑”菜单上的“查找”命令相对应。 不能使用 FindRecord 操作搜索模块中的文本。
如果在执行 FindRecord 操作时当前选择的文本与搜索文本相同,那么搜索会紧接所选内容之后在同一记录的同一字段中开始。 否则,搜索会从当前记录的开头开始。 这样就可以在单个记录中查找符合同一搜索条件的多个实例。
但是,请注意,如果使用 命令按钮 运行包含 FindRecord 操作的宏,则会重复查找符合该搜索条件的第一个实例。 出现这种情况是因为单击命令按钮时将从包含匹配值的字段中删除 焦点。 然后,FindRecord 操作就会从记录的开头部分开始搜索。 为了避免出现这个问题,请使用不更改焦点的方法(如自定义工具栏按钮或在 AutoKeys 宏中定义的组合键)来运行宏,或者,也可以在执行 FindRecord 操作前将宏中的焦点设置到包含搜索条件的字段上。
安全说明: 避免使用 SendKeys 语句或包含敏感或机密信息的 AutoKeys 宏。 恶意用户可能会截获键击并危及你的计算机和数据的安全。
如果使用命令按钮运行包含 FindNext 操作的宏,也会出现相同的情况。
要在 Visual Basic for Applications (VBA) 模块中运行 FindRecord 操作,请使用 DoCmd 对象的 FindRecord 方法。
要进行更复杂的搜索,可能需要使用 SearchForRecord 宏操作。