Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

常用函数举例

时 间:2010-02-10 09:40:14
作 者:王樵民   ID:5203  城市:郑州
摘 要:介绍了一些常用函数
正 文:

常用函数举例

1.         转换

所谓转换就是从一种格式转换为另一种格式,比如数字转换成字符串,字符串转换成数字等。

Access 2007的帮助中该类函数共有16个,这里只介绍一些常用的函数,其它函数的使用方法请查看联机帮助文档。

l  数字转字符串函数Str(数字)

Str()函数是将一个数值转换成字符串,例:Str(9999.863),其结果是“ 9999.863Str(-9999.863),其结果是“-9999.863如果含有字母,系统将出现错误。

当一数字转成字符串时,总会在前头保留一空位来表示正负。如果数字为正,返回的字符串包含一前导空格暗示有一正号。

可以使用 Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自定义格式。与 Str 不同的是,Format 函数不包含前导空格来放置数字的正负号。

注意:Str 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,国际性的应用程序),可使用 CStr 将数字转成字符串。

l  字符串转数字函数Val(字符串)

Val函数是将一个数值型字符串转换成数值,例:Val(9999.863”),其结果是9999.863Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

下面的例子返回值为 1615198

    Val("    1615 198th Street N.E.")

在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1

    Val("&HFFFF")

如果字符串的首位是字母,其结果为0

l  空值处理函数Nz(表达式)

空值处理函数Nz是专门用来处理表达式空值的,如果该表达式是值为Null时,可以使用 Nz 函数返回零、零长度字符串(零长度字符串:不含字符的字符串。可以使用零长度字符串来表明您知道该字段没有值。输入零长度字符串的方法是键入两个彼此之间没有空格的双引号 ("")

如果表达式不为空,则原样返回。

这个函数十非常有用的,因为在Access中空值是不被处理的,比如介绍逻辑运算符时就已经有这类情况发生,表达式1 or 表达式2,只要有一个为空,结果必定为空,这就会引起逻辑判断上的错误,不能真实反映其判断结果,再比如在计算两个表达式的值时,也会出现异常,假设在VBA中有下面一段程序:

A=18.69

B=Null

C=A+B

其结果C等于Null,这不是想要的结果,如改成C=Nz(A)+Nz(B),其结果为18.69

2.         日期函数

Access 2007的帮助中该类函数共有19个,但笔者认为应该是20个,其中Day()函数归到转换函数里,也可以归到日期函数中,表示取日期数据月的天数。

l  当前系统日期函数Date()

返回当前系统的日期,在任何可以使用表达式的地方都可以使用 Date 函数。例如,您可以如下设置窗体上文本框的控件来源属性:=Date()在窗体视图中打开窗体时,该文本框会显示当前系统日期。

l  当前系统日期和时间函数Now()

返回当前系统的日期和时间,在VBA中可以这样使用该函数。例:

Dim 今天

今天 = Now()

Access 2007中,可以使用中文来定义变量,有关变量在以后的章节中介绍。

l  当前系统时间函数Time()

l  返回添加了指定时间间隔的日期DateAdd()

其语法为:DateAdd(时间间隔,间隔数,日期)

时间间隔表示间隔按年还是月或者其它,间隔数表示增加的数量,也可以是负数,如果是负数,则返回过去的日期。

该函数带三个参数,每个参数都是必选的,如表1所示。例如获得3个月前的日期,就可以使用该函数,下面举例:

设置窗体上文本框的控件来源属性:=DateAdd("m",-3,Date()),在窗体视图中打开窗体时,该文本框会显示前3个月的日期。

1 DateAdd函数参数说明

参数

说明

时间间隔

必选。字符串表达式 (字符串表达式:任一求值为一列连续字符的表达式。表达式的元素可以是:返回字符串或字符串 Variant (VarType 8) 的函数;字符串字面值、常量、变量或 Variant。),表示要添加的时间间隔。

间隔数

必选。数值表达式 (数值表达式:计算结果为数字的任何表达式。表达式可以是变量、常数、函数和运算符的任意组合。),标识要添加的间隔数。它可以为正(以获取将来的日期)也可以为负(以获取过去的日期)。

日期数据

必选。变量型(日期型)或文字,表示已添加间隔的日期。

时间间隔参数是系统规定好的符号,分别代表不同的含义,具体含义如表2所示。

2时间间隔符号的含义

设置符号

说明

yyyy

q

季度

m

y

某年的某一天

d

w

工作日

ww

h

n

s

注意:使用该参数时要加引号,如果计算后的日期在 100 年前(即减去的年数大于 date 中的年数),则会出错。

如果 间隔数不是 Long Long 数据类型:存储大型整数的基本数据类型。Long 变量存储为 32 位数的值,范围介于 -2,147,483,648 2,147,483,647 之间。) 类型的值,则会在求值前将其四舍五入为最近的整数。

