什么是表达式?
Access 中的表达式相当于 Excel 中的公式。一个表达式由多个单独使用或组合使用以生成某个结果的可能元素组成。元素可能包括标识符(字段名称、控件名称或属性名称)、运算符(如加号 (+) 或减号 (-))、函数、常量和值。您可以使用表达式执行计算、检索控件值、提供查询条件、定义规则、创建计算控件和计算字段,以及定义报表的分组级别。
以下是一些表达式示例。
表达式 | 用途 |
=[订购日期]-[发货日期] | 计算报表上两个文本框控件中的值之差 |
Date() | 将表中字段的默认值设置为当前日期 |
总价: CCur([订单明细].单价*[数量]*(1-[折扣])/100)*100 | 创建查询中的计算字段 |
Between #1/1/2005# And #12/31/2005# | 用于输入查询中“日期/时间”字段的条件 |
=[订单子窗体].Form!订单小计 | 返回“订单”窗体的“订单”子窗体上的“订单小计”控件的值 |
> 0 | 设置表中数值字段的有效性规则 |
正如以上示例表达式所显示的那样,Access 中的表达式不仅仅是一种计算。表达式可用于多种不同的用途。
您可能还注意到示例表达式在某些方面是互不相同的。例如,某些表达式以 = 运算符开头。当计算窗体或报表上某一控件的值时,使用 = 运算符作为表达式的开头。而在其他情况下,则不使用 = 运算符。例如,当您在查询或者字段或控件的“默认值”或“有效性规则”属性中输入表达式时,不使用 = 运算符。
标识符
标识符是字段、属性或控件的名称。在表达式中使用标识符可引用与字段、属性或控件关联的值。例如,请看表达式 =[订购日期]-[发货日期]。此表达式将“订购日期”字段或控件的值减去“发货日期”字段或控件的值。在此表达式中,“订购日期”和“发货日期”都是标识符。
运算符
Access 支持多种运算符,其中包括预期的算术运算符,如 +、-、*(乘)和 /(除),以及用于比较两个值的比较运算符、用于连接文本的文本运算符、用于确定 True 或 False 值的
逻辑运算符,还包括 Access 所特有的其他运算符。有关运算符的详细信息,请参见本文的运算符列表一节。
函数
函数是可在表达式中使用的内置程序。可将其用于执行计算、处理文本和日期、汇总数据以及执行多种操作。例如,一个最常用的函数是 Date。Date 函数可返回当前日期。您可以在为表中字段设置默认值的表达式中使用此函数。这样,无论何时添加一条新记录,此字段的默认值都为当前日期。
某些函数需要使用参数。参数是一个充当函数输入的值。如果函数需要使用多个参数,则需要使用逗号将参数分隔开。例如,请考虑以下表达式示例中的 Format 函数:
=Format(Date(),"mmmm d, yyyy")
在此示例中,我们提供两个参数。第一个参数是 Date 函数。通常可以将一个函数返回的值作为参数提供给另一个函数。在本例中,我们提供由 Date 函数返回的当前日期。第二个参数(与第一个参数以逗号分隔)是用于告知 Format 函数如何设置日期格式的文本字符串。
请注意,文本字符串应用引号括起来。一般而言,当您需要提供文本时,请将其放在引号中。
Access 支持多种内置函数。有关可用函数的更多信息,请参见函数(按类别)(英文)和函数(按字母顺序)(英文)帮助主题。
常量
常量是一种在 Access 运行时其值保持不变的命名数据项。在表达式中最常用到的常量包括 True、False 和 Null。您也可以在 Visual Basic for Applications (VBA) 中定义自己的常量,以在 VBA 程序中使用。VBA 是 Access 使用的编程语言。
注释 您不能在用于表达式的自定义函数中使用 Microsoft Visual Basic 常量。例如,Visual Basic 具有表示一周中各天的常量:vbSunday 代表星期日、vbMonday 代表星期一,依此类推。每个常量都有一个相应的数值:vbSunday 的数值为 1、vbMonday 的数值为 2,依此类推。您不能在从表达式内部调用的自定义函数中使用这些常量,而必须改用数值。
值
可以在表达式中使用文字值。数值可以是一组数字,包括一个符号和一个小数点(如果需要)。如果没有符号,Access 则认为是一个正值。要使一个值为负值,请包含减号 (-)。也可以使用科学记数法。这时,请添加 E 或 e 以及指数符号(如 1.0E-6)。
文本字符串值应置于引号中。在某些情况下,Access 将为您提供引号。例如,当您在有效性规则或查询条件的表达式中键入文本时,Access 将自动提供引号。
例如,如果您键入文本上海,Access 将在表达式中显示 "上海"。如果您希望表达式生成一个实际用引号括起来的字符串,可以用单 (') 引号或三组双 (") 引号将嵌套字符串括起来。例如,以下表达式是等效的:
Forms![联系人]![城市].DefaultValue = ' "上海" '
Forms![联系人]![城市].DefaultValue = " " "上海" " "
Forms![联系人]![城市].DefaultValue = " " "上海" " "
日期/时间值应以编号符号 (#) 括起来。例如,#3-7-05#、#7-Mar-05# 和 #Mar-7-2005# 都是有效的日期/时间值。当 Access 看到以 # 字符括起来的有效日期/时间值时,它会自动将
此值视为日期/时间数据类型。
返回页首
为什么要使用表达式?
在 Access 中,您经常会用到表达式,并将其用于多种目的。例如,当您要计算窗体上字段的值时,可以使用表达式。假设您要计算发票中某一行数据项的总金额。通常,您并不将该行数据项总计存储在数据库中,而是在需要时根据应存储在数据库中的两个数据项(数量和价格)来计算此值。
=CCur([数量]*[价格])
此表达式将数量与价格相乘,然后使用 CCur 函数(转换为货币)将结果转换为“货币”数据类型。
通常使用文本框控件来存储计算值,但是您也可以使用具有“控件来源”属性的任何控件。将表达式作为其控件来源的控件称为计算控件。如果控件是一个文本框,则可以直接在该文本框中输入表达式。也可以在属性表的“控件来源”属性中输入表达式。
除了使用表达式计算数据库中未存储的所需值外,通常还可以使用表达式提供查询信息。例如,假设您要查看在特定时间范围内发货的产品销售情况。您可以输入一个使用 Between 运算符的条件表达式来定义日期范围。Access 将仅返回符合该条件且发货日期在指定日期范围内的行:
Between #1/1/2004# And #12/31/2004#
您或许还会发现,在查询中计算行数据项总计也是一个非常好的办法,查询可以为窗体或报表提供数据。此类计算得出的查询中的列称为计算字段。例如,以下查询中的表达式可
根据适用的折扣来计算行数据项总计:
总价: CCur([订单明细].[单价]*[数量]*(1-[折扣])/100)*100
此表达式将结果列命名为“总价”。
表达式的另一个好处是为表中的字段或控件提供默认值。例如,如果您要将一个日期字段的默认值设置为当前日期,则可以在该字段的“默认值”属性中键入 Date()。也可以使用表达式设置有效性规则。例如,您可以使用这样一种有效性规则:要求输入的日期必须大于或等于当前日期。此时,应将“有效性规则”属性框中的值设置为 >= Date()。
返回页首
在什么地方使用表达式,如何使用表达式
您可以在许多地方使用表达式。例如,在表、查询、窗体、报表和宏中都可以使用表达式。此外,在编写事件过程或模块的 VBA 代码时,通常要使用与 Access 对象(如表或查询)中类似的表达式。
表达式中的字段名称和控件名称必须用括号括起来;例如,[单价]。如果您输入的名称不包含空格或特殊字符,则 Access 会自动用括号将该名称括起来。如果名称包含空格或特殊字符,则必须自己键入括号。
通过设置 Name 属性,可为计算控件命名。在窗体或报表上的所有控件名称中,该名称必须是唯一的。它还必须不同于在该控件的表达式中使用的任何字段或控件名称,而且应不同于基础表或查询中的任何字段名称。当您要在窗体或报表上的其他表达式中引用该控件的值时,可以使用该名称。
最常使用表达式的地方包括:
在窗体或报表上的文本框控件中
可以在文本框控件中使用表达式来创建计算控件。例如,假定您要创建一个小计,以计算某订单窗体上所有行数据项的总和。该小计如下所示。
控件的使用
要计算小计,需要在窗体上放置一个文本框控件,并将该文本框的“控件来源”属性设置为以下表达式:
=Sum([总价])
Sum 函数可计算记录源中一组值的总和,在本例中,记录源是名为“总价”的列。
在文本框控件中输入表达式
在数据库窗口中的“对象”下,单击“窗体”。
单击某个窗体,然后单击数据库窗口中的“设计”。
单击文本框以将其选中。
在“视图”菜单上,单击“属性”以显示该文本框的属性表。
Access 将显示该文本框的属性表。
将文本框的“控件来源”属性更改为 = 后面跟着表达式,或单击属性框右侧的“生成器”按钮 使用表达式生成器创建一个表达式。例如,要计算如上所示的小计,请键入 =Sum([总价])。
属性表看上去与下图相似。
关闭该属性表。
在查询设计网格的条件单元格中
可以使用表达式定义查询条件。Access 会只返回与该条件匹配的那些行。例如,假定您要
查看发货日期在 2004 年中的所有订单。要输入条件,可在查询中“发货日期”列的“条件”单元格中输入下面的表达式:
Between #1/1/2004# And #12/31/2004#
“发货日期”列看上去与下图相似。
可以使用表达式来确定发货日期是否位于指定的日期范围内。请注意,日期值两侧带有编号符号 (#)。Access 将编号符号内的值视为“日期/时间”数据类型。
在查询设计网格中输入条件
在数据库窗口中的“对象”下,单击“查询”。
单击某个查询,然后单击数据库窗口中的“设计”。
单击要为其输入匹配条件的列中的条件单元格。
键入条件表达式,或单击工具栏上的“生成器”按钮 使用表达式生成器创建一个表达式。
注释 条件表达式的前面不要带 = 运算符。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论