数据库语言a课件第八章_第1页
数据库语言a课件第八章_第2页
数据库语言a课件第八章_第3页
数据库语言a课件第八章_第4页
数据库语言a课件第八章_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、VBAVBA编程编程 VBAVBA的功能的功能 VBAVBA的语法、程序结构的语法、程序结构 创建创建VBAVBA程序的方法程序的方法 VBAVBA程序的调试方法程序的调试方法 过程与模块的概念过程与模块的概念 通用过程与事件过程的区别与应用通用过程与事件过程的区别与应用VBAVBA概述概述 VBAVBA是是Visual Basic for ApplicationsVisual Basic for Applications的简称。是的简称。是Visual BasicVisual Basic的一种宏语言,主要是用来扩张的一种宏语言,主要是用来扩张WindowsWindows的应用程序功能,特别是

2、用来对的应用程序功能,特别是用来对Microsoft OfficeMicrosoft Office的的组件进行功能扩展的脚本语言。组件进行功能扩展的脚本语言。 AccessAccess是一种面向对象的数据库,利用面向对象技术是一种面向对象的数据库,利用面向对象技术来进行程序的开发,来进行程序的开发,VBAVBA编程则是编程则是AccessAccess的面向对象开的面向对象开发技术的主要工具。在发技术的主要工具。在AccessAccess的应用中可以发现,单的应用中可以发现,单单是利用前面章节所介绍的功能,并不能完全随心所单是利用前面章节所介绍的功能,并不能完全随心所欲地进行功能的设计,如果要把

3、程序做的足够专业,欲地进行功能的设计,如果要把程序做的足够专业,实现的功能足够多样,是不能离开实现的功能足够多样,是不能离开VBAVBA编程的。编程的。 8.1.1 VBA8.1.1 VBA简介简介 9090年代早期,微软在进行年代早期,微软在进行officeoffice系列产品的开系列产品的开发同时,就注意到了不同的应用程序需要用不发同时,就注意到了不同的应用程序需要用不同的自动化语言进行功能扩展,于是微软决定同的自动化语言进行功能扩展,于是微软决定让其开发出来的应用程序能共享一种通用的自让其开发出来的应用程序能共享一种通用的自动化语言,这就是动化语言,这就是Visual Basic For

4、 Visual Basic For ApplicationVBAApplicationVBA。可以把。可以把VBAVBA看成是看成是VBVB应用应用程序的一个子集,实际上,无论在语法结构、程序的一个子集,实际上,无论在语法结构、使用方法、甚至是应用界面,二者都是十分相使用方法、甚至是应用界面,二者都是十分相似的。作为微软公司开发的似的。作为微软公司开发的Visual BasicVisual Basic可视可视化编程软件,不仅功能强大,且简单易学,化编程软件,不仅功能强大,且简单易学,VBAVBA正是是在正是是在VBVB的基础上进行开发的基础上进行开发. 做为面向对象的编程,做为面向对象的编程,

5、VBAVBA中的对象、属性、方法和事中的对象、属性、方法和事件的概念是很重要的。件的概念是很重要的。 对象对象可以是一个表、窗体或者文本框,可以理解为程可以是一个表、窗体或者文本框,可以理解为程序中的一个操作对象,它是代码和数据相结合的一个序中的一个操作对象,它是代码和数据相结合的一个整体。整体。 属性属性是用来描述对象的特征的数据,例如一个文本框是用来描述对象的特征的数据,例如一个文本框对象,它的大小、边框形式、填充颜色等是它的属性对象,它的大小、边框形式、填充颜色等是它的属性,改变属性的取值可更改对象的特征。,改变属性的取值可更改对象的特征。 方法方法是对象能够执行的操作。例如一个窗体对象

