表达式语法指南

使用 Microsoft Access 时,可能会遇到需要处理的值未直接包含在数据中的情况。例如,可能需要计算订单的销售税,或订单本身的总计值。可以使用表达式计算这些值。

要使用表达式,必须首先使用正确的语法进行编写。语法是一组规则,表达式中的字词和符号依据这些规则正确地组合在一起。

不妨这样想:希望 Access 执行一些操作时,必须使用它的语言。例如,假设你想告诉 Access​​:“查看客户表中的‘出生日期’字段,告诉我客户的出生年份。”可将此表达式编写为 DatePart("yyyy",[客户]![出生日期])。此表达式中包含 DatePart 函数和两个参数值:"yyyy" 和 [客户]![出生日期]。

我们来仔细看看该表达式。

表达式示例

1.DatePart 是一个函数,用于检查日期并返回特定部分。

提示:  从 Access 2010 开始,表达式生成器提供了 IntelliSense,可显示表达式需要哪些参数。

2.区间参数告知 Access 返回日期的哪一部分,在此例中,"yyyy" 告知 Access 只需返回日期的年份部分。

3.日期参数告知 Access 在何处查找日期值,在此例中,[客户]![出生日期] 告知 Access 在客户表的“出生日期”字段中查找日期。

可以看到,Access 中的表达式所使用的语言最初有点难以解读。但在充分理解表达式语法并稍作练习后,这就变得容易多了。

尝试编写表达式前,应了解一些关键概念。本文介绍了使用正确语法需要了解的概念,并讨论了表达式中使用的语法。

本文不讨论结构化查询语言 (SQL) 语法,也不会用作 Visual Basic for Applications (VBA) 语法的指南。

本文内容

简介

对象、集合和属性

标识符

函数、运算符和常量

简介

要生成表达式,请使用函数、运算符和常量组合标识符。任何有效的表达式都必须包含至少一个函数或至少一个标识符,并且还可以包含常量或运算符。还可以将一个表达式用作另一表达式的一部分 - 通常用作函数的参数。

  • 表达式中的标识符    标识符在表达式中的一般形式为 [集合名称]![对象名称].[属性名称]

    注意: 只需为标识符指定足够的组成部分,就可使其在表达式的上下文中具有唯一性。标识符还经常使用 [对象名称] 的形式。

  • 表达式中的函数    对于使用函数的表达式,其一般形式为函数(参数, 参数),其中一个参数通常是标识符或表达式。

    注意: 某些函数不需要参数。

    使用特定函数之前,请查看相应的帮助文章,了解有关该函数语法的具体信息。

  • 表达式中的运算符    对于使用运算符的表达式,其一般形式为标识符 运算符 标识符。还有一些例外的形式,运算符部分的表中会详细介绍。

  • 表达式中的常量    对于使用常量的表达式,其一般形式为标识符 comparison_operator 常量

返回页首

对象、集合和属性

Access 数据库中的所有表格、查询、窗体、报表和字段都可称为对象。每个对象都有一个名称。某些对象已命名,例如从 Microsoft Office Access 联系人模板创建的数据库中的联系人列表。创建新对象时,需要为其命名。

由特定类型对象的所有成员组成的集称为集合。例如,由数据库中所有表格组成的集是一个集合。作为数据库中某个集合的成员的某些对象也可能是包含其他对象的集合。例如,表对象是包含字段对象的集合。

对象具有属性,用于描述对象的特征,并提供更改这些特征的方法。例如,查询对象具有“默认视图”属性,该属性描述了查询在运行时的显示方式,同时可供用户指定所需显示方式。

下图说明了集合、对象与属性之间的关系:

集合、对象和属性之间的关系

1.集合

2.对象

3.属性

返回页首

标识符

在表达式中使用对象、集合或属性时,可通过使用标识符引用该元素。标识符包括所标识元素的名称及其所属元素的名称。例如,一个字段的标识符包括该字段的名称及该字段所属表格的名称。前面的表达式实例中提供了这种标识符的示例:[客户]![出生日期]

