Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access2007

access2007中使用“查找和替换”对话框更改数据

时 间:2008-10-25 08:09:06
作 者:Microsoft   ID:11  城市:上海  QQ:3002789054点击这里给麥田发消息
摘 要:使用“查找和替换”对话框更改数据
正 文:

本主题介绍如何使用“查找和替换”对话框在 Access 数据库中查找并有选择地替换数据。

如果需要有关其他数据更新方式(如使用更新查询和追加查询)的信息,请参阅文章更新数据库中的数据


了解如何使用“查找和替换”对话框

当您需要查找和有选择地替换少量数据,并且不便于使用查询来查找或替换数据时,可以使用“查找和替换”对话框。该对话框类似于您在其他程序中看到的“查找”工具,但它还包含一些更有助于搜索关系数据库的功能。例如,您可以搜索应用于数据的格式,还可以选择匹配字段中的部分或全部数据。

操作时请牢记下列事项:

  • 该对话框会将搜索字符串视为一个模式,并返回与该模式匹配的所有记录。例如,假定有一个包含客户、供应商、产品和订购日期信息的数据表(表或查询结果)。如果搜索“mar”,则查找操作将返回所有“market”和“March”实例以及与所指定模式匹配的所有其他记录。
  • 该对话框一次仅搜索一个表;它不会搜索整个数据库。如果在窗体中打开该对话框,则将搜索该窗体的基础表。

    如果需要使用该对话框搜索多个表,则可以创建选择查询来收集所需数据,然后搜索查询结果。本节后面的步骤将介绍创建选择查询和搜索结果的基本知识。

  • 必须在数据表视图中打开表和查询结果,也必须在“窗体”(普通)视图中打开窗体,就像您输入数据时那样。
  • 可以根据应用于数据的格式来搜索数据。例如,可以将空的或 Null (空字段:包含 Null 值的字段。空字段与零长度字符串 (" ") 或值为 0 的字段不同。) 字段的格式设置为显示一个词(如“未知”)。然后,就可以使用“未知”作为搜索字符串来搜索这些空字段。

了解“按格式搜索字段”复选框

“查找和替换”对话框提供了一个选项,称为“按格式搜索字段”复选框。当您浏览本主题中的步骤时,您会发现 Access 有时会自动选中该复选框;因此,有时您必须自己选中或清除该复选框。正确地使用该复选框有助于确保搜索操作成功。

执行操作时,请遵守这条经验规则:当 Access 选中“按格式搜索字段”复选框后,请保持其选中状态。如果清除该复选框,则搜索操作可能不会返回任何结果。

起初,这种行为可能让人感动迷惑,因为 Access 不提供任何视觉提示或其他指示符来指示您何时应选择或清除该复选框。您可能想知道是什么逻辑驱动 Access 选择或清除“按格式搜索字段”复选框。答案是输入掩码。输入掩码是一种格式设置,当 Access 遇到输入掩码时,将选中该复选框。

此外,请记住,如果搜索查阅字段(即使用查询从另一个表中检索数据的字段),并且该第二个表中的源字段应用了输入掩码,Access 将启用“按格式搜索字段”复选框。  

有关查找、排序和筛选之间的区别

最后,请记住,查找与排序或筛选不是相同的过程。查找是找到数据库表、查询和窗体中的一个或多个记录的过程。例如,可以查找所有开餐厅的客户。排序是按照特定顺序组织一组记录的过程。例如,可以按字母顺序、日期、数量(哪个餐厅订购面包最多,或者销售额最高)等对一组记录进行排序。筛选是显示符合给定条件的记录的过程。例如,在找到所有拥有餐厅的客户后,可以筛选列表,使其仅包含位于伦敦或马德里的客户。

如果对您有帮助,则可以这样理解:首先查找数据,然后,选择按给定顺序排列数据,最后选择使用筛选来分离数据的子集。

下面的一系列步骤介绍如何使用“查找和替换”对话框。

在表中查找和替换数据

若要执行下列步骤,必须在数据表视图中打开表。

 注释   不能对“查阅”字段运行“查找并替换”操作。如果要替换窗体上控件(如文本框)中的数据,该控件必须绑定到源表。

有关“查阅”列表的详细信息,请参阅添加或更改允许您存储多个值的查阅列一节。该主题的前面几节介绍“查阅”字段的工作方式以及创建方法。

