收藏 分享(赏)

Access的编程语言.ppt

上传人:saw518 文档编号:6001389 上传时间:2019-03-23 格式:PPT 页数:101 大小:1.65MB
下载 相关 举报
Access的编程语言.ppt_第1页
第1页 / 共101页
Access的编程语言.ppt_第2页
第2页 / 共101页
Access的编程语言.ppt_第3页
第3页 / 共101页
Access的编程语言.ppt_第4页
第4页 / 共101页
Access的编程语言.ppt_第5页
第5页 / 共101页
点击查看更多>>
资源描述

1、第7章 Access的编程语言 VBA,本章学习要点,VBA的功能 VBA的语法 VBA的程序结构 VBA生成器 创建VBA程序的各种方法 通用过程和事件过程的区别与应用 过程与模块 VBA程序的调试,7.1 VBA编程介绍,了解VBA VBA的编写环境 一个简单的VBA程序,7.1.1 了解VBA,VBA是由VB开发和整合而来。VBA集成在Office办公软件中,用来开发应用程序。 VBA的特点 定义用户自己的函数。Access提供了许多计算函数,但是有些特殊函数Access是没有提供的,需要用户自己来进行定义。比如用户可以定义一个函数来计算圆的面积、定义函数执行条件判断等。 编写包含有条件

2、结构或者循环结构的表达式。 想要打开两个或者两个以上的数据库。 将宏操作转换成VBA代码,就可以打印出VBA源程序,改善文档的质量。,7.1.1 了解VBA,VBA里也有对象、属性、方法、事件等。 对象:就是代码和数据的一个结合单元,例如表、窗体、文本框都是对象。一个对象是由语言中的“类”来定义的。 属性:就是定义的对象特性,如大小、颜色和对象状态等。 方法:就是对象能够执行的动作,如刷新等。 事件:就是对象能够辨识的动作,如鼠标单击、双击等。,7.1.2 VBA的编写环境,Microsoft Access中包含了VBE,即Visual Basic Environment,它是VBA程序的编辑

3、、调试环境。 直接进入VBE。 在数据库中单击【数据库工具】选项卡,单击【宏】组中的Visual Basic按钮,进入VBA的编程环境,如下图所示。,7.1.2 VBA的编写环境,新建一个模块,进入VBE。 在数据库中单击【创建】选项卡,在【其他】组中单击【宏】按钮,在弹出的菜单中选择【模块】按钮,新建了一个VBA模块,并进入VBA编程环境,如下图所示。,7.1.2 VBA的编写环境,新建用于响应窗体、报表或控件的事件过程进入VBE。 在控件的【属性表】窗格中,进入【事件】选项卡,在任一事件的下拉列表框中选择【事件过程】选项,再单击后面的 按钮,为这个控件添加事件过程,如下图所示。,7.1.2

4、 VBA的编写环境,通过以上各种方法,均可以进入VBE,进入的VBE如下图所示。,7.1.2 VBA的编写环境,可以看到,VBA的开发环境窗口,除去熟悉的菜单栏和工具栏以外,其余的屏幕可以分为三个部分,分别为【代码】窗口、【工程】窗口和【属性】窗口。 【代码】窗口:该窗口是模块代码的编写、显示窗口,在该窗口中实现Visual Basic代码的输入和显示。打开【代码】窗口以后,可以对不同模块中的代码进行查看,并且可以通过鼠标右键进行代码的复制、剪切和粘贴操作。该窗口如下图所示。,7.1.2 VBA的编写环境,【工程】窗口:在该窗口中用一个分层结构列表来显示数据库中的所有工程模块,并对它们进行管理

5、。双击【工程】窗口中的某个模块,就立即在【代码】窗口中显示这个模块的VBA程序代码。该窗口如下图所示。 【属性】窗口:在该窗口中可以显示和设置选定的VBA模块的各种属性。该窗口如下图所示。,7.1.3 一个简单的VBA程序,编写一个弹出对话框显示“Hello World!”文本的VBA程序。,第一步:启动Access 2007,新建一个数据库,命名为“VBA示例.accdb”。,第二步:单击【数据库工具】选项卡下【宏】组中的Visual Basic按钮,进入VBA的编程环境,如下图所示。,第三步:选择【插入】菜单命令,在弹出的菜单中选择【模块】命令,或者单击编辑器中的【新建模块】按钮,新建一个

