你可以在 Microsoft Access 中使用表达式执行各种任务,如执行数学计算、合并或提取文本或者验证数据。 本文提供了有关表达式的概述信息 - 何时使用表达式、表达式的组成部分以及表达式与 Microsoft Excel 公式的比较。
本文内容
表达式概述
不妨这样想:希望 Access 执行一些操作时,必须使用它的语言。 例如,假设你想告诉 Access:“查看客户表中的‘出生日期’字段,告诉我客户的出生年份。 ”可将此表达式编写为:
DatePart("yyyy",[Customers]![BirthDate])
此表达式中包含 DatePart 函数和两个参数值:"yyyy" 和 [Customers]![BirthDate]。
我们来仔细看看该表达式。
1 DatePart 是一个函数,用于检查日期并返回特定部分。 在这种情况下,使用前两个参数。
2 区间参数告知 Access 返回日期的哪一部分,在该情况下,"yyyy" 告知 Access 只需返回日期的年份部分。
3 日期参数告知 Access 在何处查找日期值,在该情况下,[Customers]![BirthDate] 告知 Access 在客户表的“出生日期”字段中查找日期。
使用表达式的方法
可通过下列方式使用表达式:
-
计算值,该值不直接存在于数据中。 你可以计算表和查询中字段的值,也可以计算窗体和报表中控件的值。
-
为表字段或者窗体或报表上的控件定义默认值。 每次打开表、窗体或报表时,将显示这些默认值。
-
创建验证规则。验证规则控制用户可以在字段或控件中输入的值。
-
定义查询条件以将结果限定为所需子集。
计算值
在 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 属性中键入表达式时,除非你要向表中的文本字段添加表达式,否则不应使用 = 运算符。 在某些情况下,例如向查询添加表达式时,Access 会自动删除 = 运算符。
表达式组成部分
表达式由众多成分构成,可单独或结合使用这些成分生成结果。 这些成分包括:
-
标识符 表格或报告上的表字段或控件的名称,或这些字段或控件的属性。
-
运算符 例如, + (加号)或 - (减号)。
-
函数 例如,SUM 或 AVG。
-
常量 不发生改变的值--如文本字符串,或不是通过表达式计算得出的数字。
-
值 ”,或运算中使用的数字,比如 1254。
以下部分更加详细地介绍这些成分。
标识符
标识符是字段、属性或控件的名称。 你可以在表达式中使用标识符来引用与字段、属性或控件相关的值。 例如,考虑表达式 =[RequiredDate]-[ShippedDate]。 此表达式将“ShippedDate”字段或控件的值减去“RequiredDate”字段或控件的值。 在此表达式中 RequiredDate 和 ShippedDate 都为标识符。
运算符
Access 支持各种运算符,包括常见的算术运算符,如 +、-、*(乘法)和 /(除法)。 还可以使用比较运算符,例如 < (小于) 或者 > (大于) 来比较值; 使用文本运算符,例如 & 和 + 来串联 (组合) 文本; 使用逻辑运算符,例如 Not 和 And 来确定 True 或 False 值,还可以使用其他 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]。