查找和替换数据

  1. 在表中,选择要搜索的字段(列)。

     注释   如果要搜索整个表,请执行第 5 步中的备选过程。

  2. “开始”选项卡上的“查找”组中,单击“查找”

    键盘快捷方式  按 Ctrl+F。

    下图显示了此命令:

    Access 功能区图像

    即显示“查找和替换”对话框。

  3. 若要查找数据,请在“查找和替换”对话框中单击“查找”选项卡。若要运行“查找并替换”操作,请单击“替换”选项卡。
  4. “查找内容”框中,键入搜索字符串。若要替换数据,请在“替换为”框中输入一个替换字符串。

     注释   除非需要记录中包含通配符,否则不要在“替换为”框中输入通配符。

  5. 可选择使用“查找范围”列表更改要搜索的字段,或搜索整个表。

    默认情况下,“查找范围”列表包含您在第 1 步中选择的字段的名称。如果希望搜索整个表,请从列表中选择表的名称。

    - 或 -

    如果决定选择另一列,请在该表的数据表中单击所需的列。无需关闭对话框。

  6. 可选择在“匹配”列表中单击“字段任何部分”。这将提供可能达到的最大搜索范围。
  7. 确保选中了“按格式搜索字段”复选框,然后单击“查找下一个”

在窗体中查找和替换数据

如果您没有查看和搜索表的必要权限,或者您不希望用户看到表中的某些数据,则可以在窗体视图或布局视图中打开的窗体上运行查找和替换操作。这两个操作都会搜索绑定到窗体的基础表。

 注释   不能对“查阅”字段运行“查找并替换”操作。如果要替换窗体上控件(如文本框)中的数据,该控件必须绑定到源表。

有关“查阅”列表的详细信息,请参阅添加或更改允许您存储多个值的查阅列一文。该主题的前面几节介绍“查阅”字段的工作方式以及创建方法。

在窗体中查找数据

  1. 在窗体视图或布局视图中打开要搜索的窗体。
  2. 选择包含要搜索的信息的控件。

     注释   如果要搜索整个表,请执行第 5 步中的备选过程。

  3. “开始”选项卡上的“查找”组中,单击“查找”

    –或–

    按 Ctrl+F。

    即显示“查找和替换”对话框。

  4. 若要查找数据,请单击“查找”选项卡。若要运行“查找并替换”操作,请单击“替换”选项卡。
  5. “查找内容”框中,键入搜索值。若要替换数据,请在“替换为”框中键入一个替换字符串。

     注释   除非需要记录中包含通配符,否则不要在“替换为”框中输入通配符。

  6. 可选择使用“查找范围”列表更改要搜索的字段,或搜索整个基础表。

    默认情况下,“查找范围”列表包含您在第 1 步中选择的控件的名称。如果希望搜索窗体的基础表,请从列表中选择表的名称。

    - 或 -

    如果决定选择另一个控件(相当于选择另一个表字段),可以随时在窗体上单击该控件。无需关闭对话框。

  7. 可选择在“匹配”列表中单击“字段任何部分”。这将提供可能达到的最大搜索范围。
  8. “搜索”列表中,单击“全部”,然后单击“查找下一个”。若要替换字符串,请单击“替换”。如果确定输入了正确的替换字符串,请单击“全部替换”,但请记住,替换操作无法撤消。如果出错,必须重复“查找并替换”操作,找到不正确的值,然后用正确值替换它们。

在查询结果集中查找数据

以下步骤介绍如何使用“查找和替换”对话框在选择查询返回的结果集中查找记录。请记住,您只能对查询结果运行查找操作。

如果希望使用查询更改或删除数据,请参阅文章创建更新查询使用查询从数据库中删除一条或多条记录