6、“模块1”。,7.1.3 一个简单的VBA程序,编写一个弹出对话框显示“Hello World!”文本的VBA程序。,第四步:弹出“模块1”的【代码】窗口,在【代码】窗口中输入如下图所示的VBA代码。,第五步:单击【保存】按钮,将该模块命名为“HellloWorld”,如下图所示。,7.1.3 一个简单的VBA程序,编写一个弹出对话框显示“Hello World!”文本的VBA程序。,第六步:把鼠标光标放在模块中的任意位置,按下F5键运行该程序。这个程序的结果就是弹出如下图所示的提示对话框。,7.1.3 一个简单的VBA程序,这样我们就创建了第一个VBA程序,下面我们对以上代码进行分析。 Su

7、b:标志这是一个VBA的Sub过程,关于“过程”的概念,我们将在后面进行介绍。 MsgBox:VBA的命令语句,它的作用是弹出信息窗口。 HelloMsg():“HelloMsg”是这个过程的名字,小括号“()”也是必须的。 End Sub:标志该过程的结束。,7.2 VBA语法介绍,基本数据类型 常量、变量和数组 VBA运算符 VBA内部函数 VBA的程序语句,7.2.1 基本数据类型,字符串类型 字符串就是一个字符的序列,例如字母、数字、标点、汉字等都可以定义为字符串类型,简单地说,字符串就是对应的键盘输入的字符。 定义字符串型数据的方法为: Dim str1 as String str1

8、=“请输入您的姓名“,7.2.1 基本数据类型,数值类型 数值类型,就是可以进行数学计算的数据。在VBA中,数值类型又可以分为下列几种。 整型数据占两个字节空间,其范围为-3276832767。在对整型数据变量进行声明时,有两种方法,一种是直接使用Integer关键字,另一种是直接在变量的后边附加一个百分比符号(%),例如: Dim a as Integer Dim b% 长整型数据的存储空间为4个字节共32位,其范围为-21474836482147483647。不知读者是否还记得在介绍数据表的时候,我们曾设置一个“学号”字段为数字型,由于学号范围为5033010150330430,因此我们选

9、用的是长整型。 单精度浮点型的存储空间为4个字节共32位,双精度浮点型的存储空间为8个字节共64位。,7.2.1 基本数据类型,其他类型 货币类型 货币类型是为了进行钱款的储存和表示而设置的,该类型以8字节(64位)进行存储,并且小数点位数是固定的。 货币类型的数据定义方式为: Dim totalcost as Currency 变体数据类型(Variant) 变体数据类型就是在数据定义时不直接定义数据类型,在以后的调用中可以改变为不同的数据类型,它可以表示任何值,包括上面介绍的字符、数值、货币等。,7.2.1 基本数据类型,其他类型 布尔类型(Boolean) 布尔类型是一个逻辑值,用2个字

10、节存储,它的取值只有两种,即“True”或“False”。 声明布尔类型的语法为: Dim I as Boolean 日期类型(Date) VBA中用来存储日期、时间的数据结构为日期类型。它占用8个字节来表示日期和时间,是浮点型的数值形式。日期类型数据的整数部分存储为日期值,小数部分存储为时间值。 日期类型在定义时必须用“”号括起来,定义语法为: D im birthday as Date BirthdayJun12th, 1985,7.2.1 基本数据类型,下面是我们常用到的数据类型,汇总如下。,7.2.1 基本数据类型,其他类型 用户自定义的数据类型 除了上面所述系统提供的数据类型以外,V

11、BA还允许用户自己定义数据类型,其格式如下:,Type 数据类型名 数据类型元素名 as 系统数据类型名 End Type 例如下面的例子: Type student Stdnumber as String Stdname as String Stdresult as Integer Stdgraduate as Boolean End Type,7.2.2 常量、变量和数组,定义变量 变量的值是可以改变的,变量是程序中最重要的概念之一。 一个变量有如下三个要素。 变量名:通过变量名来指明数据在内存中的存储位置。 变量类型:变量的数据类型决定了数据的存储方式和数据结构。VBA应用程序并不要求在

