可以使用 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 日相对应的条目,而忽略该字段的格式。 注意:仅当当前字段是绑定控件、Match 参数设置为“整个字段”、“仅当前字段”参数设置为“是”和“匹配大小写”参数设置为“否”时,“搜索为格式”参数才生效。如果将“匹配大小写”设置为“是”或“仅当前字段”设置为“否”,还必须将“按格式搜索”设置为“是”。 |
| 只搜索当前字段 | 指定是将搜索限定为每条记录中的当前字段,还是搜索每条记录中的所有字段。 搜索当前字段的速度更快。 单击“是”(将搜索限定到当前字段)或“否”(搜索每条记录中的所有字段)。 默认值是“是”。 |
| 查找第一个 | 指定是从第一条记录还是从当前记录开始搜索。 单击“是”(从第一条记录开始)或“否”(从当前记录开始)。 默认值是“是”。 |
备注
当宏运行 FindRecord 操作时,Access 会在记录中搜索指定数据, (搜索顺序由 search 参数) 设置确定。 当 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 宏操作。