MS Access – 通配符

MS Access – 通配符


通配符是特殊字符,可以代替文本值中的未知字符,并且可以方便地定位具有相似但不相同数据的多个项目。通配符还可以帮助在指定的模式匹配上建立数据库。

Access 支持两组通配符,因为它支持结构化查询语言的两种标准。

  • ANSI-89
  • ANSI-92

通常,在对 Access 数据库(例如*.mdb*.accdb文件)运行查询查找和替换操作时,应使用 ANSI-89 通配符

当您对 Access 项目(连接到 Microsoft SQL Server 数据库的 Access 文件)运行查询时,您可以使用 ANSI-92 通配符。Access 项目使用 ANSI-92 标准,因为 SQL Server 使用该标准。

ANSI-89 通配符

下表列出了 ANSI-89 支持的字符 –

Character 描述 例子
* 匹配任意数量的字符。您可以在字符串中的任何位置使用星号 (*)。 wh*找到什么,白色,以及为什么,但不是一会儿或观看。
? 匹配任何单个字母字符。 B?ll找到 ball、bell 和 bill。
[ ] 匹配括号内的任何单个字符。 B[ae]ll找到 ball 和 bell,但找不到 bill。
! 匹配任何不在括号中的字符。 b[!ae]ll查找 bill 和 Bull,但不查找 ball 或 bell。
匹配一系列字符中的任何一个。您必须按升序指定范围(A 到 Z,而不是 Z 到 A)。 b[ac]d查找 bad、bbd 和 bcd。
# 匹配任何单个数字字符。 1#3S找到 103、113 和 123。

ANSI-92 通配符

下表列出了 ANSI-92 支持的字符 –

Character 描述 例子
% 匹配任意数量的字符。它可以用作字符串中的第一个或最后一个字符。 wh%找到什么,白色,以及为什么,但不是一会儿或观看。
_ 匹配任何单个字母字符。 B_ll查找 ball、bell 和 bill。
[ ] 匹配括号内的任何单个字符。 B[ae]ll找到 ball 和 bell,但找不到 bill。
^ 匹配任何不在括号中的字符。 b[^ae]ll查找 bill 和 Bull,但不查找 ball 或 bell。
匹配一系列字符中的任何一个。您必须按升序指定范围(A 到 Z,而不是 Z 到 A)。 b[ac]d查找 bad、bbd 和 bcd。

例子

现在让我们通过打开查询设计看一个使用这些通配符的简单示例。

添加突出显示的表格并关闭“显示表格”对话框。

粘贴错误

在查询网格中添加您希望作为查询结果查看的字段。

添加查询网格

运行您的查询。

运行查询项目

让我们再次进入查询设计并添加项目名称提示。

查询2

现在运行您的查询,让我们假设您不知道确切的项目名称,但您知道项目名称包含单词“potion”。单击确定

药水

上述步骤不会产生任何结果。这是因为 Access 正在寻找项目名称字段中的完全匹配项它正在寻找名称中带有Potion一词的项目

如果您希望用户可以输入通配符来替换未知字符,那么您需要调整条件并包含.

喜欢运算符

运行查询时,用户可以使用通配符替换任意数量的字符。

字符数

让我们假设您知道药水这个词出现在标题的某个地方,但您不确定在哪里。

您可以添加一个 * 来替换单词 potion 之前的任意数量的字符,然后在 the 之后添加另一个 *。单击确定

添加药水

药水卷轴

用户知道他们可以输入的通配符总是好的。但是有些用户可能不知道他们可以输入和不能输入的通配符。在这种情况下,您可以自己输入通配符。

在这种情况下,在Like运算符和我们的参数提示之间,我们可以添加这些通配符,现在我们必须以一种非常具体的方式来编写它。在引号中的单词like之后,输入我们正在使用的通配符。在这种情况下,我们使用“*”来替换任意数量的字符。我们现在将其添加到参数中。为此,我们需要与号 (&)符号和一个空格。我们现在将重复此步骤并添加另一个与号 (&),因为我们将该通配符加入到用户为该项目名称输入的任何条件中,然后加入引号中的“*”。

喜欢输入名字

现在让我们再次运行我们的查询。在提示中输入词药水,不带任何通配符。

药水

查询现在将在此处输入的任何内容的任一侧跟踪这些通配符。我们需要简单地输入药水并按回车键。

药水卷轴

我们现在得到了我们正在寻找的结果,无论用户输入什么,结果都是一样的。

假设我们想找到标题中带有“the”一词的每个项目。然后,您只需输入单词并Enter或单击Ok

参数

母语

使用此查询,可以更轻松地搜索名称中带有“the”一词的项目。2nd 结果级别还可能包括带有“mother”一词的项目名称,其中“the”是该词的一部分。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