表达式简介
应用对象
可以在 Microsoft Access 中使用表达式来执行各种任务,例如执行数学计算、合并或提取文本或验证数据。 本文提供有关表达式的概述信息 - 何时使用表达式、它们的组件部分,以及它们如何与 Microsoft Excel 公式进行比较。
本文内容
表达式概述
不妨这样想:希望 Access 执行一些操作时,必须使用它的语言。 例如,假设你想要告诉 Access“查看 Customers 表中的 BirthDate 字段,并告诉我客户的出生年份。可以将此表达式编写为:
DatePart("yyyy",[Customers]![BirthDate])
此表达式由 DatePart 函数和两个参数值组成: "yyyy" 和 [Customers]![BirthDate]。
我们来仔细看看该表达式。
1 DatePart 是检查日期并返回特定部分的函数。 在这种情况下,使用前两个参数。
2 interval 参数告知 Access 返回日期的哪一部分,在本例中, "yyyy" 告知 Access 你只希望返回日期的年份部分。
3 date 参数指示 Access 在何处查找日期值 , 在本例中, [Customers]![BirthDate] 指示 Access 在 Customers 表的 BirthDate 字段中查找日期。
使用表达式的方法
可通过下列方式使用表达式:
- 计算值,该值不直接存在于数据中。 你可以计算表和查询中字段的值,也可以计算窗体和报表中控件的值。
- 为表字段或者窗体或报表上的控件定义默认值。 每次打开表、窗体或报表时,将显示这些默认值。
- 创建验证规则。验证规则控制用户可以在字段或控件中输入的值。
- 定义查询条件以将结果限定为所需子集。
计算值
在 Access 中使用表达式的最常见方法之一是计算不直接存在于数据中的值。 通过这类计算得到的表或查询中的列称为计算字段。 可以创建一个合并了两个或两个以上表字段的计算字段。 例如,许多表将名字和姓氏存储在单独的字段中。 如果想要合并这些名字和姓氏,并将其显示在单个字段中,可以在表或查询中创建一个计算字段:
[FirstName] & " " & [LastName].
在本例中,和号 (&) 字段中的值 FirstName 、用引号) 括起来的空格 (空格以及字段中的值 LastName 。
定义默认值
也可以在 Access 中使用表达式为表字段或控件提供默认值。 例如,若要将日期字段的默认值设置为当前日期,请在该字段的 “默认值 ”属性框中键入:
Date()
创建验证规则
还可以使用表达式设置验证规则。 例如,可以在控件或表字段中使用验证规则,要求输入的日期大于或等于当前日期。 在这种情况下,可以将“验证规则”属性框中的值设置为:
>= Date()
定义查询条件
最后,您可以使用表达式设置查询条件。 例如,假设您要查看特定时间范围内发货的订单产品销售情况。 您可以输入条件以定义日期范围,Access 将只返回与该条件匹配的行。 例如,您的表达式可能类似于:
Between #1/1/2017# And #12/31/2017#
向查询添加条件后运行查询时,将只返回与指定日期匹配的值。
表达式示例
下表列出了一些 Access 表达式示例的常见用法:
| 表达式 | 用途 |
|---|---|
=[RequiredDate]-[ShippedDate] |
计算报表中两个文本框控件(名称分别为“要求日期”和“发货日期”)中的日期值之差。 |
Date() |
将“日期/时间”表字段的默认值设置为当前日期。 |
Between #1/1/2017# And #12/31/2017# |
在查询中指定“日期/时间”字段的条件。 |
=[Orders Subform].Form!OrderSubtotal |
返回“订单”窗体中“订单”子窗体上的“订单小计”控件的值。 |
>0 |
设置在表中数值字段的验证规则 - 用户必须输入大于零的值。 |
某些表达式以相等 (=) 运算符开头,而其他表达式则不以。 计算窗体或报表上的控件的值时,使用 = 运算符来启动表达式。 在其他情况下,例如在查询中或在字段或控件的 DefaultValue 或 ValidationRule 属性中键入表达式时,除非将表达式添加到表中的 Text 字段,否则不使用 = 运算符。 在某些情况下,例如向查询添加表达式时,Access 会自动 = 删除 运算符。
表达式组成部分
表达式由众多成分构成,可单独或结合使用这些成分生成结果。 这些成分包括:
- 标识符 - 窗体或报表中表字段或控件的名称或其属性。
-
运营商 例如,
+(加) 或-(减去) 。 - 功能 例如,SUM 或 AVG。
- 常量(不会更改的值),例如文本字符串或不是由表达式计算得出的数字。
- 值 字符串(例如“输入介于 1 和 10 之间的数字”)或操作中使用的数字(如 1,254)。
以下部分更加详细地介绍这些成分。
标识符
标识符是字段、属性或控件的名称。 你可以在表达式中使用标识符来引用与字段、属性或控件相关的值。 例如,请考虑表达式 =[RequiredDate]-[ShippedDate]。 此表达式从字段或控件的值 ShippedDate 中减去字段或控件的值 RequiredDate 。 在此表达式中, 和 ShippedDate 都RequiredDate用作标识符。
运算符
Access 支持各种运算符,包括常见的算术运算符,例如 +、、 -* (乘) 和 / (除) 。 还可以使用 (小于) (或>大于) 的比较运算符<、文本运算符(如 和 + )&来连接 (组合) 文本、用于确定 true 或 false 值的逻辑运算符(如 Not 和And)以及特定于 Access 的其他运算符。
函数
函数是可在表达式中使用的内置过程。 可以使用函数执行多种操作,例如计算值、操作文本和日期以及汇总数据。 例如,常用函数 DATE 将返回当前日期。 可以在多种情形下使用 DATE 函数,例如在表达式中用于设置表中字段的默认值。 在这种情况下,在有人添加新记录时,该字段的值默认设置为当前日期。
有些函数需要参数。 参数是一种为函数提供输入的值。 如果函数需要使用多个参数,请用逗号分隔各参数。 例如,请看以下示例表达式中的 DATE 函数:
=Format(Date(),"mmmm d, yyyy")
本示例使用两个参数:
- 第一个参数是
Date()函数,它返回当前日期。 如果没有参数,仍需添加函数括号。 - 第二个参数
"mmmm d, yyyy"(用逗号与第一个参数分隔)指定一个文本字符串,以指示 FORMAT 函数如何设置返回的日期值的格式。 请注意,文本字符串必须用引号括起来。
此表达式还表明通常可将一个函数返回的值嵌套为另一个函数的参数。 在本例中, Date() 充当参数。
常量
常量是运行 Access 时其值不会更改的某个项。
True、 False和 Null 常量经常在表达式中使用。
值
可以在表达式中使用数字 1,254 或字符串“输入 1 和 10 之间的数字。”等文本值。此外,还可以使用数值,这些数值可以是包括符号和小数点(如需)的一系列数字。
使用文本字符串值时,请将其括在引号中,确保 Access 能够正确解释它们。 在某些情况下,Access 会为你提供引号。 例如,在表达式中键入文本用作验证规则或查询条件时,Access 会将你的文本字符串自动括在引号中。
若要使用日期/时间值,请将值括在井号 (#) 。 例如, #3-7-17#, #7-Mar-17#和 #Mar-7-2017# 都是有效的日期/时间值。 在 Access 遇到用 # 字符括起来的有效日期/时间值时,它会自动将该值作为“日期/时间”数据类型处理。
Access 表达式与 Excel 公式的对比
Access 表达式与 Excel 公式的相似之处在于,两者均使用类似的元素生成结果。 Excel 公式和 Access 表达式均包含以下一种或多种元素:
-
标识符 在 Excel 中,标识符是工作簿中单个单元格或单元格区域的名称,例如 A1、B3:C6 或 Sheet2!C32。 在 Access 中,标识符是表字段 (的名称,例如
[Contacts]![First Name]) 、窗体上的控件或报表 ((如Forms![Task List]![Description]) )或这些字段或控件 (的属性(如Forms![Task List]![Description].ColumnWidth) )。 -
运营商 在 Access 和 Excel 中,运算符都用于比较值或对数据执行简单计算。 示例包括
+(加) 或-(减去) 。 - 功能 在 Access 和 Excel 中,函数和参数都用于完成单独使用运算符无法完成的任务,例如,可以在字段中查找值的平均值,或者将计算结果转换为货币格式。 函数示例包括 SUM 和 STDEV。 参数是向函数提供信息的值。 需要注意的是,Access 和 Excel 有许多函数可供选择,但程序中相似函数的名称有时会有所不同。 例如,Excel 中的 AVERAGE 函数对应于 Access 中的 AVG 函数。
- 常量在 Access 和 Excel 中,常量是不会改变的值 - 不是表达式计算得出的数字。
- 值 在 Access 和 Excel 中,值以类似的方式使用。
Access 表达式使用的运算符和常量与 Excel 公式中所用的相似,但 Access 表达式使用的标识符和函数不同于 Excel。 Excel 公式通常仅在工作表单元格中使用,而 Access 在许多位置使用 Access 表达式执行多种不同的任务,包括以下各项:
- 在窗体和报表上创建计算控件
- 在表和查询中创建计算字段
- 用作查询条件
- 验证在字段或窗体的控件中输入的数据
- 在报表中为数据分组
你可以使用 Access 表达式或 Excel 公式,使用数学运算符计算数字或日期/时间值。 例如,若要计算客户的折扣价格,可以使用 Excel 公式 =C2* (1-D2) 或 Access 表达式 = [Unit Price]*(1-[Discount])。
还可以使用 Access 表达式或 Excel 公式中的字符串运算符来合并、拆分字符串,或以其他方式操作字符串。 例如,若要将名字和姓氏组合成一个字符串,可以使用 Excel 公式 =D3 & “ ” & D4 或 Access 表达式 = [First Name] & " " & [Last Name]。