本主题提供有关使用 Access 提供的通配符的参考信息和有限操作方法信息。
若要深入了解如何在 Access 数据库中查找通配符,请参阅以下文章:使用“查找”和“替换”对话框更改数据、创建简单的选择查询和更新数据库中的数据。
本主题内容
有关受支持的字符集
Access 支持两组通配符,因为它支持结构化查询语言的两个标准 - ANSI-89 和 ANSI-92。 通常,对 Access 数据库(.mdb 和 .accdb 文件)执行查询和查找替换操作时,使用 ANSI-89 通配符。 对 Access 项目(连接到 Microsoft SQL Server 数据库的 Access 文件)执行查询操作时,使用 ANSI-92 通配符。 Access 项目使用 ANSI-92 标准是因为 SQL Server 使用该标准。
但是,Access 还提供了该常规用法的例外情况。 下表列出可用于查找并替换数据的方法或工具,并显示配合每个工具使用的默认 ANSI 标准。
| 搜索方法或工具 | 搜索的文件类型 | 使用的通配符集 |
|---|---|---|
| “查找和替换”对话框 | Access 数据库(.mdb 和 .accdb 文件) | ANSI-89 |
| “查找和替换”对话框 | Access 项目(.adp 和 .accdp 文件) | ANSI-92 |
| 选择或更新查询 | Access 数据库(.mdb 和 .accdb 文件) | ANSI-89 |
| 选择或更新查询 | Access 项目(.adp 和 .accdp 文件) | ANSI-92 |
| “查找和替换”对话框,选择或更新查询 | 设置为支持 ANSI-92 标准的 Access 数据库 | ANSI-92 |
查找数据库支持的 ANSI 标准
请按照以下步骤查找并根据需要更改给定数据库的 ANSI 设置。
单击“ 文件>选项”。
此时将出现“Access 选项”对话框。单击“对象设计器”,并在“查询设计”部分的“SQL Server 兼容语法(ANSI 92)”下,执行下列操作之一:
- 选择“此数据库”,将打开的数据库更改为 ANSI-92 标准。
或者
清除该复选框,将打开的数据库设置为 ANSI-89 标准。 - 选择“新数据库的默认设置”,将使用打开的 Access 实例创建的所有新数据库设置为 ANSI-92 标准。
或者
清除该复选框,将所有新数据库设置为 ANSI-89 标准。
- 选择“此数据库”,将打开的数据库更改为 ANSI-92 标准。
单击“确定”。
ANSI-89 通配符
使用“查找和替换”对话框查找并根据需要替换 Access 数据库或 Access 项目中的数据时,使用此通配符集。 还可以在对 Access 数据库运行选择和更新查询时使用这些通配符,但不能用于对 Access 项目运行查询。 若要深入了解如何使用选择和更新查询,请参阅以下文章:创建简单的选择查询和更新数据库中的数据。
| 字符 | 说明 | 示例 |
|---|---|---|
| * | 匹配任意字符数。 您可以在字符串中使用星号 (*)。 | “wh*”将找到 what、white 和 why,但找不到 awhile 或 watch。 |
| ? | 匹配任意单个字母字符。 | “B?ll”可以找到 ball、bell 和 bill。 |
| [ ] | 匹配括号中的任意单个字符。 | “B[ae]ll”可以找到 ball 和 bell,但找不到 bill。 |
| ! | 匹配括号中不包含的任意字符。 | “b[!ae]ll”可以找到 bill 和 bull,但找不到 ball 或 bell。 |
| - | 匹配字符范围中的任意一个字符。 必须以升序指定该范围(A 到 Z,而不是 Z 到 A)。 | “b[a-c]d”可以找到 bad、bbd 和 bcd。 |
| # | 匹配任意单个数字字符。 | “1#3”将找到 103、113 和 123。 |
ANSI-92 通配符
对 Access 项目(.adp 文件)运行选择和更新查询时,使用其中一种类型的查询或“查找和替换”对话框搜索要设置为使用 ANSI-92 标准的数据库集时,使用此通配符集。
| 字符 | 说明 | 示例 |
|---|---|---|
| % | 匹配任意字符数。 可将其用作字符串中的第一个或最后一个字符。 | “wh%”可以找到 what、white 和 why,但找不到 awhile 或 watch。 |
| _ | 匹配任意单个字母字符。 | “B_ll”可以找到 ball、bell 和 bill。 |
| [ ] | 匹配括号中的任意单个字符。 | “B[ae]ll”可以找到 ball 和 bell,但找不到 bill。 |
| ^ | 匹配括号中不包含的任意字符。 | “b[^ae]ll”可以找到 bill 和 bull,但找不到 ball 或 bell。 |
| - | 匹配字符范围中的任意一个字符。 必须以升序指定该范围(A 到 Z,而不是 Z 到 A)。 | “b[a-c]d”可以找到 bad、bbd 和 bcd。 |
备注:
- 若要查找驻留在数据中的通配符,请将要查找的字符括在方括号中,如下所示: [#]。 在搜索星号 () 、问号 (*?) 、井号 (#) 、左方括号 ([) 和连字符 (-) 时,请遵循此规则。 在搜索感叹号 (!) 或右括号 (]) 时不要使用括号。 若要通过使用“查找和替换”对话框查找这些字符,请在“查找内容”框中键入字符,但不使用括号。 使用查询查找这些字符时,可以按照相同的方法操作。 例如,以下语法返回包含感叹号的所有记录,而不考虑字符在数据中的位置:Like "*!*"。
若要了解如何使用“查找和替换”对话框,请参阅使用“查找和替换”对话框更改数据一文。 若要了解如何使用选择和更新查询,请参阅以下文章:创建简单的选择查询和更新数据库中的数据。
若要同时搜索连字符和其他字符,请将连字符置于括号内所有其他字符之前或之后,例如:[-#*] 或 [#*-]。 但是,如果在左括号后面有感叹号 (!) ,请将连字符放在感叹号 [!-]之后。 - 若要搜索一对左括号和右括号 ([]) ,必须将两个字符括在方括号中,如 [ []] 。 必须执行此操作,因为 Access 将一对括号解释为零长度字符串。
可使用通配符搜索的数据类型
设计表时,将该表中的每个字段设置为一种数据类型。 例如,将包含日期信息的字段设置为“日期/时间”数据类型。 下表列出了可以使用通配符搜索的数据类型。 请记住,在某些情况下,可以在“查找和替换”对话框中使用通配符,但不可以在查询中使用,反之亦然。
| 数据类型 | 可用于... |
|---|---|
| 文本 | “查找和替换”对话框、查询 |
| 备注 | “查找和替换”对话框、查询 |
| 数字 | “查找和替换”对话框、查询 |
| 日期/时间 | “查找和替换”对话框、查询 注意: 区域设置可能会影响通配符的使用方式。 有关详细信息,请参阅本节末尾的备注。 |
| 货币 | “查找和替换”对话框、查询 |
| 自动编号 | “查找和替换”对话框、查询 |
| OLE 对象 | 无。 |
| 是/否 | 查询,但不需要它们。 有关详细信息,请参阅本节末尾的备注。 |
| 超链接 | “查找和替换”对话框、查询 |
| 查阅向导 | 取决于源字段的数据类型。 |
备注:
- 如果应用于日期/时间字段的格式将部分或全部日期显示为文本,则可以在“查找和替换”对话框中使用通配符搜索这些字段。 例如,可以使用字符串(如 *ar*-10-2007**)进行搜索,结果将包括包含字母“ar”的任何月份(即 1 月、2 月等)。 请记住,由于必须使用应用于数据的格式进行搜索,因此在该对话框中必须选中“按格式搜索字段”复选框这一选项。 有关此复选框的详细信息,请参阅使用“查找和替换”对话框更改数据一文。
- 在 Windows 区域设置中指定的日期和时间会影响显示的内容和搜索方式。 例如,某些用户可能会看到罗马数字形式的日期,如 1997-IX-07,而不是 1997-Sept-07。 通常,会搜索显示的内容,而不是你认为 Access 在表中存储的内容。 换言之,若要查找这一年 9 月的所有记录,可以使用 2007-IX-* 等字符串进行搜索。
此外,如果日期字段中的文本包含变音符,例如 á 或 ä,则搜索字符串中必须包含这些标记,否则搜索将失败。 通过使用通配符可以解决出现的变音符。 例如,如果看到日期(如 3-heinä-2007),则可以使用 *-hein*-2007 等字符串进行搜索。 - 使用“查找和替换”对话框搜索“是/否”字段时,Access 会忽略该字段,并且对话框不会返回任何记录。 使用查询搜索“是/否”字段时,可以使用通配符,但请注意,“是/否”字段只会返回两个值(0 表示 false,-1 表示 true),这样通配符才不会将任何值添加到搜索。 例如,使用 =-1 等条件会返回与 "Like *1" 相同的结果。
- 不能搜索 OLE 对象字段。