Access函数表达式的标准规定样式_第1页
Access函数表达式的标准规定样式_第2页
Access函数表达式的标准规定样式_第3页
Access函数表达式的标准规定样式_第4页
Access函数表达式的标准规定样式_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Access函数表达式的示例在MicrosoftAccess中许多操作中都要使用表达式,包括创建计算控件、查询、筛选准则、默认值、有效性规则和宏的条件。通常,创建表达式最简捷的方法就是找到类似的表达式示例,然后对它进行修改。请选择:一、用于窗体和报表中的表达式示例1、处理窗体和报表中文本值的示例表列出了可在窗体和报表的计算控件中使用的表达式示例:表达式说明二N/A显示N/A。二姓氏&名字显示“姓氏”控件和“名字”控件的值,两者之间以空格隔开。二Left(产品名称,1)使用Left函数显示“产品名称”控件值的第一个字符。二Right(资产代码,2)使用Right函数显示“资产代码”控件值的最后两

2、个字符。二Trim(地址)使用Trim函数显示“地址”控件的值,并且删除首尾的空格。=IIf(IsNull(地区),城市&邮政编码,城市&地区&邮政编码)如果“地区”值为Null则使用IIf函数显示“城市”和“邮政编码”控件的值,否则显示“城市、“地区”和“邮政编码”控件的值,中间以空格分隔。注释计算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。Left函返回Variant(String),其中包含字符串中从左边算起指定数量的字符。语法Left(string,length)Left函数的语法有下面的命名参数:部分说明st

3、ring必要参数。字符串表达式其中最左边的那些字符将被返回。如果string包含Null,将返冋Null。length必要参数;为Variant(Long)。数值表达式,指出将返回多少个字符。如果为0,返回零长度字符串()。如果大于或等于string的字符数,则返回整个字符串。说明:欲知string的字符数,使用Len函数。注意:LeftB函数作用于包含在字符串中的字节数据。所以length指定的是字节数,而不是要返回的字符数。Right函Right函返回Variant(String),其中包含从字符串右边取出的指定数量的字符。语法Right(string,length)Right函数的语法具

4、有下面的命名参数:部分说明string必要参数。字符串表达式,从中最右边的字符将被返回。如果string包含Null,将返冋Null。length必要参数;为Variant(Long)。为数值表达式,指出想返回多少字符。如果为0,返回零长度字符串()。如果大于或等于string的字符数,则返回整个字符串。说明:欲知string的字符数,用Len函数。注意:RightB函数作用于包含在字符串中的字节数据。所以length指定的是字节数,而不是指定返回的字符数。LTrim、RTrim与Trim函数返回Variant(String),其中包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(R

5、Trim)或前导和尾随空白(Trim)。语法LTrim(string)RTrim(string)Trim(string)必要的string参数可以是任何有效的字符串表达式。如果string包含Null,将返回Null。IIf函根据表达式的值,来返回两部分中的其中一个。语法IIf(expr,truepart,falsepart)IIf函数的语法含有下面这些命名参数:部分描述expr必要参数。用来判断真伪的表达式。truepart必要参数。如果expr为True,则返回这部分的值或表达式。falsepart必要参数。如果expr为False,则返回这部分的值或表达式。说明:由于Ilf会计算true

6、part和falsepart,虽然它只返回其中的一个。因此要注意到这个副作用。例如,如果falsepart产生一个被零除错误,那么程序就会发生错误,即使expr为True。Choose函数从参数列表中选择并返回一个值。语法Choose(index,choice-1,choice-2,.,choice-n)Choose函数的语法具有以下几个部分:部分描述index必要参数,数值表达式或字段,它的运算结果是个数值,且界于1和可选择的项目数之间。choice必要参数,Variant表达式,包含可选择项目的其中之一。说明:Choose会根据index的值来返回选择项列表中的某个值。如果index是1,

7、则Choose会返回列表中的第1个选择项。如果index是2,则会返回列表中的第2个选择项,以此类推。可以使用Choose来查阅一个列表中的项目。例如,如果index所指定的值为3,而choice-1=one、choice-2=two、且choice-3=three,那么Choose将返回three。当index代表一选项组中的值时,则这项功能将会特别有用。即使它只返回一个选项值,Choose仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了MsgBox函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。当index小于1或大于列出的选择项数目