l  返回两个指定的日期之间的时间间隔数DateDiff()

3.         财务函数

l  余额递减法求折旧函数DDB()

其语法格式:DDB(初始成本, 剩余价值, 折旧年限, 期间,倍数),其中倍数是可选项,默认值等于2,如果省略该参数,默认为双倍余额递减法求折旧。

例:使用双倍余额递减法求折旧求资产原值等于50005年后剩余价值等于50第一年的折旧,其函数的写法为:DDB(5000,50,5,1),结果返回2000,第二年的折旧算法:DDB(5000,50,5,2),结果返回1200

4.         域聚合函数

l  查找特定值函数DLookup()

该函数从一个记录集中取某一字段的值,例:假设一个用户表中含有帐户名、密码、真实姓名三个字段,要判断输入的帐号和密码正确否,如果正确,表示合法用户,不正确就是非法用户,就可以利用该函数来判断。

例:

If Nz(DLookup("帐号", "用户", "帐号='wang' and 密码='123'")) <> "" Then

 MsgBox ("合法用户")

Else

 MsgBox ("非法用户")

End If

这里用了VBA编程的方法对该函数进行了举例。

l  求和函数DSum()

例:计算“销售”表中“销售员”为“张三”的销售总额

=Dsum("销售金额", "销售", "销售员= '张三'")

l  求平均值函数DAvg()

l  求记录数函数DCount()

域聚合函数常用于对一个记录集中进行查找、求平均、求和等操作,其语法的基本格式为:

函数名(“字段名”,“记录集名”,“条件”)

域聚合函数的基本用法参数如表3所示。

3域聚合函数的基本用法参数说明

设置符号

说明

字段名

必选。用于标识对那个字段进行操作。

记录集名

必选。用于标识使用那个记录集,可以是表名或查询名。

条件

可选。字符串表达式,用于限制执行 函数的数据范围。

5.         数学函数

l  取整函数Int()

l  四舍五入函数Round()

6.         邮件函数

l  Msgbox()

显示一条消息对话框,等待用户单击按钮,然后返回一个指示用户所单击按钮的 Integer 值。

语法:

    MsgBox(prompt [, buttons ] [, title ] [, helpfile ] [, context ] )

MsgBox 函数的语法包含以下参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):

其中[]表示是可选参数,其参数如表4所示。

4Msgbox函数参数说明

参数

说明

prompt

必选。字符串表达式 (字符串表达式:任一求值为一列连续字符的表达式。表达式的元素可以是:返回字符串或字符串 Variant (VarType 8) 的函数;字符串字面值、常量、变量或 Variant。),在对话框中显示为消息。prompt 的最大长度约为 1024 个字符,具体长度取决于所用字符的宽度。如果 prompt 包含多行,可在各行之间使用回车符 (Chr(13))、换行符 (Chr(10)) 或回车符与换行符的组合 (Chr(13) & Chr(10)) 来分隔各行。

buttons

