access表达式的运用
时 间:2015-05-14 08:40:00
作 者:杨雪 ID:42182 城市:南京
摘 要:access中的表达式
正 文:
表达式简介
您可以在 Microsoft Access 中使用表达式执行各种任务,如执行数学计算、合并或提取文本或者验证数据。 本文提供了有关表达式的背景信息 - 何时使用表达式、表达式与 Microsoft Excel 公式的对比以及表达式的组成部分。
本文内容
表达式概述
表达式是以下部分或全部内容的组合:内置或用户定义的HTML、OLE/DDE 链接、TWAIN和数据连接库,表达式的计算结果是单个值。
例如,以下表达式包含全部四种元素:
=Sum([Purchase Price])*0.08
在此示例中,Sum() 是内置函数,[Purchase Price] 是标识符,* 是数学运算符,0.08 是常量。此表达式可在窗体页脚或报表页脚中的文本框中用于计算一组项目的营业税。
表达式可能会比此示例复杂得多或简单得多。例如,字符表达式只包括一个运算符和一个常量:
>0
此表达式在与大于 0 的数字进行比较时返回 True,在与小于 0 的数字进行比较时返回 False。 您可以在控件或表字段的“验证规则”属性中使用此表达式,以确保仅输入正值。
在 Access 中,表达式在很多地方都用于执行计算、操作字符或测试数据。表、查询、窗体、报表和宏都具有接受表达式的属性。例如,可以在控件的“控件来源”和“默认值”属性中使用表达式。您还可以在表字段的“验证规则”属性中使用表达式。此外,在为事件过程或模块编写 Microsoft Visual Basic for Applications (VBA) 代码时,使用的表达式通常与在 Access 对象(如表或查询)中使用的表达式类似。
注意 有关表达式组成部分的详细信息,请参阅本文稍后的表达式的组成部分。
为什么要使用表达式?
在 Access 中,可以使用表达式来执行以下任一操作:
-
计算数据中刚好存在的值。 您可以计算表和查询中字段的值,也可以计算窗体和报表中控件的值。
-
为表字段或者窗体或报表上的控件设置默认值。 每次打开表、窗体或报表时,将显示这些默认值。
-
创建验证规则。 验证规则控制用户可以在字段或控件中输入的值。
-
指定查询条件。
在 Access 中,表达式最常见的用法之一就是计算数据中并非直接存在的值。 例如,您可以在表或查询中创建一列,计算行项目总计,然后在窗体或报表中使用该值。 表或查询中的一列内含此类计算得出的结果,称为“计算字段”。 例如,查询中的以下表达式以已应用的折扣计算行项目总计:
ndedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100
此表达式将生成结果列,即计算字段,其名称为“ExtendedPrice”。
如果您需要对两个或多个表字段中的数据执行计算或操作,即可创建计算字段。 例如,许多表都在不同字段中存储名字和姓氏。 如果要合并名字和姓氏,然后将其显示在一个字段中,则可以在表或查询中创建计算字段。
合并名字和姓氏的计算字段可能如下所示:[FirstName] & " " & [LastName]。 本例中的与号 (&) 合并“FirstName”字段值、一个空格字符(空格括在引号中)以及“LastName”字段值。
也可以在 Access 中使用表达式为表字段或控件提供默认值。 例如,若要将日期字段的默认值设置为当前日期,请在该字段的“默认值”属性框中键入“Date()”。
您还可以使用表达式设置验证规则。 例如,您可以在控件或表字段中使用验证规则,要求输入的日期大于或等于当前日期。 在这种情况下,可以将“验证规则”属性框中的值设置为“>= Date()”。
最后,您可以使用表达式设置查询条件。 例如,假设您要查看特定时间范围内发货的订单产品销售情况。 您可以输入条件以定义日期范围,Access 将只返回与该条件匹配的行。 例如,您的表达式可能类似于:
Between #1/1/2011# And #12/31/2011#
向查询添加条件后运行查询时,将只返回与指定日期匹配的值。
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。 Excel 公式通常仅在工作表单元格中使用,而 Access 在许多位置使用 Access 表达式执行多种不同的任务,包括以下各项:
-
在窗体和报表上创建计算控件
-
在表和查询中创建计算字段
-
用作查询条件
-
验证在字段或窗体的控件中输入的数据
-
在报表中为数据分组
您可以使用 Access 表达式或 Excel 公式,使用数学运算符计算数字或日期/时间值。 例如,要为某位客户计算折扣价,可以使用 Excel 公式 =C2*(1-D2),或是 Access 表达式 = [Unit Price]*(1-[Discount])。
还可以使用 Access 表达式或 Excel 公式中的字符串运算符来合并、拆分字符串,或以其他方式操作字符串。 例如,要将名字和姓氏合并为一个字符串,可以使用 Excel 公式 =D3 & " " & D4 或 Access 表达式 = [First Name] & " " & [Last Name]。
表达式的组成部分
表达式可以包括标识符、运算符、函数和参数、常量和值。 以下几部分将详细说明这些组成部分。 以下各部分中的示例还提供了表达式所用语法的简要说明。
标识符
标识符是字段、属性或控件的名称。 您可以在表达式中使用标识符来引用与字段、属性或控件相关的值。 例如,考虑表达式 =[RequiredDate]-[ShippedDate]。 此表达式将“RequiredDate”字段或控件的值减去“ShippedDate”字段或控件的值。 在此表达式中,“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 常量都是表达式中的常用值。 您也可以在 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![联系人]![城市].DefaultValue = ' "巴黎" '
Forms![联系人]![城市].DefaultValue = " " "巴黎" " "
若要使用日期/时间值,请将值包含在一对井号 (#) 之间。 例如,#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 会自动删除 = 运算符。
适用于: Access 2013, Access 2007, Access 2010
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)