通配符是特殊字符,可以代表文本值中的未知字符,便于查找具有相似但不相同数据的多个项目。 通配符还可以帮助获取指定模式匹配的数据库。
Access支持两组通配符,因为它支持结构化查询语言的两个标准(条件)。
ANSI-89 ANSI-92通常,在运行查询和查找和替换Access数据库(如*.mdb和*.accdb文件)的操作时,使用ANSI-89 通配符。
在对Access项目运行查询时使用ANSI-92 通配符 - 访问连接到Microsoft SQL Server数据库的文件。Access项目使用ANSI-92 标准,因为SQL Server使用该标准。
下表列出了ANSI-89 支持的字符 -
字符 描述 示例 * 匹配任意数量的字符,可以在字符串中的任何位置使用星号(*)。 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#3S 可匹配 103, 113 和 123。下表列出了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 。现在打开查询设计来演示如何使用这些通配符的简单示例。添加显示的表并关闭“显示表格”对话框。
将想要查看的字段添加为查询结果。
运行查询,得到以下结果 -
再次打开查询设计,并添加项目名称的输入提示。
现在运行查询,假设不知道确切的项目名称,但是知道项目名称包含单词"大桥"。 点击确定。
执行上述查询不会产生任何结果。这是因为Access在项目名称字段中查找完全匹配。 它正在寻找那个名字中有"大桥"的项目。
如果想让用户可以输入通配符来替换未知的字符,那么需要调整标准(条件),并包括Like运算符。
当运行查询时,用户可以使用Like通配符来替换任意数量的字符。
假设要了解有关"大桥"这个词的项目,但是不确定它在哪里。
可以添加一个*来替换单词"大桥"之前的任意数量的字符,然后添加另一个*。 点击确定 。
用户总是知道输入的通配符。 但是有些用户可能不知道他们可以进入的通配符。 在这种情况下,可以自己输入通配符。
在这种情况下,在Like操作符和参数提示符之间,可以添加这些通配符,现在有一个非常具体的方法来写这个。 在引号之后的单词之后,输入正在使用的通配符。 在这种情况下,我们使用“*”来替换任意数量的字符。现在将这个添加到参数。 为此,需要符号(&)符号和空格。现在重复这一步,并添加另一个符号(&),因为加入了通配符,无论用户输入什么标准的项目名称,然后用引号“*”。
现在再次运行我们的查询。 在没有任何通配符的提示符下输入单词:"大桥"。结果如下所示 -
查询现在将追踪任何在这里输入的通配符。只需要输入"大桥",然后按回车。
现在得到查找的结果,并且无论用户输入什么内容,结果都是一样的。
如果希望在项目标题中找到带有"扩建"的词组。 然后,只需键入"扩建"并单击确定。
通过这个查询,搜索名称中带有"扩建"的项目变得更加容易。结果也可能包含项目名称,其中"扩建"是该词的一部分。