可选。其值为数值表达式 (数值表达式:计算结果为数字的任何表达式。表达式可以是变量、常数、函数和运算符的任意组合。),它是值的总和,这些值指定要显示的按钮的数目和类型、要使用的图标样式、默认按钮的标识以及消息框的模态。如果省略此参数,则 buttons 的默认值为 0

title

可选。字符串表达式,显示在对话框的标题栏中。如果省略 title,则标题栏中将显示应用程序名称。

helpfile

可选。字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果提供 helpfile,必须同时提供 context

context

可选。其值为数值表达式,它是帮助文件的作者为相应帮助主题分配的帮助上下文编号。如果提供 context,必须同时提供 helpfile

buttons 参数的设置如表5所示:

5buttons 参数的设置

常量

说明

vbOKOnly

0

仅显示确定按钮。

vbOKCancel

1

显示确定取消按钮。

vbAbortRetryIgnore

2

显示终止重试忽略按钮。

vbYesNoCancel

3

显示取消按钮。

vbYesNo

4

显示按钮。

vbRetryCancel

5

显示重试取消按钮。

vbCritical

16

显示重要消息图标。

vbQuestion

32

显示警告查询  图标。

vbExclamation

48

显示警告消息  图标。

vbInformation

64

显示信息性消息图标。

vbDefaultButton1

0

第一个按钮为默认值。

vbDefaultButton2

256

第二个按钮为默认值。

vbDefaultButton3

512

第三个按钮为默认值。

vbDefaultButton4

768

第四个按钮为默认值。

vbApplicationModal

0

应用程序模式;用户必须对消息框做出响应,然后才能继续在当前应用程序中工作。

vbSystemModal

4096

系统模式;所有应用程序都将挂起,直到用户对消息框做出响应为止。

vbMsgBoxHelpButton

16384

向消息框中添加帮助按钮

VbMsgBoxSetForeground

65536

将消息框窗口指定为前台窗口

vbMsgBoxRight

524288

文本右对齐

vbMsgBoxRtlReading

1048576

指定文本在希伯来语和阿拉伯语系统中应按从右向左的顺序显示

第一组值 (0–5) 说明了对话框中所显示按钮的数目和类型;第二组值(16324864)说明图标样式;第三组值(0256512)决定哪个按钮是默认值;第四组值(04096)决定消息框的模态。当添加数字以创建 buttons 参数的最终值时,每组值中只能使用一个数字。

注释:这些常量是由 Visual Basic for Applications 指定的。因此,可以在代码中的任意位置使用这些名称来替代实际值。

MsgBox 函数的返回值如表6所示。

 

 

6MsgBox 函数的返回值

常量

说明

vbOK

1

确定

vbCancel

2

取消

vbAbort

3

终止

vbRetry

4

重试

vbIgnore

5

忽略

vbYes

6

vbNo

7

如果除了第一个命名参数以外还要指定其他参数,则必须在表达式中使用 MsgBox。若要省略某些位置,则必须包含相应的逗号分隔符。

示例:

Msgbox("尊敬的朋友,您好!")

1只有一个参数的应用

以下示例演示了此功能在窗体上的一个命令按钮使用,Visual Basic for Applications (VBA) 所编写的一段小程序。MsgBox("尊敬的朋友,您好!", vbOKCancel, "信息确认")表示信息提示框的标题是“信息确认”,提示的信息为“尊敬的朋友,您好!”,只有“确定”和“取消”按钮,如果单击了该命令按钮,就会出现如图2所示的提示对话框,单击“确认”按钮,就会出现图3所示的提示信息,单击“取消”按钮,就会出现如图4所示的提示信息。

2命令按钮执行后

3在图2中单击“确认”按钮

4在图2中单击“取消”按钮

下面就是这个命令按钮的VBA程序:

Private Sub Command3_Click()

Dim QueRen

QueRen = MsgBox("尊敬的朋友,您好!", vbOKCancel, "信息确认")

If QueRen = 1 Then

 MsgBox ("按了确认按钮")

Else

 MsgBox ("按取消按钮")

End If

End Sub

 



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助