12、使用变量之前必须进行变量声明。如果使用一个没有明确声明的变量,系统会将它默认为Variant型。 变量的值:即内存中存储的变量值,它是可以改变的量,在程序中可以通过赋值语句来改变变量的值。,7.2.2 常量、变量和数组,在VBA中声明变量是按照如下的格式进行的: 定义词 变量名 as 数据类型 在这里,定义词可以是Dim、Static、Public等,“as”是说明变量定义的关键词,数据类型可以是系统提供的数据类型,也可以是用户自己定义的数据类型。 Pubic用于声明全局变量,Static定义的是静态变量。Dim是最常用的定义词,可以用来定义变量和定义数组。,7.2.2 常量、变量和数组,定义

13、常量 在VBA中,常量的来源一般有两种。 第一种,就是系统内部定义的常量,例如vbOK、vbYes等,通常是由应用程序和各种控件提供。Visual Basic中的常量都列在VBA类型库以及数据访问对象(DAO)程序库中。 第二种,就是用户使用Const语句自己定义的常量。 用户可以使用Const语句自定义常量并设定常量的值,其定义的格式为: Const 常量名 表达式 as 类型名 ,Const Price300 Const School“Nanjing University of Aeronautics and Astronautics“ 第一个例子我们定义了Price为一个实数型常量。 第

14、二个例子我们定义了School为一个字符串型常量。,7.2.2 常量、变量和数组,定义数组 数组是一批相关数据的有序集合,本质上就是一组顺序排列的同名变量,其中每一个变量的排列顺序号叫做变量的下标,而每一个带有不同顺序号的同名变量,叫做这个数组的一个元素。在定义了数组以后,可以引用整个数组,也可以引用数组中的某一个元素。 数组的声明方式和其他变量是一致的,我们可以用Dim、Static、Public语句来声明,声明的方法为: Dim 数组名称(数组范围)as 数据类型,例如,在下面的例子中我们定义了2个数组: Dim Array1(20)as String Dim Array2()as Str

15、ing 我们可以看出,数组Array1为大小是20的数组,Array2是一个动态数组。,7.2.3 VBA运算符,算术运算符 求幂运算:用来计算乘方和方根,例如28表示2的8次方,而2(1/2)或20.5是计算2的平方根。 浮点除法:执行标准的除法运算,结果为浮点数,例如5/3的结果为1.6666。 整数除法:执行整除运算,结果为整型值,因此32的结果为1,不四舍五入。 求余运算:用来求取余数,例如7 mod 4的结果为3。,7.2.3 VBA运算符,在VBA的编辑视图中,选择【视图】菜单中的【立即窗口】选项,在VBE中出现【立即窗口】,下面我们就在【立即窗口】中实验上面我们讲到的各个例子。在

16、【立即窗口】中输入如下所示的语句。 a=28Print a按下Enter键以后,可以看到返回的结果为“256”。按同样的方法,依次输入下面的表达式,得到各自的运算结果。print 2(1/2)返回结果为“1.4142135623731”。同样,“print 5/3”的返回结果为“1.66666666666667”;“print 53”的返回结果为“1”;“print 7 mod 4”的返回结果为“3”。运行结果如下图所示。,7.2.3 VBA运算符,为了练习我们介绍过的定义常量、变量和算术运算符,下面我们再编写一个小程序来演示上面的运算表达式,例如我们建立一个hello()过程,如下图所示。,

17、程序代码如下: Sub exactdivide()Dim a As SingleDim b As SingleDim c As Singlea = 13.78b = 3.28MsgBox (a b) End Sub,7.2.3 VBA运算符,单击工具栏上的【运行】按钮或者直接按F5键执行应用程序,弹出运行结果窗口如下所示。,如果把上面的整除运算符改写为浮点运算符,如上面中的floatdivide()过程,其运算结果变成如下所示。,7.2.3 VBA运算符,比较运算符 在VBA中提供了8种运算关系运算符,如下表所示。,用比较运算符连接两个算术表达式便构成了关系表达式,关系表达式的结果便是上面所讲