8、时,Choose函数返回Null。如果index不是整数,则会先四舍五入为与其最接近的整数。If.Then.Else语句根据表达式的值有条件地执行一组语句。语法IfconditionThenstatementsElseelsestatements或者,可以使用块形式的语法:IfconditionThenstatementsElseIfcondition-nThenelseifstatements.ElseelsestatementsEndIfIf.Then.Else语句的语法具有以下几个部分:部分描述condition必要参数。一个或多个具有下面两种类型的表达式:数值表达式或字符串表达式,其运

9、算结果为True或False。如果condition为Null,则condition会视为False。TypeOfobjectnameIsobjecttype形式的表达式。其中的objectname是任何对象的引用,而objecttype则是任何有效的对象类型。如果objectname是objecttype所指定的一种对象类型,则表达式为True,否则为False。statements在块形式中是可选参数;但是在单行形式中,且没有Else子句时,则为必要参数。一条或多条以冒号分开的语句,它们在condition为True时执行。condition-n可选参数。与condition同。elsei

10、fstatements可选参数。一条或多条语句,它们在相关的condition-n为True时执行。elsestatements可选参数。一条或多条语句,它们在刖面的condition或condition-n都不为True时执行。说明:可以使用单行形式(第一种语法)来做短小简单的测试。但是,块形式(第二种语法)则提供了更强的结构化与适应性,并且通常也是比较容易阅读、维护及调试的。注意:在单行形式中,按照If.Then判断的结果也可以执行多条语句。所有语句必须在同一行上并且以冒号分开,如下面语句所示:IfA10ThenA=A+1:B=B+A:C=C+B在块形式中,If语句必须是第一行语句。其中的

