表达式简介

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

您可以在 Microsoft Access 中使用表达式执行各种任务,如执行数学计算、合并或提取文本或者验证数据。 本文提供了有关表达式的背景信息 - 何时使用表达式、表达式与 Microsoft Excel 公式的对比以及表达式的组成部分。

本文内容

表达式概述

为什么要使用表达式?

Access 表达式与 Excel 公式的对比

表达式的组成部分

表达式示例

表达式概述

表达式是部分或全部操作的组合: 内置或用户定义函数、 标识符、 运算符和常量的计算结果为单个值。

表达式的组成部分

例如,以下表达式包含全部四种元素:

=Sum([Purchase Price])*0.08

在此示例中, sum ()是内置函数、 [购买价格]是标识符、 *是一个数学运算符,并且0.08 的倍数常量。此表达式可以使用页脚窗体或报表页脚中的文本框中计算销售税组的项目。

表达式可能会比此示例复杂得多或简单得多。例如,布尔表达式只包括一个运算符和一个常量:

>0

此表达式返回True相比到大于 0,并返回False时进行比较的数字的数字小于 0。可以使用此表达式控件或表字段的有效性规则属性中,以确保输入仅正值。

在 Access 中,表达式用于在多个位置中执行计算、 操作字符或测试数据。表、 查询、 窗体、 报表和宏所有具有接受表达式的属性。例如,可以使用表达式的控件来源默认值属性中的控件。此外可以为表字段有效性规则属性中使用表达式。此外,在编写 Microsoft Visual Basic for Applications (VBA) 代码为事件过程或模块时,您通常使用类似于在 Access 对象,例如表或查询中使用的表达式。

注意: 表达式的组成部分的详细信息,请参阅本文后面的表达式的组成部分,一节。

为什么要使用表达式?

在 Access 中,可以使用表达式来执行以下任一操作:

  • 计算数据中刚好存在的值。 您可以计算表和查询中字段的值,也可以计算窗体和报表中控件的值。

  • 为表字段或者窗体或报表上的控件设置默认值。 每次打开表、窗体或报表时,将显示这些默认值。

  • 创建验证规则。 验证规则控制用户可以在字段或控件中输入的值。

  • 指定查询条件。

在 Access 中,表达式最常见的用法之一就是计算数据中并非直接存在的值。 例如,您可以在表或查询中创建一列,计算行项目总计,然后在窗体或报表中使用该值。 表或查询中的一列内含此类计算得出的结果,称为“计算字段”。 例如,查询中的以下表达式以已应用的折扣计算行项目总计:

总价 : CCur ([订单明细]。 [单价] * [数量] *(1-[Discount])/100) * 100

此表达式将生成结果列,即计算的字段,其名称总价

如果您需要对两个或多个表字段中的数据执行计算或操作,即可创建计算字段。 例如,许多表都在不同字段中存储名字和姓氏。 如果要合并名字和姓氏,然后将其显示在一个字段中,则可以在表或查询中创建计算字段。

将组合名字和姓氏的计算的字段将如下所示: [FirstName] &""& [LastName]。在这种情况下,与号 (&) 合并名字字段、 空格字符 (空格括在引号),并在姓氏字段中的值中的值。

您可以在 Access 中使用表达式来提供默认值的表中的字段或控件。例如,要将日期字段的默认值设置为当前日期,键入date ()该字段的默认值属性框中。

此外,您可以使用表达式设置有效性规则。例如,您可以在控件中使用有效性规则或要求,则输入的日期的表字段是大于或等于当前日期。这种情况下,将值设置为有效性规则属性框中> = date ()

最后,您可以使用表达式设置查询条件。 例如,假设您要查看特定时间范围内发货的订单产品销售情况。 您可以输入条件以定义日期范围,Access 将只返回与该条件匹配的行。 例如,您的表达式可能类似于:

#1/1/20 之间 11 #,#12/31/20 11 #

向查询添加条件后运行查询时,将只返回与指定日期匹配的值。

Access 表达式与 Excel 公式的对比

Access 表达式与 Excel 公式的相似之处在于,两者均使用类似的元素生成结果。 Excel 公式和 Access 表达式均包含以下一种或多种元素:

  • 标识符   在 Excel 中,标识符是单个单元格的名称或工作簿,例如A1B3:C6Sheet2 中的单元格区域 !C32。在 Access 中,标识符的表字段的名称 (如[联系人] ! [名字]),在窗体或报表上的控件 (如Forms ! [任务列表] ![说明]),或者这些字段或控件的属性 (如Forms ! [任务列表] ![说明]。列宽)。

  • 运算符   在 Access 和 Excel 中,以比较值或对数据执行简单的计算使用运算符。示例包括+ (加号) 或- (减号)。

  • 函数和参数   在 Access 和 Excel 中,函数和参数用于完成不能使用单独的运算符来执行的任务,例如,您可以在字段中,查找值的平均值,或将计算结果转换为货币格式。函数的示例包括SUMSTDEV。参数是信息提供给函数的值。Access 和 Excel 都有许多功能可供选择,但有时不同程序中类似的函数的名称。例如,在 Excel 中的AVERAGE函数对应于在 Access 中使用AVG函数。

  • 常量    在 Access 和 Excel 中,常量是不会改变的值 - 例如文本字符串或不是表达式计算得出的数字。

Access 表达式使用的运算符和常量与 Excel 公式中所用的相似,但 Access 表达式使用的标识符和函数不同于 Excel。 Excel 公式通常仅在工作表单元格中使用,而 Access 在许多位置使用 Access 表达式执行多种不同的任务,包括以下各项:

  • 在窗体和报表上创建计算控件

  • 在表和查询中创建计算字段

  • 用作查询条件

  • 验证在字段或窗体的控件中输入的数据

  • 在报表中为数据分组