18、过的逻辑值。在VBA中把任何非0的值都认为是“真”,但是一般来说,以-1表示“真”,以0表示“假”。,7.2.3 VBA运算符,比较运算符,如下面的例子,进一步说明比较运算符的运行结果。 Sub compare()Dim a As SingleDim b As Singlea = 13.78b = 3.28MsgBox (a b) End Sub,运行结果为:,也可以直接在【立即窗口】中输入如左图所示的代码,返回的结果一个是对话框“True”,另一个是打印出逻辑值“True”。,7.2.3 VBA运算符,逻辑运算符VBA中的逻辑运算符主要有以下6种。,7.2.3 VBA运算符,Not:进行“取

19、反”运算,类似一个动词,例如:,122 值应该为True,但是,Not(122) 值为False,如下图所示。,7.2.3 VBA运算符,And:对两个表达式进行比较,如果两个表达式的值均为True,则表达式的结果为True,只要有一个表达式的值不为True,则该逻辑表达式的结果为False。例如:Or:对两个表达式进行比较,只要有一个表达式的值为True,则该逻辑表达式的结果为True,只有当两个表达式的值均为False时,逻辑表达式的结果才为False。例如:,(122)And(123) 值为False。,(122)Or(123) 值为True,如下图所示。,7.2.3 VBA运算符,Xo

20、r:异或运算符,如果两个表达式的值同时为True或者同时为False,则该逻辑表达式的结果为False,否则为True。例如: Eqv:等价运算符,如果两个表达式的值同时为True或者同时为False,则该逻辑表达式的结果为True,否则为False。例如:,(122)Xor(123) 值为False。,(122)Eqv(123) 值为True,如下图所示。,7.2.3 VBA运算符,在VBA中,各种运算符的优先顺序如下。 首先进行函数运算。 进行算术运算,算术运算又有自己的优先级,顺序为:指数()乘法和浮点除(*、/)整除()取余(Mod)加减(+、-)连接符(&)。 进行关系运算,即=、等

21、。 最后进行逻辑运算,顺序为:Not And Or Xor Eqv。,7.2.4 VBA内部函数,VBA中,系统提供了丰富的内部函数供开发者调用,如sin()、abs()等,在使用函数时要注意以下几点。 函数的名称:在每一种编程语言中每个数学函数都有固定的名称,例如Sin()函数求正弦,Sqrt()函数求平方根等。 需要说明的是,函数名一般不区分大小写。 函数的参数:函数的参数相当于数学函数中的自变量,参数跟在函数名的后面,并用小括号“()”括起来,例如Sin(x)、Abs(a-b)等。当函数的参数超过一个时,各个参数之间用逗号“,”分隔开来。当函数没有参数或参数个数为零时,直接写上函数名即可

22、。 函数参数及结果的数据类型:不同的函数要求有不同的数据类型,同样函数的结果也不相同,例如Sin(x)函数和Now()函数的不同结果。,7.2.4 VBA内部函数,数学函数 Abs():Abs()函数用于计算某数的绝对值,如下例所示。Sqr():Sqr()函数用于计算某数的平方根,如下例所示。Log():Log()函数用于计算某数的自然对数值,如下例所示。 Cos():Cos()函数用于计算一个角的余弦值,如下例所示。,Dim MyNumber MyNumber = Abs(-50.3) 返回 50.3,Dim MySqr MySqr = Sqr(23) 返回 4.79583152331272

23、,Dim MyNumber MyNumber = Log(50) 返回 50的自然对数值,Dim MyCos MyCos = Cos(1.5) 返回弧度1.5的余弦值,7.2.4 VBA内部函数,Sin():Sin()函数用于计算一个角的正弦值,和Cos()函数的作用类似。 Int():Int()函数用于返回某数的整数值,如下例所示。,Dim MyNumber MyNumber = Int(99.8) 返回 99,在【立即窗口】中运行各个函数,如下图所示。,7.2.4 VBA内部函数,类型转换函数 CBool():返回任何有效的字符串或数值表达式的布尔运算值。 CDbl():将字符串或数值转换