在某些情况下,元素名称本身可用作标识符。当元素在所创建表达式的上下文中具有唯一性时即为如此。上下文暗含标识符的其余部分。例如,如果设计的查询只使用一个表,字段名称可单独用作标识符,因为表中的字段名称在该表中必须是唯一的。由于只使用了一个表,在查询中用于引用字段的任何标识符中都暗含了表名。

在其他情况下,必须明确标识符的各个部分,以便引用正常运行。当标识符在表达式的上下文中并非唯一时即为如此。具有多义性时,必须显式指示足够的标识符组成部分,使其在上下文中具有唯一性。例如,假设要设计的查询使用了名为“产品”的表和名为“订单”的表,而且两个表都有名为“产品 ID”的字段。在这种情况下,在查询中用于引用任一“产品 ID”字段的标识符除了包含字段名称外,还必须包含表格名称,例如,[产品]![产品 ID]

标识符运算符    可在标识符中使用三种运算符。

  • 感叹号运算符 (!)

  • 点运算符 (.)

  • 方括号运算符 ([])

这些运算符的使用方式是:将标识符的每个部分前后加上方括号,然后使用感叹号或点运算符将这些部分联接在一起。例如,对于名为“员工”的表中的“姓”字段,其标识符可表示为 [员工]![姓]。感叹号运算符告知 Access,其后面部分表示的对象属于其前面部分表示的集合。在此例中,[姓] 是属于 [员工] 集合的字段对象,而后者本身是表对象。

注意: 严格地说,不必始终在标识符或部分标识符前后键入方括号。如果标识符中没有空格或其他特殊字符,Access 在读取表达式时自动添加括号。但是,最好自己键入括号,这有助于避免错误,并可作为视觉线索,提示表达式的特定部分是标识符。

返回页首

函数、运算符和常量

要创建表达式,不仅需要标识符,还需要执行某种操作。在表达式中使用函数、运算符和常量执行操作。

函数

函数是可以在表达式中使用的过程。某些函数(如 Date)不需要任何输入即可工作。但是,大多数函数需要输入,即输入参数。在本文开始部分的示例中,DatePart 函数使用了两个参数:区间参数(其值为 "yyyy")和日期参数(其值为 [客户]![出生日期])。DatePart 函数至少需要这两个参数(区间和日期),但最多接受四个参数。

注意: 当函数包含多个参数时,这些参数之间用逗号分隔。

下面列出了表达式中的一些常用函数。单击每个函数的链接,了解用于该函数的语法的详细信息。

  • Date Date 函数用于向表达式中插入当前系统日期。它通常与 Format 函数配合使用,还可与包含日期/时间数据的字段的字段标识符一起使用。

  • DatePart DatePart 函数用于确定或提取日期的某个部分 - 通常是从字段标识符获取的日期,但有时是另一个函数(如 Date)返回的日期值。

  • DateDiff DateDiff 函数用于确定两个日期之间的差值 - 通常是从字段标识符获取的日期与使用 Date 函数获取的日期之间的差值。

  • Format Format 函数用于将格式应用于某个标识符,以及将格式应用于另一个函数的结果。

  • IIf IIf 函数用于计算表达式的结果为 true 还是 false,如果该表达式的计算结果为 true,则返回一个指定值,而如果该表达式的计算结果为 false,则返回另一个指定值。

  • InStr InStr 函数用于在另一个字符串中搜索字符或字符串的位置。搜索的字符串通常是从字段标识符中获取的。

  • LeftMidRight 这些函数用于从字符串中提取字符,开始位置为最左边的字符 (Left)、中间的特定位置(Mid),或最右边的字符 (Right)。它们常与 InStr 函数配合使用。这些函数提取字符的字符串通常是从字段标识符获取的。

有关函数的分类列表,请参阅函数(按类别排列)一文。

运算符

