本主题介绍如何使用“查找和替换”对话框查找并有选择地替换 Access 数据库中的数据。
要了解其他数据更新方式(如使用更新查询和追加查询),请参阅文章更新数据库中的数据。
想进行什么操作?
了解如何使用“查找和替换”对话框
如果想要查找 并 选择性地替换少量数据,并且不习惯使用查询来查找或替换数据,请使用“查找和替换”对话框。 该对话框类似于其他程序中的“查找”工具,但它还包含一些更有助于搜索关系数据库的功能。 例如,可以搜索应用于数据的格式,还可选择匹配字段中的部分或全部数据。
操作时请牢记下列事项:
- 该对话框会将搜索字符串视为一个模式,并返回与该模式匹配的所有记录。 例如,假定有一个包含客户、供应商、产品和订购日期信息的数据表(表或查询结果)。 如果搜索“mar”,查找操作会返回所有“market”和“March”实例以及与指定模式匹配的所有其他记录。
- 该对话框一次仅搜索一个表;它不会搜索整个数据库。 如果在窗体中打开该对话框,则搜索该窗体的基础表。
如果需要使用该对话框搜索多个表,可创建选择查询来收集所需数据,然后搜索查询结果。 本节后面的步骤将介绍创建选择查询和搜索结果的基础知识。 - 必须在“数据表”视图中打开表和查询结果,也必须在“窗体”(普通)视图中打开窗体,就像输入数据时那样。
- 可根据应用于数据的格式来搜索数据。 例如,可以设置空字段或 null 字段的格式以显示“未知”等单词。然后,可以通过使用“未知”作为搜索字符串来搜索这些空白字段。
了解“按格式搜索字段”复选框
“查找和替换”对话框提供了一个选项,称为“按格式搜索字段”复选框。 浏览本主题中的步骤时,会发现 Access 有时会自动选中该复选框;因此,有时必须自行选中或清除该复选框。 正确地使用该复选框有助于确保搜索操作成功。
执行操作时,请遵守这条经验规则:Access 选中“按格式搜索字段”复选框时,请保持其选中状态。 如果清除该复选框,搜索操作可能不返回任何结果。
起初,这种行为可能让人迷惑,因为 Access 不提供任何可视提示或其他指示符来指示何时应选中或清除该复选框。 你可能想知道是什么逻辑驱动 Access 选中或清除“按格式搜索字段”复选框。 答案是输入掩码。 输入掩码是一种格式设置类型,Access 遇到输入掩码时会选中该复选框。
此外,请记住,如果搜索查阅字段(一个使用查询从另一个表检索数据的字段),并且该第二个表中的源字段应用了输入掩码,Access 将启用“格式为检查搜索字段”框。
有关查找、排序和筛选之间的区别
最后,请记住,查找的过程不同于排序或筛选。 “查找”是找到数据库表、查询和窗体中的一个或多个记录的过程。 例如,可以查找所有经营餐厅的客户。 “排序”是按照特定顺序整理一组记录的过程。 例如,可按字母顺序、日期、数量(哪个餐厅订购面包最多,或者销售额最高)等对一组记录进行排序。 “筛选”是显示符合给定条件的记录的过程。 例如,在找到所有拥有餐厅的客户后,可筛选列表,使其仅包含伦敦或马德里的客户。
如果这有所帮助,你可以这样理解:首先查找数据,然后按给定顺序排列数据,最后使用筛选来分离数据的子集。
下面的一系列步骤介绍如何使用“查找和替换”对话框。
“查找和替换”对话框控件参考
搜索和替换数据时,经常需要设置和更改“查找和替换”对话框中的控件。 但请记住,此行为可能导致查找或替换操作返回不需要的数据或完全失败。 下表列出了这些控件和更改它们的结果。
| 控件 | 用法 | 行为 |
|---|---|---|
| “查找范围”列表 | 在搜索列和搜索整个表之间切换 | “查找范围”列表始终包含要搜索的表的名称。 如果仅搜索一个表,Access 会显示表的名称,但“查找范围”列表不可用。 搜索一个列时,Access 会启用“查找范围”列表并显示表和列的名称。 要在搜索表和列之间切换,请从“查找范围”列表中选择所需值。 若要搜索的列不在该列表中,请转到打开的数据表或窗体并选择所需的列,然后返回“查找和替换”对话框并运行搜索。 |
| “匹配”列表 | 控制查找操作尝试匹配字段的哪个部分 | 选择“字段任何部分”可在所有可能的值中搜索匹配项。 选择“ 整个字段” 以搜索与搜索项完全匹配的信息。 如果认为要查找的值位于记录的开头,请选择“字段开头”。 |
| “搜索”列表 | 更改搜索方向 | 选择“向上”可查找光标上方的记录。 选择“向下”可查找光标下方的记录。 选择“全部”可从记录集的顶部开始搜索全部记录。 |
| “区分大小写”复选框 | 查找与搜索字符串的大小写设置匹配的值 | 若要查找与搜索字符串的大小写设置匹配的记录,请选中“区分大小写”复选框。 |
| “按格式搜索字段”复选框 | 基于输入掩码或格式进行搜索 | 查找操作可搜索数据或应用于数据的格式。 例如,可搜索带有“日期/时间”输入掩码格式的字段以查找“Feb”。 除非对应用了格式或输入掩码的字段进行搜索,否则该选项始终不可用。 有关此选项的详细信息,请参阅了解“按格式搜索字段”复选框一节。 |
在表中查找和替换数据源
要执行下列步骤,必须在“数据表”视图中打开表。
注意
不能对查阅字段运行查找并替换操作。 若要替换窗体上控件(如文本框)中的数据,该控件必须绑定到源表。
查找和替换数据
在表中,选择要搜索的字段(列)。
注意
若要搜索整个表,请执行第 5 步中的备选过程。
在“ 开始 ”选项卡上的“ 查找 ”组中,选择“ 查找”,或按 Ctrl+F。
键盘快捷方式:按 Ctrl+F。
下图显示该命令:
即显示“查找和替换”对话框。若要查找数据,请在“ 查找和替换 ”对话框中,选择“ 查找 ”选项卡。若要运行查找和替换操作,请选择“ 替换 ”选项卡。
在“查找内容”框中键入搜索字符串。 要替换数据,请在“替换为”框中输入替换字符串。
注意
除非需要在记录中包含通配符,否则不要在“替换为”框中输入通配符。
此外,可使用“查找范围”列表更改要搜索的字段,或搜索整个表。
默认情况下,“查找范围”列表包含第 1 步中所选的字段名称。 要搜索整个表,请从列表中选择表的名称。
-或-
如果决定选择另一列,请在数据表中为该表选择所需的列。 无需关闭对话框。(可选)在 “匹配 ”列表中,选择 “字段的任何部分”。 这提供可能达到的最大搜索范围。
确保选中“按格式检查搜索字段”框,然后选择“查找下一步”。
在窗体中查找和替换数据
如果没有查看和搜索表的必要权限,或者不希望用户看到表中的某些数据,可在“窗体”视图或“布局”视图中打开的窗体上运行查找和替换操作。 这两个操作均搜索绑定到窗体的基础表。
注意
不能对查阅字段运行查找并替换操作。 若要替换窗体上控件(如文本框)中的数据,该控件必须绑定到源表。
在窗体中查找数据
在“窗体”视图或“布局”视图中打开要搜索的窗体。
选择包含要搜索的信息的控件。
注意
若要搜索整个表,请执行第 5 步中的备选过程。
在“ 开始 ”选项卡上的“ 查找 ”组中,选择“ 查找”,或按 Ctrl+F。
-或-
按 Ctrl+F。
即显示“查找和替换”对话框。若要查找数据,请选择“ 查找 ”选项卡。若要运行查找和替换操作,请选择“ 替换 ”选项卡。
在“查找内容”框中键入搜索值。 要替换数据,请在“替换为”框中键入替换字符串。
注意
除非需要在记录中包含通配符,否则不要在“替换为”框中输入通配符。
此外,可使用“查找范围”列表更改要搜索的字段,或搜索整个基础表。
默认情况下,“查找范围”列表包含第 1 步中所选的控件名称。 要搜索窗体的基础表,请从列表中选择表的名称。
-或-
如果决定选择另一个控件 (等效于选择另一个表字段) ,请随时选择窗体上的控件。 无需关闭对话框。也可在“匹配”列表中选择“字段任何部分”。 这提供可能达到的最大搜索范围。
在 “搜索 ”列表中,选择“ 全部”,然后选择“ 查找下一步”。 若要替换字符串,请选择“ 替换”。 如果确定输入了正确的替换字符串,请选择“ 全部替换”,但请记住,不能撤消替换操作。 如果出错,必须重复查找并替换操作,找到不正确的值,然后用正确值替换它们。
在查询结果集中查找数据
以下步骤介绍如何使用“查找和替换”对话框在选择查询返回的结果集中查找记录。 请记住,只能对查询结果运行查找操作。
如果要使用查询更改或删除数据,请参阅 创建并运行更新查询 和 创建并运行删除查询一文。
创建选择查询
- 打开包含要查找的记录的数据库。
- 在“ 创建 ”选项卡上的“ 其他 ”组中,选择“ 查询设计”。
- 选择包含要查找的记录的一个或多个表,然后选择 “添加”,然后选择“ 关闭”。
每个表均在查询设计网格的上半部分中显示为一个窗口,并且这些窗口列出每个表中的所有字段。 下图显示包含一个典型表的设计器:
- 双击要查找的字段。 所选字段显示在查询设计器下半部的“字段”行中。
可以向下半部分的每个列分别添加一个表字段。
要快速添加表中的所有字段,请双击表字段列表顶部的星号(“*”)。 下图显示包含所有添加字段的设计器。
- 也可在设计网格的“条件”行中输入一个或多个条件。
这样做可减少查询返回的记录数,便于查找所需数据。 下表显示一些示例条件,并说明它们对查询的影响。
| Criteria | 作用 |
|---|---|
| > 234 | 返回所有大于 234 的数字。 若要查找所有小于 234 的数字,请使用 < 234。 |
| >= “Callahan” | 返回从 Callahan 到字母表末尾的所有记录 |
| Between #2/2/2006# And #12/1/2006# | 返回 2006 年 2 月 2 日到 2006 年 12 月 1 日之间的日期 (ANSI-89)。 如果数据库使用 ANSI-92 通配符,则使用单引号 (') 替代井号。 例如:Between '2/2/2006' And '12/1/2006' |
| Not "德国" | 查找字段的具体内容并不完全等于“德国”的所有记录。此条件将返回包含除了“德国”以外的其他字符的记录,例如“德国(欧元)”或“欧洲(德国)”。 |
| Not "T*" | 查找所有不以 T 开头的记录。如果数据库使用 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号。 |
| Not "*t" | 查找所有不以 t 结尾的记录。 如果数据库使用 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号。 |
| In(加拿大,英国) | 在列表中,查找包含“加拿大”或“英国”的所有记录。 |
| Like "[A-D]*" | 在文本字段中查找所有以字母 A 到 D 开头的记录。如果数据库使用 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号。 |
| Like "*ar*" | 查找包含字母序列“ar”的所有记录。 如果数据库使用 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号。 |
| Like "Maison Dewe?" | 查找满足以下条件的所有记录:以“Maison”开头并包含另一个含有 5 个字母的字符串,且该字符串的前 4 字母是“Dewe”而最后的字母未知。 如果数据库使用 ANSI-92 通配符字符集,则使用下划线 (_) 替代问号。 |
| #2/2/2006# | 查找 2006 年 2 月 2 日的所有记录。 如果数据库使用 ANSI-92 通配符字符集,则用单引号(而不是井号)将日期括起来 ('2/2/2006')。 |
| < 日期 () - 30 | 返回 30 天以前的所有日期。 |
| Date() | 返回包含当天日期的所有记录。 |
| Between Date() And DateAdd("M", 3, Date()) | 返回从今天起三个月内的所有记录。 |
| Is Null | 返回包含 Null(空或未定义)值的所有记录。 |
| Is Not Null | 返回包含值的所有记录。 |
| "" | 返回包含零长度字符串的所有记录。 当需要向必填字段添加值但还不知道添加什么值时,使用零长度字符串。 例如,某个字段可能需要传真号码,但有些客户可能没有传真机。 在这种情况下,可以输入中间没有空格的一对双引号 ("") ,而不输入号码。 |
- 在“ 设计 ”选项卡上的“ 结果 ”组中,选择“ 运行”。
验证查询是否返回所需的记录。 根据需要,可以选择不需要的字段并按 DELETE 将其删除,可以将其他字段拖动到设计网格,并且可以更改条件,直到对查询结果满意为止。 - 转到下列步骤。
在结果集中查找数据
- 在结果中,选择要搜索的列) (字段。
- 在“ 开始 ”选项卡上的“ 查找 ”组中,选择“ 查找”,或按 Ctrl+F。
-或-
按 Ctrl+F。
即显示“查找和替换”对话框。 - 在“查找内容”框中键入搜索字符串。
- 此外,可使用“查找范围”列表更改要搜索的字段,或搜索整个表。
默认情况下,“查找范围”列表包含第 1 步中所选的字段名称。 要搜索整个表,请从列表中选择表的名称。
-或-
如果决定选择另一列,请在数据表中为该表选择所需的列。 无需关闭对话框。 - (可选)在 “匹配 ”列表中,选择 “字段的任何部分”。 这提供可能达到的最大搜索范围。
- 在 “搜索 ”列表中,选择“ 全部”,然后选择“ 查找下一步”。
查找操作突出显示所有包含搜索字符串的记录。 由于在“搜索”列表中选择了“全部”,Access 将循环查找全部记录。
查找通配符
可以在查找和查找并替换操作中使用通配符,但使用时务必谨慎。 请牢记下列规则:
- 使用“查找和替换”对话框搜索通配符时,必须将要查找的字符括在方括号中,例如:“[*]”。 在搜索除感叹号 (!) 和右方括号 (] 之外的所有通配符时,) 遵循该规则。
- 如果在替换字符串中使用通配符,Access 会将该字符视为文本,并将其写入数据库。 例如,如果搜索“old *”并使用“new *”来替换所有与该模式匹配的记录,则 Access 将“new *”写入所有与搜索字符串匹配的记录。
查找通配符
- 打开表、查询结果集或窗体。 必须在“数据表”视图中打开表或结果集,并在“窗体”视图中打开窗体。
- 在“ 开始 ”选项卡上的“ 查找 ”组中,选择“ 查找”,或按 Ctrl+F。
-或-
按 Ctrl+F。
即显示“查找和替换”对话框。 - 如果只想查找包含通配符的记录,请选择“ 查找 ”选项卡。如果要查找通配符并将其替换为其他数据,请选择“ 替换 ”选项卡。
- 在“ 查找内容 ”框中,键入左括号 ([) 、要查找的通配符和右括号 (]) 。 例如,要查找所有星号实例,请键入“[*]”。 如果要运行替换操作,请在“替换为”框中键入替换字符串。
- 此外,可使用“查找范围”列表更改要搜索的字段,或搜索整个表。
默认情况下,“查找范围”列表包含第 1 步中所选的字段名称。 要搜索整个表,请从列表中选择表的名称。
-或-
如果决定选择另一列,请在数据表中为该表选择所需的列。 无需关闭对话框。 - 在“匹配”列表中,选择最适合数据的选项。 例如,如果通配符位于记录的开头,请选择 “字段开头”。 否则,请选择 “字段的任意部分 ”以返回可能的最大结果数。
- 确保选中“按格式检查搜索字段”框,然后选择“查找下一个”。 查找操作返回包含该通配符的记录。 如果要替换通配符,请选择“ 替换”。 如果确定搜索和替换字符串将提供正确的结果,请选择“ 全部替换”。 但是请记住,查找并替换操作的结果无法撤消。
通配符使用示例
如果了解每个通配符可匹配的模式类型,则可使用通配符组合、或通配符和文本字符的组合来返回多种结果。 请记住,在“匹配”列表中选择的设置会影响搜索结果。 如果使用不正确的设置,搜索操作可能返回不需要的数据,也可能根本不返回任何结果。 下表介绍一些通配符和文字的使用方法以及“匹配”列表中的选项如何影响搜索结果。
| 搜索 strin g | 匹配列表 settin g | 结果 |
|---|---|---|
| [*] |
“ |
返回所有包含星号 (*) 的记录。 此语法也适用于问号 (?)、数字符号 (#)、左方括号 ([) 和连字符 (-)。 |
|
“ |
返回仅包含星号的记录。 | |
|
“ |
返回以星号开头的记录。 | |
| *[*]* |
“ |
返回所有包含星号 (*) 和任意周围文本的记录。 此语法也适用于问号 (?)、数字符号 (#)、左方括号 ([) 和连字符 (-)。 |
|
“ |
结果同上。 | |
|
“ |
结果同上。 | |
| [!*] |
“ |
返回所有不包含星号的记录。 请记住,在“匹配”列表中使用此设置时,搜索模式可返回记录中每个单词的每个字母。 此语法也适用于问号 (?)、数字符号 (#)、左方括号 ([) 和连字符 (-)。 注意: 搜索字符串 *[!*]* 将返回包含星号的记录,因为它会查找星号周围的所有文本。 |
|
“ |
不返回任何结果。 | |
|
“ |
返回不包含星号的任意记录的首字母。 | |
| 马*[ ch ] |
“ |
返回所有包含“ma”和“c”或“h”的记录。 例如,此字符串会返回“march”和“match”,还会返回“math”和“manic”。 |
|
“ |
返回所有以“ma”开头并以“c”或“h”结尾的记录。 例如,此字符串会返回“march”和“match”,还会返回“math”和“manic”。 | |
|
“ |
返回所有以“ma”开头且包含“c”或“h”的记录。 | |
| 马*[! ch ] |
“ |
突出显示字母“m”和“a”及这些字母后的所有文本,直到遇到“c”或“h”。 下图演示了这种情况。
换句话说,即使尝试排除包含“c”和“h”的记录,也可能看到这些记录,因为 字段的任何部分 都与括号前的文本匹配。 |
|
“ |
返回所有不包含“c”或“h”的记录(如果这些记录以“c”和“h”结尾)。 例如,查询操作不会返回“manic”,因为该单词以“c”结尾,但会返回“maniacal”,因为“c”后有其他字符。 | |
|
“ |
返回以“ma”开头的记录。 Access 会匹配位于方括号内的字符前面的任何文本,因此可能看到不需要的结果。 |
查找引号、Null 值或空值
可以使用“查找和替换”对话框查找引号以及某些类型的空值。
- 字段格式设置为当字段为空时显示一个值。 例如,某格式可能指定在字段中输入值之前,该字段中显示诸如“未知”等文字。
- 未设置格式的空字段或 Null 值。
- 包含零长度字符串的字段。 可通过键入一对中间没有空格的引号 ("") 来输入零长度字符串。 键入引号对并将光标移至另一字段后,Access 会隐藏引号,且该字段显示为空。 请记住,仅可在设置为“文本”、“备注”和“超链接”数据类型的字段中输入零长度字符串,这些类型默认情况下允许零长度字符串。
查找引号
在数据表视图中打开表或打开绑定到该表的窗体。
在“ 开始 ”选项卡上的“ 查找 ”组中,选择“ 查找”,或按 Ctrl+F。
-或-
按 Ctrl+F。
即显示“查找和替换”对话框。如果只想查找引号,请选择“ 查找 ”选项卡。若要查找并替换引号,请选择“ 替换 ”选项卡。
在“查找内容”框中,键入引号。 若要使用另一个值替换引号,请在“替换为”框中输入该值。
注意
若要完全删除引号,请将“替换为”框留空。
此外,可使用“查找范围”列表更改要搜索的字段,或搜索整个表。
默认情况下,“查找范围”列表包含第 1 步中所选的字段名称。 要搜索整个表,请从列表中选择表的名称。
-或-
如果决定选择另一列,请在数据表中为该表选择所需的列。 无需关闭对话框。也可在“匹配”列表中选择“字段任何部分”。 这提供可能达到的最大搜索范围。
在“搜索”列表中选择“全部”,在所有记录中进行搜索。
选中“按格式搜索字段”复选框。
注意
如果 Access 自动选中了此复选框,请接受该选择,除非查找操作失败。
选择“ 查找下一个 ”以查找记录。 如果查找操作失败,请清除“按格式搜索字段”复选框并重试。 如果确定要将引号替换为另一个值 (或没有值) ,请选择 “替换”。 如果确信在整个表中找到并替换了正确的值,请选择“ 全部替换”,但请记住,无法撤消替换操作。 如果出错,必须再次运行查找并替换操作以纠正错误。
查找空值
根据需要,在“数据表”视图中打开包含要查找的值的表。
在表中选择包含要查找的空值的字段。
在“ 开始 ”选项卡上的“ 查找 ”组中,选择“ 查找”,或按 Ctrl+F。
-或-
按 Ctrl+F。
即显示“查找和替换”对话框。执行下列操作之一:
查找格式设置为显示值的空字段- 若要查找带格式的值,请选择“ 查找 ”选项卡。
如果要查找值并将其替换为其他数据,请选择“ 替换 ”选项卡。 - 在“查找内容”框中,键入该格式指定的值。
要向空字段添加数据,请在“替换为”框中输入新数据。 - 在 “匹配” 列表中,选择“ 整个字段”。
- 选中“按格式搜索字段”复选框。
- 选择“查找下一处”。
查找未设置格式的空字段
- 若要查找字段,请选择“ 查找 ”选项卡。如果要查找字段并添加值,请选择“ 替换 ”选项卡。
- 在“查找内容”框中,键入“Null”或“Is Null”。
如果要将 null 值替换为其他数据,请在“ 替换为 ”框中输入新数据。 - 在 “匹配” 列表中,选择“ 整个字段”。
- 清除“按格式搜索字段”复选框。
- 选择“查找下一处”。
查找包含零长度字符串的字段
- 若要查找零长度字符串,请选择“ 查找 ”选项卡。
如果要将字符串替换为其他数据,请选择“ 替换 ”选项卡。 - 在“查找内容”框中,键入一对中间没有空格的引号 ("")。
如果要将零长度字符串替换为其他数据,请在“ 替换为 ”框中输入新数据。 - 在 “匹配” 列表中,选择“ 整个字段”。
- 清除“按格式搜索字段”复选框。
- 选择“查找下一处”。
- 若要查找带格式的值,请选择“ 查找 ”选项卡。