创建选择查询

  • 打开包含要查找的记录的数据库。
  • “创建”选项卡上的“其他”组中,单击“查询设计”

    Access 会启动查询设计器,显示“设计”选项卡并打开“显示表”对话框。

  • 选择包含要查找的记录的一个或多个表,单击“添加”,然后单击“关闭”。

    每个表都会在查询设计网格的上半部分中显示为一个窗口,并且这些窗口会列出每个表中的所有字段。下图显示包含一个典型表的设计器:

    查询设计器中的表

  • 双击要查找的字段。所选字段显示在查询设计器下半部的“字段”行中。

    可以向下半部分的每个列分别添加一个表字段。

    若要快速添加表中的所有字段,请双击表字段列表顶部的星号(“*”)。下图显示包含所有添加字段的设计器。

    添加了所有表字段的查询

  • 也可以在设计网格的“条件”行中输入一个或多个条件。

    这样做可以减少查询返回的记录数,便于查找所需数据。下表显示一些示例条件,并解释它们作用于查询的效果。

    条件 效果
    > 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')。
    < Date() - 30 返回 30 天以前的所有日期。
    Date() 返回包含当天日期的所有记录。
    Between Date() And DateAdd("M", 3, Date()) 返回从今天起三个月内的所有记录。
    Is Null 返回包含 Null(空或未定义)值的所有记录。
    Is Not Null 返回包含值的所有记录。
    "" 返回包含零长度字符串的所有记录。当您需要向必填字段添加值,但还不知道值是什么时,可以使用零长度字符串。例如,某个字段可能需要传真号码,但某些客户可能没有传真机。在这种情况下,可以输入中间不带空格的一对双引号 ("") 来替代数字。

  • “设计”选项卡上的“结果”组中,单击“运行”

    验证查询是否返回了所需的记录。根据需要,您可以选择不需要的字段并按 Delete 删除它们,可以将其他字段拖动到设计网格中,还可以更改条件直到您对查询结果满意为止。

  • 转到下列步骤。

在结果集中查找数据

  1. 在结果集中,单击要搜索的字段(列)。
  2. “开始”选项卡上的“查找”组中,单击“查找”

    –或–

    按 Ctrl+F。

    即显示“查找和替换”对话框。

  3. “查找内容”框中,键入搜索字符串。
  4. 可选择使用“查找范围”列表更改要搜索的字段,或搜索整个表。

    默认情况下,“查找范围”列表包含您在第 1 步中选择的字段的名称。如果希望搜索整个表,请从列表中选择表的名称。

    - 或 -

    如果决定选择另一列,请在该表的数据表中单击所需的列。无需关闭对话框。

  5. 可选择在“匹配”列表中单击“字段任何部分”。这将提供可能达到的最大搜索范围。
  6. “搜索”列表中,单击“全部”,然后单击“查找下一个”

    查找操作将突出显示所有包含搜索字符串的记录。由于在“搜索”列表中选择了“全部”,Access 将循环查找全部记录。

查找通配符

可以在查找和查找并替换操作中使用通配符,但使用时务必谨慎。请牢记下列规则:

  • 当使用“查找和替换”对话框搜索通配符时,必须将要查找的字符括在方括号中,例如:[*]。在搜索除感叹号 (!) 和右方括号 (]) 外的所有其他通配符时,均需遵守这条规则。
  • 如果在替换字符串中使用通配符,Access 会将该字符视为文字,并将其写入数据库。例如,如果搜索 old * 并使用 new * 来替换所有与该模式匹配的记录,则 Access 将“new *”写入与搜索字符串匹配的所有记录。

查找通配符

  1. 打开表、查询结果集或窗体。必须在数据表视图中打开表或结果集,必须在窗体视图中打开窗体。
  2. “开始”选项卡上的“查找”组中,单击“查找”

    - 或 -

    按 Ctrl+F。

    即显示“查找和替换”对话框。

  3. 如果仅想查找包含通配符的记录,请单击“查找”选项卡。如果想查找通配符并用其他数据替换它们,请单击“替换”选项卡。
  4. “查找内容”框中,键入一个左方括号 ([),然后键入要查找的通配符,最后键入一个右方括号 (])。例如,如果要查找所有星号实例,请键入 [*]。如果要运行替换操作,请在“替换为”框中键入替换字符串。
  5. 可选择使用“查找范围”列表更改要搜索的字段,或搜索整个表。

    默认情况下,“查找范围”列表包含您在第 1 步中选择的字段的名称。如果希望搜索整个表,请从列表中选择表的名称。

    - 或 -

    如果决定选择另一列,请在该表的数据表中单击所需的列。无需关闭对话框。

  6. “匹配”列表中,选择您认为最适合自己数据的选项。例如,如果通配符字符位于记录的开头,请单击“字段开头”。否则,请单击“字段任何部分”以返回尽可能多的结果。
  7. 确保选中了“按格式搜索字段”复选框,然后单击“查找下一个”。查找操作将返回包含该通配符的记录。如果要替换该通配符,请单击“替换”。如果确信搜索字符串和替换字符串能为您提供正确的结果,请单击“全部替换”。但是请记住,“查找并替换”操作的结果无法撤消。