24、为双精度型。 CInt():将字符串或数值转换为整型。 CLng():将字符串或数值转换为长整型。 CSng():将字符串或数值转换为单精度型。,在【立即窗口】中运行各个函数,如下图所示。,7.2.4 VBA内部函数,时间处理函数 Date():使用Date()函数返回系统当前的日期,如下例所示。 Time():使用Time()函数返回系统当前的时间,如下例所示。Now():使用Now()函数返回系统当前的日期与时间,如下例所示。,Dim MyDate MyDate = Date MyDate 的值为系统当前的日期,Dim MyTime MyTime = Time 返回系统当前的时间,Dim

25、Today Today = Now 将系统当前的日期与时间赋给变量Today,在【立即窗口】中运行各个函数,如左图所示。,7.2.4 VBA内部函数,字符串处理函数Left():使用Left()函数来得到某字符串左边算起的几个字符,如下图所示。 Right():使用Right()函数来返回某字符串右边算起的几个字符,与Left()函数类似。 LTrim()、RTrim()、Trim():使用Ltrim()及Rtrim()函数将某字符串的开头及结尾的空格全部去除。事实上只使用Trim()函数也可以做到将两头空格全部去除。,Dim AnyString, MyStr AnyString = “Hel

26、lo World“ 定义字符串 MyStr = Left(AnyString, 1) 返回 “H“ MyStr = Left(AnyString, 7) 返回 “Hello W“,在【立即窗口】中运行各个函数,如左图所示。,7.2.4 VBA内部函数,其他函数 MsgBox():在对话框中显示消息,等待用户单击按钮。 Rnd():使用Rnd()函数随机生成一个01之间的单精度小数,如下例所示。,Dim MyValue MyValue = Int(6 * Rnd) + 1) 生成 1 到 6 之间的随机整数,在【立即窗口】中运行各个函数,如下图所示。,7.2.5 VBA的程序语句,VBA的程序语

27、句主要可以分为以下几种。 声明语句:用于为变量、常数或程序取名称,并指定一个数据类型。 赋值语句:用于指定一个值或表达式为变量或常数。 可执行语句:它会初始化动作,可以执行一个方法或者函数,并且可以循环执行或从代码块中执行。可执行语句中包含算术运算符或条件运算符。,7.2.5 VBA的程序语句,任何编程语言都要满足一定的语法要求,以下是一些基本的语法规定。 每个语句的最后都要按Enter键结束。 多个语句写在同一行时,各个语句之间要用“:”隔开。 一个语句可以写在多行,各行的末尾用下划线“_”表示续行,并且下划线至少应当和它前面的字符保留一个空格,否则直接将下划线和字符当作一个字符了。 语句中

28、的命令词、函数、变量名、对象名等不必区分大小写。,7.2.5 VBA的程序语句,VBA具有自动的“语法联想功能”,在输入语句的过程中VBE将自动对输入的语句做检查联想。如果发现输入的是一个内部函数,则会自动弹出该函数的语法提示框;如果发现输入的是一个对象,则会弹出让用户选择操作命令的菜单,如下图所示。,7.2.5 VBA的程序语句,赋值语句 赋值语句可以将特定的值赋给某个变量或者某个对象属性,如下面的例子:,a=5 Mytext.text=“Hello World! “ int1=int1+1,7.2.5 VBA的程序语句,结束语句 结束语句只有一个命令字符,即End。它主要用来结束一个程序的

29、执行。例如下面是一个最简单的结束事件过程的例子。,Sub this_click()End End Sub,7.2.5 VBA的程序语句,输入语句 InputBox函数,用于输入数据。它可以产生一个对话框,这个对话框作为输入数据的界面,等待用户输入数据,并返回所输入的内容。 InputBox(Prompt, Title, Default, Xpos, Ypos, Helpfile, Context) 各个参数的具体含义如下。 Prompt:必填字段。用以显示在对话框中的 消息。 Title:可选字段。显示对话框标题栏中的字符串表达式。如果省略Title,则把应用程序名放入标题栏中。 Defaul

30、t:可选字段。显示文本框中的字符串表达式,在没有其他输入时作为缺省值。如果省略Default,则文本框为空。 Xpos:可选字段。指定对话框的左边与屏幕左边的水平距离。如果省略Xpos,则对话框会在水平方向居中。 Ypos:可选字段。指定对话框的上边与屏幕上边的距离。如果省略Ypos,则对话框被放置在屏幕垂直方向距下边大约三分之一的位置。 Helpfile:可选字段。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了Helpfile,则也必须提供Context。 Context:可选字段。数值表达式,由帮助文件的作者指定给适当帮助主题的帮助上下文编号。如果提供了Contex