11、Else,Elself,和EndIf部分可以只在之前加上行号或行标签。If块必须以一个EndIf语句结束。要决定某个语句是否为一个If块,可检查Then关键字之后是什么。如果在Then同一行之后,还有其它非注释的内容,则此语句就是单行形式的If语句。Else和ElseIf子句都是可选的。在If块中,可以放置任意多个ElseIf子句,但是都必须在Else子句之前。If块也可以是嵌套的。当程序运行到一个If块(第二种语法condition将被测试。如果condition为True,则在Then之后的语句会被执行。如果condition为False,则每个Elself部分的条件式(如果有的话)会依次

12、计算并加以测试。如果找到某个为True的条件时,则其紧接在相关的Then之后的语句会被执行。如果没有一个ElseIf条件式为True(或是根本就没有ElseIf子句),则程序会执行Else部分的语句。而在执行完Then或Else之后的语句后,会从EndIf之后的语句继续执行。提示根据单一表达式来执行多种可能的动作时,SelectCase更为有用。不过,TypeOfobjectnameIsobjecttype子句不能在SelectCase语句中使用。2、页码表达式的示例下表列出了用户在窗体“设计”视图或报表“设计”视图中可以使用的页码表达式示例以及在其他视图中可以见到的结果。表达式结果二Page

13、1,2,3二Page&PagePage1,Page2,Page3二Page&Page&of&PagesPage1of3,Page2of3,Page3of3二Page&of&Pages&Pages1of3Pages,2of3Pages,3of3Pages=Page&/&Pages&Pages1/3Pages,2/3Pages,3/3Pages二Country&-&PageUK-1,UK-2,UK-3二Format(Page,000)001,002,0033、在窗体和报表中执行算术操作的示例表列出了可在窗体和报表的计算控件中使用的表达式示例:使用表达式MicrosoftAccess显示二分类汇总+

14、运费“分类汇总”和“运费”控件值的总和。二付款日期卜装运日期“付款日期”和“装运日期”控件值的差。二价格壮06“价格”控件值的1.06倍(“价格”值增加6%)。二件数*价格“件数”和“价格”控件值的乘积。二雇员总数/国家总数“雇员总数”和国家总数控件值的比值。注释:计算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。在表达式中使用算术操作符(+,-,*,/)时,如果表达式中某个控件的值为Null,则整个表达式的值为Null。如果表达式中某个控件的一些记录值可能为Null,可使用Nz函数将Null值转化为0,例如:=Nz(分

15、类汇总)+Nz(运费)有关Nz函数的详细内容如下:使用Nz函数可以返回0,或一个空字符串(),或者当一个变体型为Null时,该函数返回其它的指定值。例如,您可以使用该函数将Null值转换为其它值并防止它通过表达式扩散。语法Nz(variant,valueifnull)Nz函数具有如下参数。参数说明variant各种数据类型的VariantValueifnull可选参数(除非在查询中使用)。个Variant,提供当variant参数为Null时的返回值。该参数使您能够返回一个值(除了0或空字符串以外的其匕值)。如果在杳询的表达式中使用了不带ValuelfNull参数的Nz函数,则对包含Null值

16、的字段,其返回结果将为空。当variant参数值为Null时,Nz函数返回0还是空字符串取决于上下文中该值是数值还是字符串。如果包含了可选的valueifnull参数,则当variant参数为Null时,Nz函数将返回由该参数指定的值。当variant参数值不为Null时,Nz函数返回variant参数值。说明:Nz函数对可能包含Null值的表达式是很有用的。要使表达式即使在包含Null值时也能计算得到一个非Null值,可使用Nz函数来返回0,空字符串,或一个自定义的返回值。例如,表达式2+varX在VariantvarX是Null时,返回一个Null值。然而,2+Nz(varX)却返回2。您

17、可以经常使用Nz函数作为IIf函数的替代函数。例如,在以下的代码中,需要用两个包含IIf函数的表达式来返回想要的值。第一个包含IIf函数的表达式用于检查变量的值,如果该值为Null就将它转换为0。varTemp=IIf(IsNull(varFreight),0,varFreight)varResult=IIf(varTemp50,High,Low)在下一个示例中,Nz函数提供与第一个表达式相同的函数功能,并且一步即可获得所需的值而不需要分两步进行。varResult=IIf(Nz(varFreight)50,High,Low)如果为可选参数valueifnul提供了一个值,则当variant为

18、Null时,将返回该值。通过这个可选参数,可以避免使用含有IIf函数的表达式。例如,下面的下表达式使用IIf函数,在varFreight的值为Null时返回一个字符串。varResult=IIf(IsNull(varFreight),NoFreightCharge,varFreight)在下一个示例中,当varFreight为Null时,则Nz函数的可选参数提供了返回的字符串。varResult=Nz(varFreight,NoFreightCharge)4、引用窗体和报表中的值的示例表列出了可在窗体的计算控件中使用的表达式示例:使用表达式MicrosoftAccess显示二Forms!订单!

19、订单号“订单”窗体上“订单号”控件值。二Forms!订单!订单子窗体!订单分类汇总“订单窗体上“订单子窗体中的订单分类汇总”控件值。二Forms!订单!订单子窗体!产品号.Column(2)“订单”窗体上“订单子窗体”中的“订单号”多列列表框中第三列的值。(0代表第列,1代表第列,如此类推。)=Forms!订单!订单子窗体!价格*1.06“订单”窗体上“订单子窗体”中的“价格”控件值的1.06倍。(“价格”控件值增加6%)二Parent!订单号当刖子窗体的主窗体或父窗体上的订单号控件值。表列出了可在报表上的计算控件中使用的表达式示例:使用表达式MicrosoftAccess显示二Reports

20、!发票!订单号“发票”报表中的“订单号”控件值。二Reports!总计!总计子报表!销售总计“总计”报表中总计子报表”上的销售总计”控件值。二Parent!订单号当刖子报表的主报表或父报表中的“订单号”控件值。注释:计算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。5、在窗体和报表中使用合计函数的示例表列出了可在窗体和报表中使用的表达式示例:表达式说明-Avg(运费)使用Avg函数显示运费”控件的平均值。=Count(订单号)使用Count函数显示“订单号”控件中的记录数。=Sum(销售)使用Sum函数显示“销售”控件值

21、的总和。=Sum(件数*价格)使用Sum函数显示“件数”和“价格”控件值的乘积总和。二销售/Sum(销售)*100显示销售百分比,即“销售”控件值与所有“销售”控件值的总和的比值。注释如果控件的Format属性设置为Percent,则不要包含*100。注释计算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。在使用合计函数的表达式中不能使用控件的名称。只能使用表、查询或SQL语句中的字段名。有关在计算控件中使用合计函数的详细内容如下:关于计算窗体或报表上的计算控件的总计值在使用合计函数如Sum,或域合计函数如Dsum计算总计

22、值时,不能在Sum函数中使用计算控件的名称。而必须在计算控件中重复该表达式。例如:=Sum(件数*单价)不过,如果在基查询中有一个计算字段,例如:=总值:件数*单价则可在Sum函数中使用该字段的名称,如下所示:=Sum(总值)有关在查询中创建计算字段的详细内容如下:在查询中计算记录的总和、平均值、数量或其他总计使用查询“设计”视图中的“总计”行,可以对查询中全部记录或者一个或多个记录组,计算一个或多个字段值的总和、平均值、数量、最小值、最大值、方差或标准偏差。使用“准则”行,还可以添加影响计算结果的准则。注释也可以用“简单查询向导”来计算字段值的总和、平均值、数量、最小值或最大值但如果要添加准

23、则,就必须使用查询设计网格。有关Sum函数的详细内容如下:返回包含在指定查询字段中一组值的总计。语法Sum(expr)其中expr代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。在expr中的操作数可以包含表字段的名称、常量或函数(此函数可以是内部的或用户定义的,但不能是其他SQL合计函数)。说明Sum函数求字段中值的总和。例如,可用Sum函数计算货运的总费用。Sum函数不计包含Null值的字段。下列示例显示如何计算产品的UnitPrice(单价)及Quantity(数量)字段的合计:SELECTSum(UnitPrice*Q

24、uantity)ASTotalRevenueFROMOrderDetails;可以在一个查询表达式之中使用Sum函数。也可以在QueryDef对象的SQL属性中,或当创建一个基于SQL查询的Recordset时,使用此表达式。有关DSum函数的详细内容如下:DSum函数用于计算指定记录集(一个域)中的一组值的总和。可以在VisualBasic、宏、查询表达式或计算控件中使用DSum函数。例如,可以在查询的计算字段表达式中使用DSum函数来计算一段时期某个特定雇员的总销售量。也可以在计算控件中使用DSum函数来显示特定产品的动态销售总和。语法DSum(expr,domain,criteria)T

25、heDSum函数具有下列参数。参数说明expr表达式,用于标识要对其值作总计的字段。可以是指向表或查询中字段的字符串表达式,也可以是执行在域合计函数中计算字段的表达式。在expr中可以包括表中字段的名称、窗体上的控件、常量或函数。函数可以是内置的,也可以是用户自定义的,但不能是另一个域合计函数或SQL合计函数。domain字符串表达式,代表组成域的记录集。可以是表的名称或查询的名称。criteria可选的字符串表达式,用于限制DSum函数执行的数据范围。例如,criteria通常等价于SQL表达式中的WHERE子句,只是不含WHERE关键字。如果忽略criteria,DSum函数将在整个域范围

26、内计算expr。任何包含在criteria中的字段必须同时也是domain中的字段,否则Dsum函数将返回Null。说明如果没有记录满足criteria参数或者域中不包含任何记录,DSum函数将返回Null。无论是在宏或模块、查询表达式或者在计算控件中使用DSum函数,都必须仔细地构造criteria参数以确保能够正确地进行计算。在查询的“准则”行、查询中的计算字段表达式中或更新查询的“更新到”行中均可以使用DSum函数指定准则。注释:可以在总计查询的计算字段表达式中使用DSum或Sum函数。如果使用DSum函数,将在数据分组之前计算总计值。如果使用Sum函数,则在字段表达式中的值计算之前进行

27、分组。如果需要显示窗体或报表记录源以外的字段值的总和,可能需要使用DSum函数。例如,如果有一个窗体显示有关一种特定产品的信息。可以在计算控件中使用DSum函数来计算这种产品销售额的运行总和。提示:如果要保持报表控件中的运行总和,当控件所基于的字段位于报表的记录源中时,可以使用控件的RunningSum属性,DSum函数还可用来保持窗体上的运行总和。注释:使用该函数时,对domain中记录未保存的更改将不包括在内。如果要让DSum函数基于更改后的数据,必须先保存更改。方法是单击“记录”菜单上的“保存记录”命令,或者将焦点移动到另一个控件,或使用Update方法。6、在窗体和报表中使用域合计函数

28、的示例表列出了可在窗体和报表中的计算控件上使用的表达式示例:表达式说明二DLookup(合同名称,供应商,供应商号=Forms!供应商号)使用DLookup函数显示“供应商”表的“供应商号”字段值等于活动窗体上的“供应商号”控件值时的“合同名称”字段值。=DLookup(合同名称,供应商,供应商号=Forms!新供应商!供应商号)使用DLookup函数显示“供应商”表的“供应商号”字段等于“新供应商”窗体中的“供应商号”控件值时的“合同名称”字段值。=DSum(订单价值,订单,顾客号=RATTC)使用DSum函数显示“订单”表中“顾客号”字段值为RATTC时的“订单价值”字段值的总和。注释:计

29、算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。在使用域合计函数的表达式中不能使用控件的名称。只能使用表、查询或SQL语句中的字段名。有关在计算控件中使用域合计函数的详细内容如下:在使用合计函数如Sum,或域合计函数如Dsum计算总计值时,不能在Sum函数中使用计算控件的名称。而必须在计算控件中重复该表达式。例如:=Sum(件数*单价)不过,如果在基查询中有一个计算字段,例如:=总值:件数*单价则可在Sum函数中使用该字段的名称,如下所示:=Sum(总值)7、在窗体和报表上处理和计算日期的示例表列出了可在窗体和报表的计算

30、控件中使用的表达式示例:表达式说明=Date()使用Date函数显示当前日期,显示时用mm-dd-yy形式具中mm是月份(1到12),dd是日期(1到31),yy则是年份的最后两个数字(1980到2099)。二Format(Now(),ww)使用Format函数显示当刖日期在该年中所处的星期号,其中ww为1到53。二DatePart(yyyy,订单日期)使用DatePart函数显示“订单日期”控件值的四位年份值。二DateAdd(y,-10,应付日期)使用DateAdd函数显示“应付日期”控件值刖10天的日期值。二DateDiff(d,订单日期,装运日期)使用DateDiff函数显示“订单日期

31、”和“装运日期”控件值之间相差的天数。注释:计算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。8、返回窗体和报表上的两个值中一个值的示例表列出了可在窗体和报表的计算控件中使用的表达式示例:表达式说明=IIf(确认=是,订单已确认,如果“确认”控件的值为“是”则IIf函数显示“订订单没有确认)单已确认”信息,否则显示“订单没有确认。=IIf(IsNull(国家),国家)如果“国家”控件值为Null则IIf函数显示空字符串,否则显示“国家”控件的值。=IIf(IsNull(地区),城市&邮政编码,城市&地区&邮政编码)如果“

32、地区”控件值为Null则IIf函数显示“邮政编码”和“城市”控件的值,否则显示“城市”“地区”和“邮政编码”控件的值。=IIf(IsNull(付款日期-装运日期),检杳丢失日期,付款日期-装运日期)如果“付款日期”减去“装运日期”的值为Null则Iif函数显示“检杳丢失日期”信息,否则显示“付款日期”和“装运日期”控件值之差。注释计算控件中的表达式应使用=操作符开头。在设置计算控件的Name属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。9、创建表达式所谓创建表达式,实际上是将标识符、值和运算符组合为一整体以产生某一结果。表达式可以是简单的算术表达式,例如(1+1),其结果为2;也可以执行复杂的数据运算,例如下列的有效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论