运算符是一个字词或符号,表示表达式其他元素之间的特定算术或逻辑关系。运算符可以是:

  • 算术运算符,如加号 (+)。

  • 比较运算符,如等号 (=)。

  • 逻辑运算符,如 Not

运算符通常用来表示两个标识符之间的关系。下表介绍了可在 Access 表达式中使用的运算符。

算术运算符   

可使用算术运算符计算两个或更多数字的值,或将数字的符号由正号更改为负号。

运算符

用途

示例

+

对两个数字求和。

[小计]+[销售税]

-

得出两个数字之间的差值,或表示数字的负值。

[价格]-[折扣]

*

将两个数字相乘。

[数量]*[价格]

/

用第一个数字除以第二个数字。

[总数]/[项目计数]

\

将两个数字舍入为整数,用第一个数字除以第二个数字,然后结果取整。

[已登记数]\[房间数]

Mod

用第一个数字除以第二个数字,并仅返回余数。

[已登记数] Mod [房间数]

^

数字的指数次幂。

数字 ^ 指数

比较运算符   

使用比较运算符比较值,并返回结果 true,false 或 Null(未知值)。

运算符

用途

<

确定第一个值是否小于第二个值。

<=

确定第一个值是否小于或等于第二个值。

>

确定第一个值是否大于第二个值。

>=

确定第一个值是否大于或等于第二个值。

=

确定第一个值是否等于第二个值。

<>

确定第一个值是否不等于第二个值。

在所有情况下,如果第一个值或第二个值为 Null,则结果也为 Null。由于 Null 代表未知的值,因此与 Null 进行任何比较的结果也是未知的。

逻辑运算符   

可以使用逻辑运算符来合并两个值,并返回结果 true、false 或 Null。可能还会看到逻辑运算符也称为布尔运算符。

运算符

用法

说明

And

Expr1 And Expr2

Expr1 和 Expr2 为 true 时,则为 true。

Or

Expr1 Or Expr2

Expr1 或 Expr2 为 true 时,则为 true。

Eqv

Expr1 Eqv Expr2

Expr1 和 Expr2 均为 true 或均为 false 时,则为 true。

Not

Not Expr

Expr 不为 true 时,则为 true。

Xor

Expr1 Xor Expr2

Expr1 为 true 或 Expr2 为 true,但不同时为 true 时,则为 true。

连接运算符    

使用连接运算符将两个文本值合并到为一个字符串。

运算符

用法

说明

&

string1 & string2

合并两个字符串,组成一个字符串。

+

string1 + string2

合并两个字符串,组成一个字符串,并传播 null 值。

特殊运算符    

可以使用下表中所述的特殊运算符。

运算符

说明

了解详细信息

Is NullIs Not Null

确定一个值为 Null 还是 Not Null。

Like "模式"

使用通配符运算符 ?* 匹配字符串值。

Like 运算符

Between val1 And val2

确定数字或日期值是否在某个范围内。

Between...And 运算符

In(string1,string2...)

确定一个字符串值是否包含在一组字符串值内。

In 运算符

常量

常量是一个不会更改的已知值,可以在表达式中使用。Access 中有四个常用常量:

  • True    指示逻辑上为 true 的内容。

  • False    指示逻辑上为 false 的内容。

  • Null    指示缺少已知值。

  • ""(空字符串)   指示已知为空的值。

常量可用作函数的参数,并可在表达式中用作条件的一部分。例如,通过输入 <>"" 作为条件,可以使用空字符串常量 ("") 作为查询中列条件的一部分,以计算该列的字段值。在此示例中,<> 是运算符,而 "" 是常量。一起使用时,它们表示应该将应用它们的标识符与空字符串进行比较。当标识符的值为空字符串之外的任何内容时,该表达式结果为 true。

注意: 请谨慎使用 Null 常量。大多数情况下,Null 与比较运算符一起使用会导致错误。如果希望在表达式中将某个值与 Null 进行比较,请使用 Is NullIs Not Null 运算符。

有关使用表达式的详细信息,请参阅构建表达式一文。

返回页首

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×