通配符使用示例

如果了解每个通配符可以匹配的模式类型,则可以使用通配符组合、或通配符和文字字符的组合来返回多种结果。请记住,在“匹配”列表中选择的设置会影响搜索结果。如果使用不正确的设置,搜索操作可能会返回不需要的数据,也可能根本不返回任何结果。下表给出了一些通配符和文字的使用方法,并介绍了“匹配”列表中的选项影响搜索结果的方式。

搜索字符串 “匹配”列表设置 结果
[*] “字段任何部分” 返回包含星号 (*) 的所有记录。此语法也适用于问号 (?)、数字符号 (#)、左方括号 ([) 和连字符 (-)。
  “整个字段” 返回仅包含星号的记录。
  “字段开头” 返回以星号开头的记录。
*[*]* “字段任何部分” 返回包含星号 (*) 和任意周围文本的所有记录。此语法也适用于问号 (?)、数字符号 (#)、左方括号 ([) 和连字符 (-)。
  “整个字段” 结果同上。
  “字段开头” 结果同上。
[!*] “字段任何部分” 返回不包含星号的所有记录。请记住,在“匹配”列表中使用该设置时,此搜索模式可返回记录中每个单词中的每个字母。此语法也适用于问号 (?)、数字符号 (#)、左方括号 ([) 和连字符 (-)。

 注释   搜索字符串 *[!*]* 将返回包含星号的记录,因为它会查找围绕该星号的所有文本。

  “整个字段” 不返回任何结果。
  “字段开头” 返回不包含星号的任意记录的第一个字母。
ma*[ch] “字段任何部分” 返回包含“ma”和“c”或“h”的所有记录。例如,此字符串会返回“march”和“match”,还会返回“math”和“manic”。
  “整个字段” 返回以“ma”开头并以“c”或“h”结尾的所有记录。例如,此字符串会返回“march”和“match”,还会返回“math”和“manic”。
  “字段开头” 返回以“ma”开头并包含“c”或“h”的所有记录。
ma*[!ch] “字段任何部分” 突出显示字母“m”和“a”以及这些字母后的所有文本,直到遇到“c”或“h”。下图演示了这种情况。

“部分模式匹配”

另一种部分模式匹配

换句话说,虽然您在尝试排除包含“c”和“h”的记录,但仍可能会看到这些记录,因为“字段任何部分”匹配了方括号之前的文本。

  “整个字段” 返回不包含“c”或“h”的所有记录(如果这些记录以“c”和“h”结尾)。例如,查询操作不会返回“manic”,因为该单词以“c”结尾,但会返回“maniacal”,因为“c”后有其他字符。
  “字段开头” 返回以“ma”开头的记录。Access 会匹配位于方括号内的字符前面的任何文本,因此可能会看到不需要的结果。

查找引号、Null 值或空值

可以使用“查找和替换”对话框查找引号以及某些类型的空值。

  • 字段的格式被设置为当字段为空时显示一个值。例如,某格式可能指定在您在字段中输入值之前,该字段中将显示诸如“未知”等文字。
  • 未设置格式的空字段或 Null 值。
  • 包含零长度字符串的字段。可以通过键入一对中间没有空格的引号 ("") 来输入零长度字符串。键入引号对,并将光标移至另一字段上后,Access 将隐藏引号,且该字段显示为空。请记住,仅可以在设置为“文本”、“备注”和“超链接”数据类型的字段中输入零长度字符串,这些类型默认情况下允许零长度字符串。

查找引号

  1. 在数据表视图中打开该表,或者打开绑定到该表的窗体。
  2. “开始”选项卡上的“查找”组中,单击“查找”

    - 或 -

    按 Ctrl+F。

    即显示“查找和替换”对话框。

  3. 如果仅想查找引号,请单击“查找”选项卡。若要查找并替换引号,请单击“替换”选项卡。
  4. “查找内容”框中,键入引号。若要使用另一个值替换引号,请在“替换为”框中输入该值。

     注释   如果要完全删除引号,请保留“替换为”框为空。

  5. 可选择使用“查找范围”列表更改要搜索的字段,或搜索整个表。

    默认情况下,“查找范围”列表包含您在第 1 步中选择的字段的名称。如果希望搜索整个表,请从列表中选择表的名称。

    - 或 -

    如果决定选择另一列,请在该表的数据表中单击所需的列。无需关闭对话框。

  6. 可选择从“匹配”列表中,选择“字段任何部分”。这将提供可能达到的最大搜索范围。
  7. “搜索”列表中,选择“全部”以在所有记录中进行搜索。
  8. 选中“按格式搜索字段”复选框。

     注释   如果 Access 自动选中了此复选框,请接受该选择,除非查找操作失败。

  9. 单击“查找下一个”查找记录。如果查找操作失败,请清除“按格式搜索字段”复选框并重试。如果确定要使用其他值(或空值)替换引号,请单击“替换”。如果确信要在整个表中查找和替换的值是正确的,请单击“全部替换”,但请记住,替换操作无法撤消。如果出错,必须再次运行“查找并替换”操作以纠正错误。

查找空值

  1. 根据需要,在数据表视图中打开包含要查找的值的表。
  2. 在表中,选择包含要查找的空值的字段。
  3. “开始”选项卡上的“查找”组中,单击“查找”

    - 或 -

    按 Ctrl+F。

    即显示“查找和替换”对话框。

  4. 执行下列操作之一:

    显示查找被格式设置为显示值的空字段

    1. 若要查找设置了格式的值,请单击“查找”选项卡。

      如果要查找值并使用其他数据替换它们,请单击“替换”选项卡。

    2. “查找内容”框中,键入该格式指定的值。

      若要向空字段添加数据,请在“替换为”框中输入新数据。

    3. “匹配”列表中,单击“整个字段”
    4. 选中“按格式搜索字段”复选框。
    单击“查找下一个”

    显示查找未设置格式的空字段

    1. 若要查找字段,请单击“查找”选项卡。如果要查找字段并添加值,请单击“替换”选项卡。
    2. “查找内容”框中,键入“Null”“Is Null”

      如果要使用其他数据替换 Null 值,请在“替换为”框中输入新的数据。

    3. “匹配”列表中,单击“整个字段”
    4. 清除“按格式搜索字段”复选框。
    单击“查找下一个”

    显示查找包含零长度字符串的字段

    1. 若要查找零长度字符串,请单击“查找”选项卡。

      如果要使用其他数据替换这些字符串,请单击“替换”选项卡。

    2. “查找内容”框中,键入一对中间没有空格的引号 ("")。

      如果要使用其他数据替换零长度字符串,请在“替换为”框中输入新的数据。

    3. “匹配”列表中,单击“整个字段”
    4. 清除“按格式搜索字段”复选框。
    5. 单击“查找下一个”

 

“查找和替换”对话框控件参考

搜索和替换数据时,您经常会设置和更改“查找和替换”对话框中的控件。但是,请记住,这样做可能导致查找或替换操作返回不需要的数据或完全失败。下表列出了这些控件和更改它们的结果。

控件 用法 行为
“查找范围”列表 在搜索列和搜索整个表之间切换 “查找范围”列表始终包含要搜索的表的名称。如果仅搜索一个表,Access 会显示该表的名称,但“查找范围”列表将不可用。当您搜索一个列时,Access 将使“查找范围”列表可用并显示表和列的名称。若要在搜索表和列之间进行切换,请从“查找范围”列表中选择所需的值。若要搜索的列不在该列表中,请转到打开的数据表或窗体,并选择所需的列,然后返回到“查找和替换”对话框并执行搜索。
“匹配”列表 控制查找操作尝试匹配字段的哪个部分 选择“字段任何部分”可在所有可能的值中搜索匹配项。选择“整个字段”可搜索与搜索项完全匹配的信息。如果认为要查找的值位于记录的开头,请选择“字段开头”
“搜索”列表 更改搜索方向 选择“向上”可查找光标上方的记录。选择“向下”可查找光标下方的记录。选择“全部”可从记录集的顶部开始,搜索全部记录。
“区分大小写”复选框 查找与搜索字符串的大小写设置匹配的值 在希望查找与搜索字符串的大小写设置匹配的记录时,可以选中“区分大小写”复选框。
“按格式搜索字段”复选框 基于输入掩码或格式进行搜索 查找操作可搜索数据或应用于数据的格式。例如,可搜索带有“日期/时间”输入掩码格式的字段以查找 Feb。除非对应用了格式或输入掩码的字段进行搜索,否则该选项始终不可用。有关该选项的详细信息,请参阅了解“按格式搜索字段”复选框一节。


Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助