6、,可是对象能够执行的操作。例如一个窗体对象,可以使用刷新、清屏等方法改变窗体的显示。以使用刷新、清屏等方法改变窗体的显示。 事件事件是对象所能辨识和反应的动作。例如鼠标的单击是对象所能辨识和反应的动作。例如鼠标的单击、双击,当某一事件方式时,改变对象的属性或者执、双击,当某一事件方式时,改变对象的属性或者执行一个该对象所具有的动作,就可以实现一个功能。行一个该对象所具有的动作,就可以实现一个功能。 8.1.2 VBA开发环境开发环境 VBA在Access中的编辑需要进入自己的编辑环境,Visual Basic Environment(行程序的编辑、调试的运行环境,这个环境与VB的运行环境十分类

7、似,VBA的编辑环境中,主窗口中具有与VB十分类似的菜单和工具栏,窗口左边是“工程”窗口和“属性”窗口,右边为“代码”窗口,这三个窗口的作用是: 1. “代码”窗口中是用来编写、显示程序代码的。代码窗口的内容与模块相关,选择不同的模块,代码窗口中显示相应模块中的代码内容。 2. “工程”窗口中显示的是一个类似于树状的层次结构图,是将当前数据库文件中所包含的所有VBA程序模块,及各个模块的层次关系显示出来,选择不同的模块,将改变“代码”窗口中的显示内容。 3. “属性”窗口与当前所选取的对象相关,它将显示当前选中对象的属性。 VBA的编程语言与VB程序设计语言的语法是相同的,因此,对于熟悉VB的

8、用户在使用VBA的过程中是极为方便的。 程序语言的语法包括运算规则、运算代码、变量与常量的定义、数据类型的定义等内容。8.2 VBA编程语言编程语言 8.2.1 8.2.1 数据类型数据类型 数据在计算机的计算过程中有着一定的存在形式,数据在计算机的计算过程中有着一定的存在形式,不同的形式有着不同的存储方式,这种数据的存在不同的形式有着不同的存储方式,这种数据的存在形式就是数据的类型,例如有整数、实数、字符等形式就是数据的类型,例如有整数、实数、字符等不同的类型。程序的编写过程的第一步就是要对数不同的类型。程序的编写过程的第一步就是要对数据类型进行定义,才能使得要参加计算的数据能够据类型进行定

9、义,才能使得要参加计算的数据能够正确的表达或者代表计算的意义。正确的表达或者代表计算的意义。 1. 字符串类型字符串类型 字符串是一个字符的序列,可以包括字母、数字、标点符号字符串是一个字符的序列,可以包括字母、数字、标点符号、汉字、空格等。字符串类型的变量必须使用英文的、汉字、空格等。字符串类型的变量必须使用英文的双引号双引号将其包含起来。例如下列字符串的写法:将其包含起来。例如下列字符串的写法: “123_345.acc” “ “流行病、遗传病、流行病、遗传病、” ” 字符串变量的定义方法:字符串变量的定义方法:Dim 变量名变量名 as String 例如:例如:Dim A1 as st

10、ring A1=”系统性红斑狼疮系统性红斑狼疮” ” 变量名最好以字母或汉字开头,不区分字母大小写。字符串变量名最好以字母或汉字开头,不区分字母大小写。字符串类型包括定长字符串和变长字符串,定长字符串的长度为类型包括定长字符串和变长字符串,定长字符串的长度为1K64K个字符,变长字符串可包含个字符,变长字符串可包含20亿个字符。定长字符亿个字符。定长字符串的定义方法是:串的定义方法是:Dim 变量名变量名 as String*字符串长度字符串长度 例如:例如:Dim A2 as String*15 2. 数值类型 数值型是可以进行计算的数据,数值型的数据又分为整数型、长整数型、单精度型、双精度

11、型。 整数型数据占据2个字节,取值范围是-3276832767,整数型的定义方法: Dim 变量名 as Integer 或者Dim 变量名% 长整数型的存储占用4个字节,取值范围是-21474836482147483647,单精度和双精度类型表示的的包含小数在内的实数,单精度占据4个字节,双精度为8个字节。定义方法是: Dim 变量名 as Long/single/double 3. 布尔型 布尔型数据是一个逻辑值,占2个字节,取值只有2个:true和false。定义的标识符是boolean。 4. 日期型日期型 日期型是日期型是VBA中专门用来表示时间的数据类型。占用中专门用来表示时间的数

12、据类型。占用8个字个字节的存储空间,日期型实际是一个双精度的数值型,其整数节的存储空间,日期型实际是一个双精度的数值型,其整数部分存储的是日期,小数部分存储的是时间。与日期型类型部分存储的是日期,小数部分存储的是时间。与日期型类型相关的三系统函数来获得系统当前的日期和时间:相关的三系统函数来获得系统当前的日期和时间:Date()()获得的是当前系统日期,获得的是当前系统日期,Time()()获得的是当前系统时间,获得的是当前系统时间,Now()()获得的是当前系统日期和时间。定义方法是:获得的是当前系统日期和时间。定义方法是: Dim 变量名变量名 as Date 5. 货币型货币型 货币型数

13、据是专门用来计算与货币相关的计算,货币型的小货币型数据是专门用来计算与货币相关的计算,货币型的小数点位数是固定的,定义的方法是:数点位数是固定的,定义的方法是: Dim 变量名变量名 as Currency 6. 6. 变体型变体型 变体型数据是特殊的数据类型,特殊在其类型是变变体型数据是特殊的数据类型,特殊在其类型是变化的,并且可以根据要求进行多次的改变。改变的化的,并且可以根据要求进行多次的改变。改变的过程中,可以是数值型,也可以是字符串型等等过程中,可以是数值型,也可以是字符串型等等。 8.2.2 8.2.2 变量、常量和数组变量、常量和数组 在程序的运行过程中,用来暂时存储数据的是常量

14、在程序的运行过程中,用来暂时存储数据的是常量和变量。取值可以发生变化的是变量,取值固定不和变量。取值可以发生变化的是变量,取值固定不变的是常量。变的是常量。 1. 1. 变量的定义变量的定义 变量的定义过程实际是在内存中申请一个存储空间,这个空变量的定义过程实际是在内存中申请一个存储空间,这个空间用来存储不断变化的变量的值,程序通过变量的名字查找间用来存储不断变化的变量的值,程序通过变量的名字查找其存储空间,读取变量的值。一个变量包含有三个属性:其存储空间,读取变量的值。一个变量包含有三个属性: 变量名:变量名:变量的名字用以指明数据在内存中的存储位置。变变量的名字用以指明数据在内存中的存储位

15、置。变量的名字应该以字母或者下划线开头,可以包含汉字,不能量的名字应该以字母或者下划线开头,可以包含汉字,不能包含空格和其他字符,包含空格和其他字符,VBAVBA中变量名不区分字母大小写。中变量名不区分字母大小写。 变量类型:变量类型:在使用变量的过程中,变量必须是规定了数据类在使用变量的过程中,变量必须是规定了数据类型的。在使用变量之前应该先对变量进行定义,型的。在使用变量之前应该先对变量进行定义,VBAVBA允许不允许不进行事先的定义而直接使用变量。通常不进行事先声明的变进行事先的定义而直接使用变量。通常不进行事先声明的变量,系统会自动将其的类型定义为量,系统会自动将其的类型定义为Vari

16、antVariant变体型。变体型。 使用变使用变量前对变量进行定义是程序设计中的一个良好的习惯,尽管量前对变量进行定义是程序设计中的一个良好的习惯,尽管系统允许不定义而直接使用,但这也容易引起程序错误。系统允许不定义而直接使用,但这也容易引起程序错误。 变量值:变量值:程序中通过赋值语句可以改变变量的取值,被改变程序中通过赋值语句可以改变变量的取值,被改变的变量值将存储在指定的内存空间中以供程序调用。的变量值将存储在指定的内存空间中以供程序调用。变量的定义方法是:变量的定义方法是: 定义词定义词 变量名变量名 as as 数据类型数据类型 说明:说明: (1 1) 定义词为变量的类型定义词为

17、变量的类型,包括,包括DimDim、StaticStatic、PublicPublic等。等。StaticStatic为定义静态变量;为定义静态变量;PublicPublic定义为全局变量。定义为全局变量。DimDim为定义无特殊指定的变量,也可定义数组。为定义无特殊指定的变量,也可定义数组。 (2 2) 变量名是被定义的变量变量名是被定义的变量,一个定义语句可以定义一,一个定义语句可以定义一个变量,也可是多个变量,多个变量的变量名使用逗号进个变量,也可是多个变量,多个变量的变量名使用逗号进行分隔。例如:行分隔。例如: Dim Dim stnamestname as String &

18、as String &定义定义stnamestname变量为字符串型变量为字符串型 Public price as currency &Public price as currency &定义一个全局变量定义一个全局变量priceprice为货币型为货币型 Static age as Integer &Static age as Integer &定义一个静态定义一个静态变量变量ageage为整型为整型 (3) 同时定义多个变量,且多个变量具有不同的数据类型时,用逗号间隔定义的变量及数据类型。例如: Dim indate,outdate as Date

19、&定义变量indate和outdate为日期型 Dim marriage as Boolean, teleNo as string &定义变量marriage为布尔型,变量teleno为字符串型。 2 2. . 常量的定义常量的定义 常量是在程序运行的过程中不发生数值改变的固定数值,通常是在程常量是在程序运行的过程中不发生数值改变的固定数值,通常是在程序中经常出现或者被经常调用的一个固定数值。常量分两种,一是系序中经常出现或者被经常调用的一个固定数值。常量分两种,一是系统提供的内部常量,如统提供的内部常量,如vbOKvbOK、vbYesvbYes等,二是用户自定义的。系统内等,

20、二是用户自定义的。系统内部提供常量在数据访问对象程序库中可查到,通常是由应用程序和部提供常量在数据访问对象程序库中可查到,通常是由应用程序和VBVB的控件提供的。自定义变量使用的定义词为的控件提供的。自定义变量使用的定义词为constconst,常量定义的语法,常量定义的语法格式为:格式为: Const Const 常量名常量名= =表达式表达式 as as 数据类型数据类型 例如:例如: Const Const tax1tax1=0.15 =0.15 Const hospital=”Const hospital=”首都医科大学附属北京市儿童医院首都医科大学附属北京市儿童医院” ” 对常量进行

21、定义可以提高程序的编辑效率,当更改常量的定义后,程对常量进行定义可以提高程序的编辑效率,当更改常量的定义后,程序中调用此常量的地方将整体的被修改赋值。序中调用此常量的地方将整体的被修改赋值。 3. 数组的定义 数组是具有相同变量名的顺序排列的一系列变量,每个变量的排列顺序称为数组变量的下标,带有下标的变量称为数组的元素。数组被定义后,在程序中可以引用整个数组,也可单独引用数组中的某个元素。 数组的定义方法与变量的定义方法相同,只是在变量名的定义中使用的是数组的名称以及数组元素的最大下标。数组定义的语法格式是: 定义词 数组名(数组下标范围) as 数据类型 例如: Dim medname(50

22、) as String &定义数组medname,数组中包含50个数组元素 由于数组是由多个元素组成,且数组元素的下标是顺序的,因此对数组操作,如赋值等常通过循环语句完成。 8.2.3 VBA8.2.3 VBA的运算符的运算符 程序设计离不开运算,VBA提供了丰富的运算符,可构成多种表达式,以完成各类运算。1. 算术运算符 整数除法是进行除法后,对商进行四舍五入的取整整数除法是进行除法后,对商进行四舍五入的取整运算。运算。 取余数除法的结果是两个数除法运算之后的余数,取余数除法的结果是两个数除法运算之后的余数,如果除法之后被整除,则结果为如果除法之后被整除,则结果为0 0。 整数除法和

23、取余除法要求参加运算的数是整数,如整数除法和取余除法要求参加运算的数是整数,如果不是整数则先要进行四舍五入后再进行计算。果不是整数则先要进行四舍五入后再进行计算。 比较运算也称为关系运算,用来进行比较运算也称为关系运算,用来进行两个表达式的比较,运算的结果是逻两个表达式的比较,运算的结果是逻辑值,即只有两个取值辑值,即只有两个取值TrueTrue或或FalseFalse2. 比较运算符 3. 逻辑运算符 逻辑运算符也称为布尔运算,通过逻辑运逻辑运算符也称为布尔运算,通过逻辑运算可将两个或多个表达式连接起来,表达算可将两个或多个表达式连接起来,表达一个较为复杂的关系判断。逻辑运算的结一个较为复杂

24、的关系判断。逻辑运算的结果是逻辑值,取值只有果是逻辑值,取值只有TrueTrue或者或者FalseFalse。4. 运算的优先级 VBA中的表达式在进行多种运算时,其运算的优先顺序如下: (1) 函数运算 (2) 幂运算 (3) 乘法和浮点除法 * / (4) 整除 (5) 取余数mod (6) 加减法+- (7) 连接符 & (8) 关系运算 = 等 (9) Not (10) And (11) Or (12) Xor (13) Eqv 8.2.4 8.2.4 函数和表达式函数和表达式 函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。在VBA程序语言中有许多内置函数,

25、可以帮助程序代码设计和减少代码的编写工作。 2. 数学函数 数学函数是用于数学计算,大多数的数学函数学函数是用于数学计算,大多数的数学函数的自变量均为数值型,数学函数的函数值数的自变量均为数值型,数学函数的函数值都是数字类型的。都是数字类型的。Vartype函数用来测试一个常量或者变量的数据类型,返回的值是一个整数,返回值所代表的数据类型的对应关系3. 字符串函数 字符串函数用于对字符串进行操作,因此字符串函数用于对字符串进行操作,因此其自变量的类型为字符串,但函数值不一其自变量的类型为字符串,但函数值不一定仍然是字符串型。定仍然是字符串型。4. 转换函数 转换函数可进行数据类型之间的相互转换

26、5. 时间函数 8.3 创建创建VBA程序程序8.3.1 VBA基本语句基本语句编写程序的第一步是要先了解VBA最基本的书写规则和基本语句,在程序中,语句是执行具体操作、完成指令的命令集合,因此具有自己的语法规则,基本的语法规则是: 每个语句后以回车符作为语句的结束。 通常一个语句占用一行,如果要将多个语句写在同一行时,语句之间使用“:”分隔;过长的语句可以分行写,分行时在行的末尾使用“_”表示语句续行,且“_”前需加一个空格与其他字符进行区分。 语句中的字母不区分大小写。VBA中的语句主要分三种: 声明语句:用于变量、常量、过程等的定义,包括定义名称、类型等。 赋值语句:用于为变量、常量等指

27、定一个值 可执行语句:用于执行一个方法或者函数,可以完成初始化工作,可被循环执行的语句。可执行语句是VBA语句中的主体,它通常包含有运算符、表达式、条件判断等元素。下面是VBA中经常用到的基本语句: 1. 声明语句 声明语句主要用来进行变量、常量、函数等的定义,可参考8.2.2中变量定义中的相关内容。 2. 赋值语句 赋值语句是VBA中用到最多的基本语句,为变量、常量赋值时,使用“=”表示等号右边内容的计算结果,将赋值给等号左边的变量名。多个赋值语句可以用“:”分隔开,写在同一行。例如: Pname=”张三”:Psex=”女”:Pmarriage=False Ptext=”你我皆凡人 何分三六

28、九” Mycount=mycount+1 3. 结束语句 结束语句就是命令字符“end”,表示程序的运行结束。它和其它的关键词结合起来时,指结束相应的内容。一个小程序块的开始,必定要有一个end与之对应。在VBA中输入一个过程名如 “Sub mytext()”,回车后系统会自动添加一个“End Sub”。 表示程序的结束: Sub quit_cilck() End End Sub 类似的其他写法有: End Function 一个函数的结束 End If 一个条件判断的结束 End Tpye 自定义类型定义的结束 4. 输入语句 程序运行过程中,需要与用户进行交流,由用户进行数据的录入,这样的

29、过程需要输入语句来完成。常用的有InputBox函数。InputBox函数在运行时,将产生一个对话框,这个对话框中的输入文本框等待用户输入数据,输入完成后对话框自动关闭。具体的语法格式为: InputBox(Prompt,Title,Default,Xpos,Ypos,Helpfile,Context) 说明: Prompt:用来显示对话框中输入文本框上方的提示信息,是必须输入的项目。 Title:对话框标题栏中的显示信息,可选项。 Default:显示在输入文本框中的默认输入信息,可选项。 Xpos,Ypos:用来指定对话框的显示位置,分别设置为对话框左边到屏幕左边、对话框顶边到屏幕顶端的距

30、离,可选项。如不输入则默认为在屏幕居中的位置。 Helpfile:指定对话框相关的帮助文件,可选项,但必须与context项联用。 Context:帮助主体的上下文编号,可选项,必须与Helpfile项联用。 5. 输出语句 运行结果的输出,除了可以利用Access 2007内置的函数来实现以外,也可以输出到窗体或者报表中。常用的输出语句有:(1) 通过立即窗口的输出。 通过立即窗口输出实际是两个过程,首先是调用立即窗口,使用语句:Debug;其次是在这个窗口中输出内容,使用语句:Print。完整的语法格式: Debug Print(表达式) 其中的Print可以省略的写成“?”。 (2) M

31、sgBox函数 MsgBox函数在前面已经用到过,它可以启动一个消息框,并将内容输出在消息框中,这个消息框的显示形式,包括按钮的个数、按钮的内容、消息框的标题等都是可以自行设置的。具体的语法格式为: MsgBox(Prompt,Buttons,Title, Helpfile,Context) 说明: Buttons:用于指定消息框中按钮的显示形式,提示图标的样式等。 其余的选项与InputBox的使用方法相同。 6. 注释语句 VBA中的注释语句是为了调试和记录、说明程序的结构,而添加的不影响程序的运行进程的语句。这些语句添加在程序语句的中间,不参加程序的运行,只是作为显示提示,说明程序中的内

32、容。 为程序添加适当的注释信息有助于自己或者他人在读程序时,更好地理解程序的结构与功能,也可用来记录变量的含义,避免混淆和忘记。 注释语句以“”开头,单引号后面的内容就成为注释内容。 8.3.2 8.3.2 顺序结构顺序结构 顺序结构是程序最基本、最简单的结构形式,这种结构中程序的执行与语句的出现顺序相关,程序执行时,就是按照顺序一条一条地执行命令。8.3.3 8.3.3 分支结构分支结构 程序的分支结构是通过一个条件判断,将程序的分支结构是通过一个条件判断,将程序的走向分成两个或者两个以上的处理程序的走向分成两个或者两个以上的处理分支,根据对条件的判断结果不同而进行分支,根据对条件的判断结果

33、不同而进行不同的操作。在不同的操作。在VBAVBA中,有两种基本的分中,有两种基本的分支形式:条件分支结构支形式:条件分支结构IfIf,和多分支结构,和多分支结构CaseCase。1.If语句 If语句是程序设计中最常用的语句之一,它有两种常用的书写格式: (1) 写在一行的IF 写在同一行的IF是将判断的条件、满足条件的操作、不满足条件的操作这三个内容写在同一行中,这种写法适合于条件判断后的操作比较简单,不需要多个语句完成的操作,这种写法可以不使用end if作为结尾,具体的语法格式是: IF then else 程序执行时先进行条件的判断,判断结果为True时执行语句1,否则执行语句2(2

34、) 结构化多行的IF 当条件判断后的操作,需要有多个语句完成时,必须要使用结构化多行的IF,具体的语法格式为: IF then Else End if(3) IF的嵌套 当需要判断的条件不只一个时,需要在一个条件判定之后进行再次判定,可以使用嵌套的IF语句完成,语法格式为: IF then Elseif then Elseif then Endif 2. Case语句 当可选择的条件比较多,且互相之间没有必然的联系时,如果仍然使用IF语句,就会使程序变得复杂,降低程序的可读性。因此,多分支结构通常使用Case语句完成。Case语句是使用Select Case开始,End Select结束的。具

35、体的语法结构是: Select Case Case 表达式值1 语句组2 Case 表达式值2 语句组2 Case 表达式值n 语句组n Case Else 语句组n+1 End Select 说明: Select Case后面的表达式可以是一个条件的判断,也可以是一个变量的名字。Case中则直接写出表达式或者变量的取值,取值的写法需符合数值类型的要求。 Case Else分支是可选项,此分支的语句是在前面列出的条件均不符合的时候才能被执行的。循环语句 循环语句是在满足一定的条件下,可以使被指定的语句反复执行的过程。因此,循环的前提是要进行循环条件的判断,当满足循环条件时语句被执行,当不满足条

36、件时循环执行被停止。 当循环重复的次数固定,且变化具有规律的时候,使用For-Next循环是最方便的。 For 循环变量=初值 To 终值 Step 步长 Next 1. For-Next循环 说明: 循环变量是循环过程的计数器,计数从初值开始,以步长为变化规律,到终值结束,即循环停止。其中,初值、终值、步长均为数值表达式,步长是可选项,不指定步长时,默认步长为1,步长可以是正数也可是负数,但不能为0。 循环体中的语句是被反复执行的语句。 Next语句是循环的结束标志,每执行一次Next,循环变量就增加一个步长,当循环变量超过终值时,循环结束。 由于For-Next循环的计数的特点,经常被用来

37、为数组赋值。 Do-Loop循环不要求一定要按照固定的顺序循环,而是设置一个循环条件,每次循环的一开始都是对循环条件进行判断,根据判断的结果决定循环的继续或者终止。语法格式: Do while LoopDo-Loop循环 说明: 程序运行时,先对条件进行判断,满足循环条件则进入循环语句,当循环内语句执行完成后,遇到Loop则回到条件判断,进行新一轮的条件判断。当不再满足循环条件时,循环结束,程序转到Loop后的语句。 在使用Do-Loop循环时需要注意的是循环条件的设置,与For-Next的循环条件不同,这里的循环条件是自定义的,因此,如果循环条件永远都是满足状态,程序会出现死循环,导致程序无

38、法结束。相反,如果永远都不能满足循环条件,则有可能循环不能执行.8.4 8.4 模块与过程模块与过程 VBA中的模块可以看做是多个过程的集合,过程就是可以完成一个完整功能的最小的程序段,语句是组成过程的基本元素。前一节中的各个任务,在设计过程中有一个共同的特点,就是程序的第一句,都是“Sub”,最后一句都是“End Sub”,在这两句之间的内容是由具有一定语法组成的语句。这样一个小的程序段落就是一个过程。 模块在VBA中是为完成某一功能所需的一段程序或子程序;或是由编译程序、装配程序等处理的独立程序单位;也可以是大型软件系统的一部分。 在VBA中,完整的程序段落除了前面提到的Sub与End S

39、ub外,自定义函数也是一种过程。根据形式与作用的不同,在VBA中把过程分为两类:通用过程和事件过程,通用过程又分为Function过程和Sub过程。8.4.1 8.4.1 事件过程事件过程 事件过程是指当某一事件发生,某个对象对这个事件做出反应而执行的程序片段。因此,事件过程有两个重要的元素:一是有事件发生,二是事件的发生与对象有关。Access中定义了40多种事件,如键盘响应、鼠标响应、窗口的加载等,这些事件与某个对象相关联,构成了程序的主体。如对一个按钮对象,当鼠标单击事件发生时,要执行计算操作。8.4.2 8.4.2 通用过程通用过程 事件过程是某个对象针对于某一事件时的程序片段,当有多

40、个对象的多个事件中需要执行同样的操作时,可使用通用过程来完成。通过设计一个通用过程,设计各个过程之中对其进行调用,可大大提高程序设计的效率。 根据过程调用的返回值情况,通用过程又分为子过程(Sub)和函数(Function)两种,调用后有返回值的为函数。前面程序结构的任务中所建立的过程,都没有参数传递,也都是建立在通用的过程中,Sub过程的定义格式是: Private Public Sub (参数) 语句组 End Sub 函数与Sub的最大区别在于函数的调用过程中,有参数值被传递。当函数被调用时,是将要运算的数值传递给函数,函数运算完成后将结果再传递回原来调用的地方。Private Public Function (参数) as 数据类型 函数语句组 过程名= End FunctionPrivate和Public选项定义了过程或函数的作用范围,Public定义为对任何过程都有效;Private是只在当前模块中有效。 函数的定义格式与变量的定义语句Dim有些类似,在定义了函数名称的

温馨提示

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

评论

0/150

提交评论