Access函数表达式的标准规定样式.docx
- 文档编号:10702767
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:19
- 大小:23.66KB
Access函数表达式的标准规定样式.docx
《Access函数表达式的标准规定样式.docx》由会员分享,可在线阅读,更多相关《Access函数表达式的标准规定样式.docx(19页珍藏版)》请在冰豆网上搜索。
Access函数表达式的标准规定样式
Access函数表达式的示例
在MicrosoftAccess中许多操作中都要使用表达式,包括创建计算控件、查询、筛选准则、默认值、有效性规则和宏的条件。
通常,创建表达式最简捷的方法就是找到类似的表达式示例,然后对它进行修改。
请选择:
一、用于窗体和报表中的表达式示例
1、处理窗体和报表中文本值的示例
下表列出了可在窗体和报表的计算控件中使用的表达式示例:
表达式
说明
="N/A"
显示N/A。
=[姓氏]&""&[名字]
显示“姓氏”控件和“名字”控件的值,两者之间以空格隔开。
=Left([产品名称],1)
使用Left函数显示“产品名称”控件值的第一个字符。
=Right([资产代码],2)
使用Right函数显示“资产代码”控件值的最后两个字符。
=Trim([地址])
使用Trim函数显示“地址”控件的值,并且删除首尾的空格。
=IIf(IsNull([地区]),[城市]&""&[邮政编码],[城市]&""&[地区]&""&[邮政编码])
如果“地区”值为Null则使用IIf函数显示“城市”和“邮政编码”控件的值,否则显示“城市”、“地区”和“邮政编码”控件的值,中间以空格分隔。
注释
计算控件中的表达式应使用=操作符开头。
在设置计算控件的Name属性时,应确保使用唯一的名称。
不要使用表达式中使用的控件名称。
Left函数
返回Variant(String),其中包含字符串中从左边算起指定数量的字符。
语法
Left(string,length)
Left函数的语法有下面的命名参数:
部分
说明
string
必要参数。
字符串表达式其中最左边的那些字符将被返回。
如果string包含Null,将返回Null。
length
必要参数;为Variant(Long)。
数值表达式,指出将返回多少个字符。
如果为0,返回零长度字符串("")。
如果大于或等于string的字符数,则返回整个字符串。
说明:
欲知string的字符数,使用Len函数。
注意:
LeftB函数作用于包含在字符串中的字节数据。
所以length指定的是字节数,而不是要返回的字符数。
Right函数
返回Variant(String),其中包含从字符串右边取出的指定数量的字符。
语法
Right(string,length)
Right函数的语法具有下面的命名参数:
部分
说明
string
必要参数。
字符串表达式,从中最右边的字符将被返回。
如果string包含Null,将返回Null。
length
必要参数;为Variant(Long)。
为数值表达式,指出想返回多少字符。
如果为0,返回零长度字符串("")。
如果大于或等于string的字符数,则返回整个字符串。
说明:
欲知string的字符数,用Len函数。
注意:
RightB函数作用于包含在字符串中的字节数据。
所以length指定的是字节数,而不是指定返回的字符数。
LTrim、RTrim与Trim函数
返回Variant(String),其中包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(RTrim)或前导和尾随空白(Trim)。
语法
LTrim(string)
RTrim(string)
Trim(string)
必要的string参数可以是任何有效的字符串表达式。
如果string包含Null,将返回Null。
IIf函数
根据表达式的值,来返回两部分中的其中一个。
语法
IIf(expr,truepart,falsepart)
IIf函数的语法含有下面这些命名参数:
部分
描述
expr
必要参数。
用来判断真伪的表达式。
truepart
必要参数。
如果expr为True,则返回这部分的值或表达式。
falsepart
必要参数。
如果expr为False,则返回这部分的值或表达式。
说明:
由于IIf会计算truepart和falsepart,虽然它只返回其中的一个。
因此要注意到这个副作用。
例如,如果falsepart产生一个被零除错误,那么程序就会发生错误,即使expr为True。
Choose函数
从参数列表中选择并返回一个值。
语法
Choose(index,choice-1[,choice-2,...[,choice-n]])
Choose函数的语法具有以下几个部分:
部分
描述
index
必要参数,数值表达式或字段,它的运算结果是一个数值,且界于1和可选择的项目数之间。
choice
必要参数,Variant表达式,包含可选择项目的其中之一。
说明:
Choose会根据index的值来返回选择项列表中的某个值。
如果index是1,则Choose会返回列表中的第1个选择项。
如果index是2,则会返回列表中的第2个选择项,以此类推。
可以使用Choose来查阅一个列表中的项目。
例如,如果index所指定的值为3,而choice-1="one"、choice-2="two"、且choice-3="three",那么Choose将返回"three"。
当index代表一选项组中的值时,则这项功能将会特别有用。
即使它只返回一个选项值,Choose仍然会计算列表中的每个选择项。
所以应该注意到这项副作用。
例如,当在每个选择项表达式中使用了MsgBox函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。
当index小于1或大于列出的选择项数目时,Choose函数返回Null。
如果index不是整数,则会先四舍五入为与其最接近的整数。
If...Then...Else语句
根据表达式的值有条件地执行一组语句。
语法
IfconditionThen[statements][Elseelsestatements]
或者,可以使用块形式的语法:
IfconditionThen
[statements]
[ElseIfcondition-nThen
[elseifstatements]...
[Else
[elsestatements]]
EndIf
If...Then...Else语句的语法具有以下几个部分:
部分
描述
condition
必要参数。
一个或多个具有下面两种类型的表达式:
数值表达式或字符串表达式,其运算结果为True或False。
如果condition为Null,则condition会视为False。
TypeOfobjectnameIsobjecttype形式的表达式。
其中的objectname是任何对象的引用,而objecttype则是任何有效的对象类型。
如果objectname是objecttype所指定的一种对象类型,则表达式为True,否则为False。
statements
在块形式中是可选参数;但是在单行形式中,且没有Else子句时,则为必要参数。
一条或多条以冒号分开的语句,它们在condition为True时执行。
condition-n
可选参数。
与condition同。
elseifstatements
可选参数。
一条或多条语句,它们在相关的condition-n为True时执行。
elsestatements
可选参数。
一条或多条语句,它们在前面的condition或condition-n都不为True时执行。
说明:
可以使用单行形式(第一种语法)来做短小简单的测试。
但是,块形式(第二种语法)则提供了更强的结构化与适应性,并且通常也是比较容易阅读、维护及调试的。
注意:
在单行形式中,按照If...Then判断的结果也可以执行多条语句。
所有语句必须在同一行上并且以冒号分开,如下面语句所示:
IfA>10ThenA=A+1:
B=B+A:
C=C+B
在块形式中,If语句必须是第一行语句。
其中的Else,ElseIf,和EndIf部分可以只在之前加上行号或行标签。
If块必须以一个EndIf语句结束。
要决定某个语句是否为一个If块,可检查Then关键字之后是什么。
如果在Then同一行之后,还有其它非注释的内容,则此语句就是单行形式的If语句。
Else和ElseIf子句都是可选的。
在If块中,可以放置任意多个ElseIf子句,但是都必须在Else
子句之前。
If块也可以是嵌套的。
当程序运行到一个If块(第二种语法)时,condition将被测试。
如果condition为True,则在Then之后的语句会被执行。
如果condition为False,则每个ElseIf部分的条件式(如果有的话)会依次计算并加以测试。
如果找到某个为True的条件时,则其紧接在相关的Then之后的语句会被执行。
如果没有一个ElseIf条件式为True(或是根本就没有ElseIf子句),则程序会执行Else部分的语句。
而在执行完Then或Else之后的语句后,会从EndIf之后的语句继续执行。
提示根据单一表达式来执行多种可能的动作时,SelectCase更为有用。
不过,TypeOfobjectnameIsobjecttype子句不能在SelectCase语句中使用。
2、页码表达式的示例
下表列出了用户在窗体“设计”视图或报表“设计”视图中可以使用的页码表达式示例以及在其他视图中可以见到的结果。
表达式
结果
=[Page]
1,2,3
="Page"&[Page]
Page1,Page2,Page3
="Page"&[Page]&"of"&[Pages]
Page1of3,Page2of3,Page3of3
=[Page]&"of"&[Pages]&"Pages"
1of3Pages,2of3Pages,3of3Pages
=[Page]&"/"&[Pages]&"Pages"
1/3Pages,2/3Pages,3/3Pages
=[Country]&"-"&[Page]
UK-1,UK-2,UK-3
=Format([Page],"000")
001,002,003
3、在窗体和报表中执行算术操作的示例
下表列出了可在窗体和报表的计算控件中使用的表达式示例:
使用表达式
MicrosoftAccess显示
=[分类汇总]+[运费]
“分类汇总”和“运费”控件值的总和。
=[付款日期]-[装运日期]
“付款日期”和“装运日期”控件值的差。
=[价格]*1.06
“价格”控件值的1.06倍(“价格”值增加6%)。
=[件数]*[价格]
“件数”和“价格”控件值的乘积。
=[雇员总数]/[国家总数]
“雇员总数”和“国家总数”控件值的比值。
注释:
♦计算控件中的表达式应使用=操作符开头。
♦在设置计算控件的Name属性时,应确保使用唯一的名称。
不要使用表达式中使用的控件名称。
♦在表达式中使用算术操作符(+,-,*,/)时,如果表达式中某个控件的值为Null,则整个表达式的值为Null。
如果表达式中某个控件的一些记录值可能为Null,可使用Nz函数将Null值转化为0,例如:
=Nz([分类汇总])+Nz([运费])
有关Nz函数的详细内容如下:
使用Nz函数可以返回0,或一个空字符串(""),或者当一个变体型为Null时,该函数返回其它的指定值。
例如,您可以使用该函数将Null值转换为其它值并防止它通过表达式扩散。
语法
Nz(variant[,valueifnull])
Nz函数具有如下参数。
参数
说明
variant
各种数据类型的Variant
Valueifnull
可选参数(除非在查询中使用)。
一个Variant,提供当variant参数为Null时的返回值。
该参数使您能够返回一个值(除了0或空字符串以外的其它值)。
如果在查询的表达式中使用了不带ValueIfNull参数的Nz函数,则对包含Null值的字段,其返回结果将为空。
当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。
您可以经常使用Nz函数作为IIf函数的替代函数。
例如,在以下的代码中,需要用两个包含IIf
函数的表达式来返回想要的值。
第一个包含IIf函数的表达式用于检查变量的值,如果该值为Null
就将它转换为0。
varTemp=IIf(IsNull(varFreight),0,varFreight)
varResult=IIf(varTemp>50,"High","Low")
在下一个示例中,Nz函数提供与第一个表达式相同的函数功能,并且一步即可获得所需的值而不需要分两步进行。
varResult=IIf(Nz(varFreight)>50,"High","Low")
如果为可选参数valueifnul提供了一个值,则当variant为Null时,将返回该值。
通过这个可选参数,可以避免使用含有IIf函数的表达式。
例如,下面的下表达式使用IIf函数,在varFreight的值为Null时返回一个字符串。
varResult=IIf(IsNull(varFreight),"NoFreightCharge",varFreight)
在下一个示例中,当varFreight为Null时,则Nz函数的可选参数提供了返回的字符串。
varResult=Nz(varFreight,"NoFreightCharge")
4、引用窗体和报表中的值的示例
下表列出了可在窗体的计算控件中使用的表达式示例:
使用表达式
MicrosoftAccess显示
=Forms!
[订单]!
[订单号]
“订单”窗体上“订单号”控件值。
=Forms!
[订单]!
[订单子窗体]!
[订单分类汇总]
“订单”窗体上“订单子窗体”中的“订单分类汇总”控件值。
=Forms!
[订单]!
[订单子窗体]!
[产品号].Column
(2)
“订单”窗体上“订单子窗体”中的“订单号”多列列表框中第三列的值。
(0代表第一列,1代表第二列,如此类推。
)
=Forms!
[订单]!
[订单子窗体]!
[价格]*1.06
“订单”窗体上“订单子窗体”中的“价格”控件值的1.06倍。
(“价格”控件值增加6%)
=Parent!
[订单号]
当前子窗体的主窗体或父窗体上的“订单号”控件值。
下表列出了可在报表上的计算控件中使用的表达式示例:
使用表达式
MicrosoftAccess显示
=Reports!
[发票]!
[订单号]
“发票”报表中的“订单号”控件值。
=Reports!
[总计]!
[总计子报表]!
[销售总计]
“总计”报表中“总计子报表”上的“销售总计”控件值。
=Parent!
[订单号]
当前子报表的主报表或父报表中的“订单号”控件值。
注释:
♦计算控件中的表达式应使用=操作符开头。
♦在设置计算控件的Name属性时,应确保使用唯一的名称。
不要使用表达式中使用的控件名称。
5、在窗体和报表中使用合计函数的示例
下表列出了可在窗体和报表中使用的表达式示例:
表达式说明
=Avg([运费])使用Avg函数显示“运费”控件的平均值。
=Count([订单号])使用Count函数显示“订单号”控件中的记录数。
=Sum([销售])使用Sum函数显示“销售”控件值的总和。
=Sum([件数]*[价格])使用Sum函数显示“件数”和“价格”控件值的乘积总和。
=[销售]/Sum([销售])*100显示销售百分比,即“销售”控件值与所有“销售”控件值的总和的比值。
注释
如果控件的Format属性设置为Percent,则不要包含*100。
注释
♦计算控件中的表达式应使用=操作符开头。
♦在设置计算控件的Name属性时,应确保使用唯一的名称。
不要使用表达式中使用的控件名称。
♦在使用合计函数的表达式中不能使用控件的名称。
只能使用表、查询或SQL语句中的字段名。
有关在计算控件中使用合计函数的详细内容如下:
关于计算窗体或报表上的计算控件的总计值
在使用合计函数如Sum,或域合计函数如Dsum计算总计值时,不能在Sum函数中使用计算控件的名称。
而必须在计算控件中重复该表达式。
例如:
=Sum([件数]*[单价)
不过,如果在基查询中有一个计算字段,例如:
=总值:
[件数]*[单价]
则可在Sum函数中使用该字段的名称,如下所示:
=Sum([总值])
有关在查询中创建计算字段的详细内容如下:
在查询中计算记录的总和、平均值、数量或其他总计
使用查询“设计”视图中的“总计”行,可以对查询中全部记录或者一个或多个记录组,计算一个或多个字段值的总和、平均值、数量、最小值、最大值、方差或标准偏差。
使用“准则”行,还可以添加影响计算结果的准则。
注释也可以用“简单查询向导”来计算字段值的总和、平均值、数量、最小值或最大值。
但如果要添加准则,就必须使用查询设计网格。
有关Sum函数的详细内容如下:
返回包含在指定查询字段中一组值的总计。
语法
Sum(expr)
其中expr代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。
在expr中的操作数可以包含表字段的名称、常量或函数(
此函数可以是内部的或用户定义的,但不能是其他SQL合计函数)。
说明
Sum函数求字段中值的总和。
例如,可用Sum函数计算货运的总费用。
Sum函数不计包含Null值的字段。
下列示例显示如何计算产品的UnitPrice(单价)及Quantity(数量)字段的合计:
SELECT
Sum(UnitPrice*Quantity)
AS[TotalRevenue]FROM[OrderDetails];
可以在一个查询表达式之中使用Sum函数。
也可以在QueryDef对象的SQL属性中,或当创建一个基于SQL查询的Recordset时,使用此表达式。
有关DSum函数的详细内容如下:
DSum函数用于计算指定记录集(一个域)中的一组值的总和。
可以在VisualBasic、宏、查询表达式或计算控件中使用DSum函数。
例如,可以在查询的计算字段表达式中使用DSum函数来计算一段时期某个特定雇员的总销售量。
也可以在计算控件中使用DSum函数来显示特定产品的动态销售总和。
语法
DSum(expr,domain[,criteria])
TheDSum函数具有下列参数。
参数
说明
expr
表达式,用于标识要对其值作总计的字段。
可以是指向表或查询中字段的字符串表达式,也可以是执行在域合计函数中计算字段的表达式。
在expr中可以包括表中字段的名称、窗体上的控件、常量或函数。
函数可以是内置的,也可以是用户自定义的,但不能是另一个域合计函数或SQL合计函数。
domain
字符串表达式,代表组成域的记录集。
可以是表的名称或查询的名称。
criteria
可选的字符串表达式,用于限制DSum函数执行的数据范围。
例如,criteria通常等价于SQL表达式中的WHERE子句,只是不含WHERE关键字。
如果忽略criteria,DSum函数将在整个域范围内计算expr。
任何包含在criteria中的字段必须同时也是domain中的字段,否则Dsum函数将返回Null。
说明
如果没有记录满足criteria参数或者域中不包含任何记录,DSum函数将返回Null。
无论是在宏或模块、查询表达式或者在计算控件中使用DSum函数,都必须仔细地构造criteria
参数以确保能够正确地进行计算。
在查询的“准则”行、查询中的计算字段表达式中或更新查询的“更新到”行中均可以使用DSum
函数指定准则。
注释:
可以在总计查询的计算字段表达式中使用DSum或Sum函数。
如果使用DSum函数,将在数据分组之前计算总计值。
如果使用Sum函数,则在字段表达式中的值计算之前进行分组。
如果需要显示窗体或报表记录源以外的字段值的总和,可能需要使用DSum函数。
例如,如果有一个窗体显示有关一种特定产品的信息。
可以在计算控件中使用DSum函数来计算这种产品销售额的运行总和。
提示:
如果要保持报表控件中的运行总和,当控件所基于的字段位于报表的记录源中时,可以使用控件的RunningSum属性,DSum函数还可用来保持窗体上的运行总和。
注释:
使用该函数时,对domain中记录未保存的更改将不包括在内。
如果要让DSum函数基于更改后的数据,必须先保存更改。
方法是单击“记录”菜单上的“保存记录”命令,或者将焦点移动到另一个控件,或使用Update方法。
6、在窗体和报表中使用域合计函数的示例
下表列出了可在窗体和报表中的计算控件上使用的表达式示例:
表达式
说明
=DLookup("[合同名称]","[供应商]","[供应商号]=Forms!
[供应商号]")
使用DLookup函数显示“供应商”表的“供应商号”字段值等于活动窗体上的“供应商号”控件值时的“合同名称”字段值。
=DLookup("[合同名称]","[供应商]","[供应商号]=Forms!
[新供应商]!
[供应商号]")
使用DLookup函数显示“供应商”表的“供应商号”字段等于“新供应商”窗体中的“供应商号”控件值时的“合同名称”字段值。
=DSum("[订单价值]","[订单]",
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 函数 表达式 标准 规定 样式