31、t,则也必须提供Helpfile。,7.2.5 VBA的程序语句,下面就是一个完整的设置MsgBox函数各个参数的例子。过程代码如下所示。,Sub InputBoxfunction()Dim Message, Title, Default, MyValueMessage = “请输入1到10的一个值:“ 设置提示信息Title = “InputBox Demo“ 设置标题Default = “1“ 设置缺省值 显示信息、标题及缺省值MyValue = InputBox(Message, Title, Default) 使用帮助文件及上下文“帮助”按钮便会自动出现MyValue = InputB

32、ox(Message, Title, , , , “DEMO.HLP“, 10) 在 100, 100 的位置显示对话框MyValue = InputBox(Message, Title, Default, 100, 100) End Sub,7.2.5 VBA的程序语句,此时的视图如下图所示。,将光标定位在过程中的任意位置,按下F5键执行该过程,则将依次弹出3个对话框,第一个对话框将显示信息、标题和缺省值,如下图所示。,第二个对话框将显示使用帮助文件及上下文。【帮助】按钮将会自动出现,如下图所示。,第三个对话框将在距上方和左方各100的位置显示对话框,并将显示默认值。,7.2.5 VBA的程

33、序语句,输出语句 在VBA中,【立即窗口】主要用于程序的调试,输入代码如下: Debug. Print(表达式),例如我们曾经用到的:在【立即窗口】中输入“Print 2(1/2)”,在【立即窗口】中显示2(1/2)的值;而如果在【代码】窗口中输入“Debug.Print 2(1/2)”,则也是在【立即窗口】中显示2(1/2)的值,如下图所示。,7.2.5 VBA的程序语句,输出语句MsgBox函数也可以输出计算结果。 其完整语法为:MsgBox(Prompt, Buttons, Title, Helpfile, Context) 各个参数的具体含义如下。 Prompt:必填字段。用以显示在对

34、话框中的消息。 Buttons:可选字段。用以指定显示按钮的数目及形式,使用的图标样式。如果省略,则Buttons的缺省值为0。 Title:可选字段。在对话框标题栏中显示的字符串表达式。如果省略Title,则将应用程序名放在标题栏中。 Helpfile:可选字段。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了Helpfile,则也必须提供Context。 Context:可选字段。数值表达式,由帮助文件的作者指定给适当帮助主题的帮助上下文编号。如果提供了Context,则也必须提供Helpfile。,7.2.5 VBA的程序语句,下面就是一个完整的设置MsgBox函数

35、各个参数的例子。过程代码如下所示。,Sub Msgfunction() Dim Msg, Style, Title, Help, Ctxt, Response, MyStringMsg = “Do you want to continue ?“ 定义信息。Style = vbYesNo + vbCritical + vbDefaultButton2 Title = “MsgBox Demonstration“定义标题Help = “DEMO.HLP“ 定义帮助文件Ctxt = 1000 定义标题Response = MsgBox(Msg, Style, Title, Help, Ctxt)If

36、 Response = vbYes Then 用户按下“是” MyString = “Yes“ 将Yes字符串赋给变量Else 用户按下“否” MyString = “No“ 将No字符串赋给变量End If End Sub,关于各个按钮对应的值以及常数,用户可以查阅相关的手册。【代码】窗口如下图所示。,代码运行的运行结果为:,7.3 创建VBA程序,顺序结构程序 选择结构程序 循环结构语句 VBA程序与宏的关系,7.3.1 顺序结构程序,顺序结构,这是最简单的基本结构,它是在执行完一条语句之后,继续执行第二条语句。如我们在上面编写的各个小例子,几乎都是这种类型。,7.3.1 顺序结构程序,在