您可以使用 Access 表达式或 Excel 公式计算数值或日期/时间值使用数学运算符。例如,若要计算客户折扣的价格,可以使用 Excel 公式=C2*(1-D2)或访问表达式= [单位 Price]*(1-[Discount])

可以也使用 Access 表达式或 Excel 公式的组合,拆分,或以其他方式使用字符串运算符操作字符串。例如,若要组合成一个字符串的第一个和最后一个名称,可以使用 Excel 公式= D3 &""& D4或 Access 表达式= [名字] &""& [姓氏]

返回页首

表达式的组成部分

表达式可以包括标识符、运算符、函数和参数、常量和值。 以下几部分将详细说明这些组成部分。 以下各部分中的示例还提供了表达式所用语法的简要说明。

标识符

标识符是字段、 属性或控件的名称。在表达式中使用的标识符以引用与字段、 属性或控件关联的值。例如,考虑表达式= [要求日期]-[发货日期]。此表达式值中减去发货日期字段或从要求日期字段或控件的值的控件的值。在表达式中,要求日期发货日期是用作标识符。

运算符

Access 支持不同的运算符,包括常见的算术运算符,如+-* (乘) 和/ (除)。您还可以使用比较运算符,如< (小于) 或> (大于) 用于进行比较的值,如&+文本运算符连接 (组合) 文本,如逻辑运算符和 确定 true 或 false 值和其他特定于访问的运算符。

函数和参数

函数是您可以在表达式中使用的内置过程。您的各种操作,使用函数计算值,如处理文本和日期,以及汇总数据。例如,一个常用的函数是日期,该返回当前日期。您可以使用Date函数中的各种方式,,如在表达式中的设置的默认值为表中的字段。在此示例中,只要有人添加新记录中,字段的值是默认设置为当前日期。

某些功能需要参数。参数是提供给函数的输入值。如果函数需要多个参数,用逗号分隔的参数。例如,请考虑下面的示例表达式中的Date函数:

= Format(Date()," mmmm d,yyyy")

此示例使用两个参数。第一个参数是date ()函数,返回当前日期。从第一个参数用逗号分隔,第二个参数 ("mmmm d yyyy"),指定一个文本字符串,以指示Format函数返回的日期值设置格式的方式。请注意,必须用引号括文本字符串。此表达式还阐释通常可以使用到另一个函数作为参数返回一个函数的值。在这种情况下, date ()作为参数。

常量

常量是 Access 运行时,其值不会更改的项目。TrueFalseNull常量常用在表达式中。您还可以在您可以使用 VBA 过程中的 VBA 代码中定义您自己的常量。VBA 是 Access 将使用的编程语言。

注意: 不能在表达式中使用的自定义函数内使用 VBA 常量。 例如,VBA 包含对应于一周中每天的常量:vbSunday 代表星期日、vbMonday 代表星期一,依此类推。 每个此类常量都有对应的数字值。 例如,vbSunday 的数字值为 1, vbMonday 为 2。 您不能在表达式内调用的自定义函数中使用这些常量。 此时必须使用数字值。

您可以在表达式中使用文字值,例如数字 1,254 或字符串“请输入一个介于 1 和 10 之间的数字”。如果需要,还可以使用数字值,它可以是一系列位数,包括符号和小数点。 如果不使用符号,Access 将假设数字值为正值。 要将一个值设置为负值,应使用负号 (-)。 还可以使用科学记数法。 为此,包含“E”或“e”和指数符号(例如:1.0E-6)。

将文本字符串用作常量时,请将其括在引号中,确保 Access 能够正确解释它们。 在某些情况下,Access 会为您提供引号。 例如,在表达式中为键入文本用作验证规则或查询条件时,Access 会将您的文本字符串自动括在引号中。

例如,如果您键入的文本巴黎,Access 将在表达式中显示"巴黎"。如果您想要生成一个实际上用引号括起来的字符串表达式,用单引号 (') 或三组双引号内将嵌套的字符串 (") 引号。例如,以下表达式是相同的:

Forms ![联系人] ![城市]。 默认值 = '"巴黎"'

Forms ![联系人] ![城市]。 默认值 ="""巴黎"""

若要使用日期/时间值,请将值包含在一对井号 (#) 之间。 例如,#3-7-11#、#7-Mar-11# 和 #Mar-7-2011# 均为有效的日期/时间值。 在 Access 遇到用 # 字符括起来的有效日期/时间值时,它会自动将该值作为“日期/时间”数据类型处理。

表达式示例

下表列出了一些 Access 表达式示例的常见用法:

表达式

用途

=[要求日期]-[发货日期]

计算报表中两个文本框控件(名称分别为“要求日期”和“发货日期”)中的日期值之差。

Date()

将“日期/时间”表字段的默认值设置为当前日期。

ExtendedPrice: CCur([订单明细].单价*[数量]*(1-[折扣])/100)*100

在查询中创建名为“ExtendedPrice”的计算字段。

Between #1/1/2011# And #12/31/2011#

在查询中指定“日期/时间”字段的条件。

=[订单子窗体].Form!订单小计

返回“订单”窗体中“订单”子窗体上的“订单小计”控件的值。

>0

设置在表中数值字段的验证规则 - 用户必须输入大于零的值。

一些表达式以等号 (=) 运算符,开头和其他人不这样做。计算窗体或报表上的控件的值,当您使用的=运算符以启动表达式。在其他情况下,当您键入表达式在查询中或在默认值有效性规则属性中的字段或控件,如不使用=运算符,除非表达式添加到表中的文本字段。在某些情况下,例如,当您将表达式添加到查询,Access 将自动删除=运算符。

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×