37、数据库中,建立一个能够计算半径为20的圆面积的模块。,第一步:启动Access 2007,打开“VBA示例.accdb”数据库。,第二步:单击【创建】选项卡下【宏】按钮下面的小箭头,弹出菜单如下图所示。,第三步:选择【模块】选项,新建一个模块,并进入VBA编辑器,如下图所示。,7.3.1 顺序结构程序,在数据库中,建立一个能够计算半径为20的圆面积的模块。,第四步:在弹出的“模块1”【代码】窗口中输入自己编写的程序,输入代码如下所示。 Sub sequence()Dim r As Single 定义半径Dim square As Single 定义存放面积的字符Const PI = 3.141

38、6 设置常数PIr = 20square = PI * r * r 面积计算公式MsgBox square 以对话框形式显示结果 End Sub,此时的【代码】窗口如左图所示。,第五步:将光标定位在过程中的任意位置,按下F5键执行该程序,得到运算结果为1256.64,如下图所示。,7.3.2 选择结构程序,If语句 单行结构的IF语句格式 If then Else 如果“条件”为True,则执行then后面的“语句1”,否则执行Else后面的“语句2”。 块状结构的If语句格式,If then语句块1 Else语句块2 End If,If then语句块1 Elseif then语句块2 El

39、seif then语句块n Else语句块n+1 Endif,7.3.2 选择结构程序,在数据库中,编写一个VBA程序,以实现对输入的分数评定等级。,第一步:启动Access 2007,打开“VBA示例.accdb”数据库。,第二步:单击【数据库工具】选项卡下的Visual Basic按钮,进入VBA编辑环境。,第三步:在编辑器左边的【工程管理器】窗口中双击打开VBA_Structure模块,打开该模块的【代码】窗口,如下图所示。,第四步:在【代码】窗口中编写该程序,输入代码如下所示。,Sub Choose()Dim result As Integerresult = InputBox(“请输

40、入分数“)If result 60 ThenMsgBox “不及格“ElseIf result 75 ThenMsgBox “通过“ElseIf result 85 ThenMsgBox “良好“ElseIf result 100 ThenMsgBox “优秀“ElseMsgBox “输入分数错误“End If End Sub,7.3.2 选择结构程序,在数据库中,编写一个VBA程序,以实现对输入的分数评定等级。,此时的【代码】窗口如下图所示。,第五步:将光标定位在过程中的任意位置,按下F5键执行该程序,弹出输入分数对话框,如下图所示。,7.3.2 选择结构程序,在数据库中,编写一个VBA程序

41、,以实现对输入的分数评定等级。,第六步:在对话框中输入一个整型数值,例如“78”,弹出显示“良好”的对话框,如下图所示。,而如果在对话框中输入“121”,则弹出提示出错对话框,如下图所示。,7.3.2 选择结构程序,Case语句 根据一个表达式的值,在一组相互独立的可选择语句序列中选择要执行的语句序列。,Case分支结构的一般格式为: Select Case 表达式 Case 表达式值1语句块1 Case 表达式值2语句块2 Case 表达式n语句块n Case else语句块n+1End Select,7.3.2 选择结构程序,在数据库中,编写一个VBA程序,以实现对输入字符串的判断。,第一

42、步:启动Access 2007,打开“VBA示例.accdb”数据库。,第二步:单击【数据库工具】选项卡下的Visual Basic按钮,进入VBA编辑环境。,第三步:在编辑器左边的【工程】窗口中双击打开VBA_Structure模块,打开该模块中的【代码】窗口,如下图所示。,7.3.2 选择结构程序,第四步:在【代码】窗口中编写该程序,输入代码如下所示。,Sub Choose2()Dim Str1 As StringDim Str2 As StringStr1 = InputBox(“请输入您的职业:“)Select Case Str1Case “学生“MsgBox “同学,你好!“Case

43、 “工人“MsgBox “师傅,您好!“Case “教师“MsgBox “老师,您好!“Case “工程师“Str2 = InputBox(“请输入您的行业“)If Str2 = “机械“ ThenMsgBox “您是一个机械工程师!“ElseIf Str2 = “IT“ ThenMsgBox “您是一个IT工程师!“ElseIf Str2 = “建筑“ ThenMsgBox “您是一个建筑工程师!“End IfEnd SelectEnd Sub,在数据库中,编写一个VBA程序,以实现对输入字符串的判断。,此时的【代码】窗口如下图所示。,7.3.2 选择结构程序,在数据库中,编写一个VBA程序

44、,以实现对输入字符串的判断。,第五步:将光标定位在过程中的任意位置,按下F5键执行该程序,弹出要求输入职业的对话框,如下图所示。,在对话框中输入“教师”,单击【确定】按钮,弹出对话框如下图所示。,第六步:在对话框中输入“工程师”以后,则会弹出继续让用户选择所属行业的对话框,如下图所示。,单击【确定】按钮以后,弹出对话框如下图所示。,7.3.3 循环结构语句,循环结构,也称重复结构,该结构中包含一个判断语句,根据判断是否成立选择执行重复语句,还是中止执行。,在下面的例子中,我们实现求1到n的阶乘,输入代码如下所示。 Function Factorial(x As Integer) As Long

45、 Dim temp As Long 定义temp存储中间的变量Dim i As Integertemp = 1For i = 1 To x 此为判断表达式temp = temp * i 阶乘语句NextFactorial = temp 将结果赋予返回值 End Function,输入Factorial函数以后,我们再对该函数进行调用,编写如下所示的调用函数。,Sub diaoyong()Dim a As IntegerDim b As Longa = InputBox(“请输入要计算的数值:“)b = Factorial(a)MsgBox (b) End Sub,此时的【代码】窗口如下图所示。

46、,7.3.3 循环结构语句,将光标定位在diaoyong()过程的任意位置,按下F5键运行编写的过程,弹出要求用户输入要求阶乘的数值对话框,如下图所示。,在对话框中输入要计算的数值为10,单击【确定】按钮,弹出计算结果为3628800。,7.3.3 循环结构语句,ForNext循环 使用格式:以上各个语句的作用如下。 循环变量:作为进行循环控制的计数器,是一个数值变量。如上例中的i。 初值:循环变量的初始值,是一个数值表达式。 终值:循环变量的终止值,也是一个数值表 达式。 步长:每次循环,循环变量增加的值,正负均可,但是不能为0。在上例中,步长为1,可以省略不写。 循环体:要执行的循环内容,

47、例如各种操作、赋值、计算等。 Next:终止循环语句,在Next以后,循环终止,程序顺序执行剩余的语句。Next后面的循环变量可以省略不写。,For 循环变量初值 To 终值 Step 步长 循环体 Next 循环变量,7.3.3 循环结构语句,例如下面的例子,我们利用ForNext语句,把20以内的奇数赋给下面的数组。 Private Function Array() As integer Dim array1(9) as integerDim i as integerFor i=1 to 19 step 2array1(i)=inext End Function在VBA中,ForNext循

48、环遵循“先检查,后执行”的原则,即先检查循环变量是否超过终值,然后决定是否执行循环体。循环次数的计算公式为:循环次数int(终值初值)/步长+1,7.3.3 循环结构语句,DoLoop循环 一般格式它的执行过程为:程序顺序执行,当执行到Do while时,对条件进行判断,如果判断结果为True,执行下面的语句块,当向下执行到Loop时,程序自动返回到Do while语句,进行新一轮的判断与循环。只有当判断的结果为False,循环变量不满足判断条件式时,程序跳出语句块,直接执行Loop后面的命令。,Do while 语句块 Loop,7.3.3 循环结构语句,在数据库中,编写一个VBA程序,我们

49、要用DoLoop循环来计算1+2+3+n的值。,第一步:启动Access 2007,打开“VBA示例.accdb”数据库。,第二步:单击【数据库工具】选项卡下的Visual Basic按钮,进入VBA编辑环境。,第三步:在编辑器左边的工程管理器窗口中双击打开VBA_Structure模块,打开该模块中的【代码】窗口,如下图所示。,第四步:在【代码】窗口中编写该程序,输入代码如下所示。,Function Adds(n as inerger) As Integer Dim temp As IntegerDim i As Integertemp = 0 对temp和i赋予初值i = 1Do While i = n 这里是判断条件temp = temp + ii = i + 1 i执行一次相加以后,本身加1LoopAdds = temp 计算结果赋给函数名作为返回值 End Function,7.3.3 循环结构语句,编辑好连加函数以后,就可以在模块中对函数进行引用,编辑如下所示的引用函数。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 开发文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报