VBA编程环境课件

上传人:人*** 文档编号:568762456 上传时间:2024-07-26 格式:PPT 页数:80 大小:320.51KB
返回 下载 相关 举报
VBA编程环境课件_第1页
第1页 / 共80页
VBA编程环境课件_第2页
第2页 / 共80页
VBA编程环境课件_第3页
第3页 / 共80页
VBA编程环境课件_第4页
第4页 / 共80页
VBA编程环境课件_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《VBA编程环境课件》由会员分享,可在线阅读,更多相关《VBA编程环境课件(80页珍藏版)》请在金锄头文库上搜索。

1、第第12章章 VBA编程程12.1 VBA编程环境编程环境Access提供了多种方法启动提供了多种方法启动VBA编程环境,包括如下方式:编程环境,包括如下方式: 按按Alt+F11组合键(该组合键还可以在数据库窗口和组合键(该组合键还可以在数据库窗口和VBE之间相互切换)。之间相互切换)。 在数据库窗口中选择在数据库窗口中选择“工具工具”菜单,然后选择菜单,然后选择“宏宏”子菜子菜单中的单中的“Visual Basic编辑器编辑器”命令。命令。12.1.1 进入VBE12.1 VBA编程环境编程环境 单击数据库窗口中的单击数据库窗口中的“模块模块”按钮,然后双击要查看或编按钮,然后双击要查看或

2、编辑的模块,将启动辑的模块,将启动VBE,此时,此时VBE代码窗口中显示为该模块部分代码窗口中显示为该模块部分代码。代码。 单击数据库窗口中的单击数据库窗口中的“模块模块”按钮,然后单击数据库窗口按钮,然后单击数据库窗口中的中的“新建新建”按钮,此时打开按钮,此时打开VBE窗口,并在窗口,并在VBE窗口中创建一窗口中创建一个空白模块。个空白模块。12.1.1 进入VBE12.1 VBA编程环境编程环境上述方法用于查看、编辑那些不在窗体和报表中的模块。要上述方法用于查看、编辑那些不在窗体和报表中的模块。要查看、编辑窗体或报表中的模块,可使用如下方式:查看、编辑窗体或报表中的模块,可使用如下方式:

3、 在在“设计设计”视图中打开对象。然后单击设计工具栏上的视图中打开对象。然后单击设计工具栏上的“代码代码”按钮按钮 。打开。打开VBE环境,并打开该窗体或报表模块代码,环境,并打开该窗体或报表模块代码,显示位置为该模块的开头部分。显示位置为该模块的开头部分。12.1.1 进入VBE12.1 VBA编程环境编程环境 在在“设计设计”视图中打开对象。然后右击需要编写代码的控视图中打开对象。然后右击需要编写代码的控件,在弹出的快捷菜单中选择件,在弹出的快捷菜单中选择“事件生成器事件生成器”命令。打开命令。打开VBE环环境,并打开该窗体或报表模块代码,显示位置为该控件代码的开境,并打开该窗体或报表模块

4、代码,显示位置为该控件代码的开头部分。头部分。12.1.1 进入VBE12.1 VBA编程环境编程环境图图12.2是一个打开的是一个打开的VBE窗口。窗口。VBE环境通常由一些常用工环境通常由一些常用工具栏和多个子窗口组成(在刚开始打开的具栏和多个子窗口组成(在刚开始打开的VBE界面可能没有部分界面可能没有部分窗口和工具栏,如果需要,可以执行主菜单窗口和工具栏,如果需要,可以执行主菜单“视图视图”中的相应命中的相应命令来调出窗口和工具栏)。令来调出窗口和工具栏)。12.1.1 进入VBE12.1 VBA编程环境编程环境1VBE工具栏工具栏VBE中有多种工具栏,包括中有多种工具栏,包括“调试调试

5、”工具栏、工具栏、“编辑编辑”工具工具栏、栏、“标准标准”工具栏和工具栏和“用户窗体用户窗体”工具栏。工具栏。可以单击工具栏按钮来完成该按钮所指定的动作。如果要显可以单击工具栏按钮来完成该按钮所指定的动作。如果要显示工具栏按钮的工具提示,可以选择示工具栏按钮的工具提示,可以选择“选项选项”对话框对话框“标准标准”选选项卡中的项卡中的“显示工具提示显示工具提示”。12.1.2 VBE界面12.1 VBA编程环境编程环境“标准标准”工具栏包含几个常用的菜单项快捷方式的按钮。工具栏包含几个常用的菜单项快捷方式的按钮。“标准标准”工具栏是工具栏是VBE默认显示的工具栏。图默认显示的工具栏。图12.3所

6、示便是所示便是“标准标准”工具栏。工具栏。12.1.2 VBE界面12.1 VBA编程环境编程环境“标准标准”工具栏中各图标及其功能如表工具栏中各图标及其功能如表12.1所示。所示。12.1.2 VBE界面12.1 VBA编程环境编程环境12.1.2 VBE界面12.1 VBA编程环境编程环境2VBE窗口窗口VBE使用多种不同窗口来显示不同对象或完成不同任务。使用多种不同窗口来显示不同对象或完成不同任务。VBE中的窗口有代码窗口、立即窗口、本地窗口、对象浏览器、中的窗口有代码窗口、立即窗口、本地窗口、对象浏览器、工程资源管理器、属性窗口、工具箱、用户窗体窗口和监视窗口工程资源管理器、属性窗口、

7、工具箱、用户窗体窗口和监视窗口等。在等。在VBE窗口的窗口的“视图视图”菜单中包括了用于打开各种窗口的菜菜单中包括了用于打开各种窗口的菜单命令。单命令。12.1.2 VBE界面12.1 VBA编程环境编程环境(1)代码窗口)代码窗口(2)立即窗口)立即窗口(3)监视窗口)监视窗口(4)本地窗口)本地窗口(5)对象浏览器)对象浏览器(6)工程资源管理器)工程资源管理器(7)属性窗口)属性窗口12.1.2 VBE界面12.1 VBA编程环境编程环境在在VBA中经常需要对函数或过程进行调试。中经常需要对函数或过程进行调试。VBA提供了若干提供了若干种调试的工具,主要有种调试的工具,主要有Debug.

8、print和设置断点。和设置断点。1使用使用Debug.Print使用立即窗口的方法是在程序代码中加入使用立即窗口的方法是在程序代码中加入Debug.Print命令,命令,其作用是在屏幕上显示变量的当前值。其作用是在屏幕上显示变量的当前值。12.1.3 调试过程12.1 VBA编程环境编程环境2设置断点设置断点另一个测试工具是断点调试法。一般来说,设置断点是为了另一个测试工具是断点调试法。一般来说,设置断点是为了观察程序运行时的状态。观察程序运行时的状态。在程序中指定的、希望暂停的地方设置断点。在程序暂停后,在程序中指定的、希望暂停的地方设置断点。在程序暂停后,可以在立即窗口中显示变量信息。可

9、以在立即窗口中显示变量信息。12.1.3 调试过程12.2 VBA程序设计基础程序设计基础VBA数据类型继承了传统的数据类型继承了传统的Basic语言,如语言,如Microsoft QuickBasic。在。在VBA应用程序中,也需要对变量的数据类型进行应用程序中,也需要对变量的数据类型进行声明。声明。VBA提供了较为完备的数据类型,提供了较为完备的数据类型,Access数据表中的字段数据表中的字段使用的数据类型(使用的数据类型(OLE对象和备注字段数据类型除外)在对象和备注字段数据类型除外)在VBA中中都有对应的类型。都有对应的类型。12.2.1 数据类型12.2 VBA程序设计基础程序设计

10、基础VBA类型、类型声明符、数据类型、取值范围和默认值如表类型、类型声明符、数据类型、取值范围和默认值如表12.2所示。其中,字符串类型又分为变长字符串(所示。其中,字符串类型又分为变长字符串(String)和定)和定长字符串(长字符串(String * length)。)。12.2.1 数据类型12.2 VBA程序设计基础程序设计基础除了上述系统提供的基本数据类型外,除了上述系统提供的基本数据类型外,VBA还支持用户自定还支持用户自定义数据类型。自定义数据类型实质上是由基本数据类型构造而成义数据类型。自定义数据类型实质上是由基本数据类型构造而成的一种数据类型,可以根据需要来定义一个或多个自定

11、义数据类的一种数据类型,可以根据需要来定义一个或多个自定义数据类型。型。12.2.1 数据类型12.2 VBA程序设计基础程序设计基础1常量常量常量是指在程序运行的过程中其值不能被改变的量。常量是指在程序运行的过程中其值不能被改变的量。(1)符号常量)符号常量(2)固有常量)固有常量(3)系统定义常量)系统定义常量12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础2变量变量变量实际上是一个符号地址,代表了命名的存储位置,包含变量实际上是一个符号地址,代表了命名的存储位置,包含在程序执行阶段修改的数据。每个变量都有变量名,在其作用域在程序执行阶段修改的数据。每个变量都有变量名

12、,在其作用域范围内可唯一识别。使用前可以指定数据类型(即采用显式声明)范围内可唯一识别。使用前可以指定数据类型(即采用显式声明),也可以不指定(即采用隐式声明)。,也可以不指定(即采用隐式声明)。12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础(1)变量的声明)变量的声明变量名必须以字母字符开头,在同一范围内必须是唯一的,变量名必须以字母字符开头,在同一范围内必须是唯一的,不能超过不能超过255个字符,而且中间不能包含句点或类型说明符号。个字符,而且中间不能包含句点或类型说明符号。对变量进行声明可以使用类型说明符号、对变量进行声明可以使用类型说明符号、Dim语句和语句和D

13、efType语句。语句。12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础 使用类型说明符号声明变量使用类型说明符号声明变量 使用使用Dim语句声明变量语句声明变量 使用使用DefType语句声明变量语句声明变量 使用变体类型使用变体类型 用户自定义类型的声明与使用用户自定义类型的声明与使用12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础(2)变量的作用域和生命周期)变量的作用域和生命周期在声明变量作用域时可以将变量声明为在声明变量作用域时可以将变量声明为Locate(本地或局部)(本地或局部)、Private(私有,(私有,Module模块级)或模块

14、级)或Public(公共或全局)。(公共或全局)。 本地变量本地变量 私有变量:私有变量: 公共变量:公共变量:12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础变量的生命周期与作用域是两个不同的概念,生命周期是指变量的生命周期与作用域是两个不同的概念,生命周期是指变量从首次出现(执行变量声明,为其分配存储空间)到消失的变量从首次出现(执行变量声明,为其分配存储空间)到消失的代码执行时间。代码执行时间。本地变量的生命周期是过程或函数被开始调用到运行结束的本地变量的生命周期是过程或函数被开始调用到运行结束的时间(静态变量除外)。时间(静态变量除外)。公共变量的生命周期是从声明

15、到整个公共变量的生命周期是从声明到整个Access应用程序结束。应用程序结束。12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础对于本地变量的生命周期的一个例外是静态变量。静态变量对于本地变量的生命周期的一个例外是静态变量。静态变量的声明使用的声明使用“Static变量名变量名As数据类型数据类型”。静态变量在。静态变量在Access程序执行期间一直存在,其作用范围是声明它的子程序或函数。程序执行期间一直存在,其作用范围是声明它的子程序或函数。静态变量可以用来计算事件发生的次数或者是函数与过程被调用静态变量可以用来计算事件发生的次数或者是函数与过程被调用的次数。的次数。12

16、.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础3数组数组数组是由一组具有相同数据类型的变量(称为数组元素)构数组是由一组具有相同数据类型的变量(称为数组元素)构成的有序序列。数组变量由变量名和数组下标组成。成的有序序列。数组变量由变量名和数组下标组成。(1)数组的声明)数组的声明在在VBA中不允许隐式说明数组,用户可用中不允许隐式说明数组,用户可用Dim语句来声明数语句来声明数组,声明方式为:组,声明方式为:Dim数组名数组名(数组下标上界数组下标上界) As 数据类型数据类型12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础如果要定义多维数组,声明方式

17、如下:如果要定义多维数组,声明方式如下:Dim 数组名数组名(数组第一维下标上界数组第一维下标上界,数组第二维下标上界数组第二维下标上界,) As 数据类型数据类型例如:例如:Dim intArray (2,3) As Integer该语句定义了一个二维数组,第一维有该语句定义了一个二维数组,第一维有3个元素,第二维有个元素,第二维有4个元素。个元素。12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础在在VBA中,还允许用户定义动态数组。动态数组的定义方法中,还允许用户定义动态数组。动态数组的定义方法是,先使用是,先使用Dim来声明数组,但不指定数组元素的个数,而在以来声明

18、数组,但不指定数组元素的个数,而在以后使用时再用后使用时再用ReDim来指定数组元素个数,称为数组重定义。在来指定数组元素个数,称为数组重定义。在对数组重定义时,可以使用对数组重定义时,可以使用ReDim后加保留字后加保留字Preserve来保留来保留以前的值,否则使用以前的值,否则使用ReDim后数组元素的值会被重新初始化为默后数组元素的值会被重新初始化为默认值。认值。12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础(2)数组的使用)数组的使用数组声明后,数组中的每个元素都可以当作单个的变量来使数组声明后,数组中的每个元素都可以当作单个的变量来使用,其使用方法与相同类型

19、的普通变量相同。其元素引用格式为:用,其使用方法与相同类型的普通变量相同。其元素引用格式为:数组名数组名(下标值表下标值表)12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础其中,如果该数组为一维数组,则下标值表为一个范围为其中,如果该数组为一维数组,则下标值表为一个范围为数组下标下界,数组下标上界数组下标下界,数组下标上界的整数;如果该数组为多维数组,的整数;如果该数组为多维数组,则下标值表为一个由多个(不大于数组维数)用逗号分开的整数则下标值表为一个由多个(不大于数组维数)用逗号分开的整数序列,每个整数(范围为序列,每个整数(范围为该维数组下标下界,该维数组下标上界该维

20、数组下标下界,该维数组下标上界)表示对应的下标值。)表示对应的下标值。12.2.2 常量、变量与数组12.2 VBA程序设计基础程序设计基础运算是对数据的加工,最基本的运算形式常常可以用一些简运算是对数据的加工,最基本的运算形式常常可以用一些简洁的符号来描述,这些符号称为运算符。表达式是许多洁的符号来描述,这些符号称为运算符。表达式是许多Access操操作的基本组成部分,是运算符、常量、文字值、函数和字段名、作的基本组成部分,是运算符、常量、文字值、函数和字段名、控件和属性的任意组合,可以使用表达式作为很多属性和操作参控件和属性的任意组合,可以使用表达式作为很多属性和操作参数的设置;可以在窗体

21、、报表和数据访问页中定义计算控件;可数的设置;可以在窗体、报表和数据访问页中定义计算控件;可以在查询中设置准则或定义计算字段以及在宏中设置条件;等等。以在查询中设置准则或定义计算字段以及在宏中设置条件;等等。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础1算术运算符与算术表达式算术运算符与算术表达式算术运算符是常用的运算符,用来执行简单的算术运算。算术运算符是常用的运算符,用来执行简单的算术运算。VBA提供了提供了8个算术运算符,如表个算术运算符,如表12.4所示。所示。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础在在8个算术运算符中,除取负(个算

22、术运算符中,除取负(-)是单目运算符外,其他均)是单目运算符外,其他均为双目运算符。加(为双目运算符。加(+)、减()、减(-)、乘()、乘(*)、取负()、取负(-)几个运)几个运算符的含义与数学中基本相同,下面介绍其他几个运算符的操作。算符的含义与数学中基本相同,下面介绍其他几个运算符的操作。(1)指数运算)指数运算指数运算用来计算乘方和方根,其运算符为指数运算用来计算乘方和方根,其运算符为,28表示表示2的的8次方,而次方,而2 (1/2)或)或20.5是计算是计算2的平方根。的平方根。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础(2)浮点数除法与整数除法运算)浮

23、点数除法与整数除法运算浮点数除法运算符(浮点数除法运算符(/)执行标准除法操作,其结果为浮点)执行标准除法操作,其结果为浮点数。数。整数除法运算符(整数除法运算符()执行整除运算,结果为整型值,因此,)执行整除运算,结果为整型值,因此,表达式表达式52的值为的值为2。整除的操作数一般为整型值。整除的操作数一般为整型值。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础(3)取模运算)取模运算取模运算符(取模运算符(Mod)用来求余数,其结果为第)用来求余数,其结果为第1个操作数整个操作数整除第除第2个操作数所得的余数。个操作数所得的余数。表表12.4按优先顺序列出了算术运算符

24、。在按优先顺序列出了算术运算符。在8个算术运算符中,个算术运算符中,指数运算符(指数运算符()优先级最高,其次是取负()优先级最高,其次是取负(-)运算符、乘法)运算符、乘法(*)、浮点数除法()、浮点数除法(/)、整数除法()、整数除法()、加法()、加法(+)、减法)、减法(-)。)。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础其中,乘法与浮点数除法是同级运算符,加法与减法是同级其中,乘法与浮点数除法是同级运算符,加法与减法是同级运算符。当一个表达式中含有多种算术运算符时,必须严格按上运算符。当一个表达式中含有多种算术运算符时,必须严格按上述顺序求值。此外,如果表达

25、式中含有括号,则先计算括号内表述顺序求值。此外,如果表达式中含有括号,则先计算括号内表达式的值;有多层括号时,先计算内层括号中的表达式。达式的值;有多层括号时,先计算内层括号中的表达式。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础2字符串连接符与字符串表达式字符串连接符与字符串表达式字符串连接符(字符串连接符(&)用来连接多个字符串(字符串相加)。)用来连接多个字符串(字符串相加)。在在VBA中,中,“+”既可用作加法运算符,还可以用作字符串既可用作加法运算符,还可以用作字符串连接符,但连接符,但“&”专门用作字符串连接,其作用与专门用作字符串连接,其作用与“+”相同。

26、在相同。在有些情况下,用有些情况下,用“&”比用比用“+”可能更安全。可能更安全。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础3关系与逻辑运算符、关系表达式关系与逻辑运算符、关系表达式(1)关系运算符与关系表达式)关系运算符与关系表达式关系运算符也称为比较运算符,用来对两个表达式的值进行关系运算符也称为比较运算符,用来对两个表达式的值进行比较,比较的结果是一个逻辑值,即真(比较,比较的结果是一个逻辑值,即真(True)或假()或假(False)。用关系运算符连接两个算术表达式所组成的表达式称为关系表达用关系运算符连接两个算术表达式所组成的表达式称为关系表达式。式。12.

27、2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础VBA提供了提供了6个关系运算符,如表个关系运算符,如表12.5所示。所示。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础(2)逻辑运算符)逻辑运算符逻辑运算也称为布尔运算,由逻辑运算符连接两个或多个关逻辑运算也称为布尔运算,由逻辑运算符连接两个或多个关系式,组成一个布尔表达式。系式,组成一个布尔表达式。VBA提供了提供了6种逻辑运算符,如表种逻辑运算符,如表12.6所示。所示。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础4对象运算符与对象运算表达式对象运算符与对象运算表达式(1)对象运

28、算符)对象运算符对象运算表达式中使用对象运算表达式中使用“!”和和“.”两种运算符,使用对象两种运算符,使用对象运算符指示随后将出现的项目类型。运算符指示随后将出现的项目类型。12.2.3 运算符与表达式12.2 VBA程序设计基础程序设计基础(2)在表达式中引用对象)在表达式中引用对象在表达式中可以使用标识符来引用一个对象或对象的属性。在表达式中可以使用标识符来引用一个对象或对象的属性。例如,可以引用一个开启的报表的例如,可以引用一个开启的报表的Visible属性:属性:Reports!订单订单!订单订单ID.Visible发订单发订单引用引用“订单订单”报表,报表,单位单位引用引用“订单订

29、单”报表上的报表上的“订单订单ID”控件。控件。12.2.3 运算符与表达式12.3 程序流程控制程序流程控制1行行If语句语句If语句结构如下:语句结构如下:If 条件条件 Then 语句语句1If 条件条件 hen 语句语句1 Else 语句语句2其中,语句其中,语句1和语句和语句2可以是任何一条可以是任何一条VBA的可执行语句。也的可执行语句。也就是说,语句就是说,语句1和语句和语句2也可以是一条行也可以是一条行If语句。语句。12.3.1 分支结构12.3 程序流程控制程序流程控制If语句在执行时首先判断条件是否为真,如果为真,则执行语句在执行时首先判断条件是否为真,如果为真,则执行语

30、句语句1;否则,执行;否则,执行Else后面的语句后面的语句2。如果条件为假,又没有。如果条件为假,又没有Else语句,则跳过该行语句。语句,则跳过该行语句。行行If语句的特点是在一行中写完该语句,不以语句的特点是在一行中写完该语句,不以End If结束。结束。行行If语句也可以嵌套使用。语句也可以嵌套使用。12.3.1 分支结构12.3 程序流程控制程序流程控制2块块If语句语句块块If语句结构如下:语句结构如下:If条件条件Then 语句组语句组1Else 语句组语句组2End If12.3.1 分支结构12.3 程序流程控制程序流程控制这是最简单的块这是最简单的块If语句。其中,语句组语

31、句。其中,语句组1和语句组和语句组2可以是多可以是多条条VBA的可执行语句。的可执行语句。在执行时也是首先判断条件是否为真,如果为真,则执行语在执行时也是首先判断条件是否为真,如果为真,则执行语句组句组1;否则,执行;否则,执行Else块中的语句组块中的语句组2。如果条件为假,又没有。如果条件为假,又没有Else块,则跳过该块,则跳过该If语句。语句。12.3.1 分支结构12.3 程序流程控制程序流程控制块块If语句还可以使用另一种结构:语句还可以使用另一种结构:If 条件条件1 Then语句组语句组1ElseIf 条件条件2 Then语句组语句组2ElseIf 条件条件3 Then语句组语

32、句组312.3.1 分支结构12.3 程序流程控制程序流程控制 ElseIf 条件条件n Then语句组语句组nElse语句组语句组n+1End If12.3.1 分支结构12.3 程序流程控制程序流程控制3iif函数函数iif函数是函数是If语句的一种特殊格式,使用语法如下:语句的一种特殊格式,使用语法如下:varX=iif(条件条件,表达式表达式1,表达式表达式2)iif函数的作用是:先判断条件,如果条件为真,就返回表达函数的作用是:先判断条件,如果条件为真,就返回表达式式1的值;否则返回表达式的值;否则返回表达式2的值。的值。12.3.1 分支结构12.3 程序流程控制程序流程控制4Se

33、lect Case语句语句If语句只能根据一个条件的是或非两种情况进行选择。如果语句只能根据一个条件的是或非两种情况进行选择。如果要处理有多种选择的情况则必须使用要处理有多种选择的情况则必须使用If语句进行多重嵌套,这使语句进行多重嵌套,这使句子结构变得十分复杂,可读性降低。处理多种选择最有效的方句子结构变得十分复杂,可读性降低。处理多种选择最有效的方法是使用法是使用Select Case语句。语句。12.3.1 分支结构12.3 程序流程控制程序流程控制下面的例子说明了下面的例子说明了Select Case语句的结构和用法:语句的结构和用法:Select Case IntX Case 0 M

34、sgBox 不合格产品不合格产品 Case 1,2,3 MsgBox 特种产品特种产品 Case 5 To 10 MsgBox 内部消费品内部消费品 12.3.1 分支结构12.3 程序流程控制程序流程控制Case Is100 MsgBox 出口优质产品出口优质产品 Case Else MsgBox 特殊情况特殊情况End Select12.3.1 分支结构12.3 程序流程控制程序流程控制Select Case先对其后的字符串、数值变量或表达式求值,先对其后的字符串、数值变量或表达式求值,然后按顺序与每个然后按顺序与每个Case表达式进行比较。表达式进行比较。Case表达式可以有多表达式可以

35、有多种形式:种形式: 单个值或一列值,相邻两个值之间用逗号隔开。单个值或一列值,相邻两个值之间用逗号隔开。 用关键字用关键字To指定值的范围,其中第指定值的范围,其中第1个值不应大于第个值不应大于第2个个值,对字符串将比较第一个字符的值,对字符串将比较第一个字符的ASCII码大小。码大小。12.3.1 分支结构12.3 程序流程控制程序流程控制 使用关键字使用关键字Is指定条件。指定条件。Is后紧接关系运算符(如后紧接关系运算符(如、=和和等)和一个变量或值。等)和一个变量或值。 前面的前面的3种条件形式混用,多个条件之间用逗号隔开。种条件形式混用,多个条件之间用逗号隔开。Case语句按先后顺

36、序进行比较,执行与第语句按先后顺序进行比较,执行与第1个个Case条件相条件相匹配的代码。若不存在匹配的条件,则执行匹配的代码。若不存在匹配的条件,则执行Case Else语句。然语句。然后程序将从后程序将从End Select语句后的代码行继续执行。如果语句后的代码行继续执行。如果Select Case所求得的值是数值类型,则所求得的值是数值类型,则Case条件中的表达式都必须是条件中的表达式都必须是数值类型。数值类型。12.3.1 分支结构12.3 程序流程控制程序流程控制1While循环循环While循环结构如下:循环结构如下:While条件条件 循环体循环体WendWhile循环是当型

37、循环,当条件满足时执行循环体。循环是当型循环,当条件满足时执行循环体。12.3.2 循环结构12.3 程序流程控制程序流程控制2Do WhileLoop和和DoLoop WhileDo WhileLoop循环与循环与While循环都是当型循环,先判断循环都是当型循环,先判断条件,当条件满足时执行循环体。条件,当条件满足时执行循环体。而而DoLoop While语句先执行一次循环体,再判断条件,语句先执行一次循环体,再判断条件,条件满足时再执行循环体。这种循环被称为直到型循环。条件满足时再执行循环体。这种循环被称为直到型循环。12.3.2 循环结构12.3 程序流程控制程序流程控制3Do Unt

38、ilLoop和和DoLoop UntilDo UntilLoop为当型循环,为当型循环,DoLoop Until是直到型循是直到型循环。环。先执行一次循环体,再判断条件,当条件不成立时执行循环先执行一次循环体,再判断条件,当条件不成立时执行循环体。体。Do WhileLoop、DoLoop While、Do UntilLoop和和DoLoop Until循环体中都可以使用循环体中都可以使用Exit Do跳出循环。跳出循环。12.3.2 循环结构12.3 程序流程控制程序流程控制4For循环循环ForNext语句常用于按指定次数重复地执行一组操作。其语句常用于按指定次数重复地执行一组操作。其语法

39、结构如下:语法结构如下:For 循环控制变量循环控制变量=初值初值 To 终值终值 Step 步长步长循环语句循环语句Next其中,其中,“Step步长步长”可以省略,省略时步长值为可以省略,省略时步长值为1。12.3.2 循环结构12.3 程序流程控制程序流程控制循环控制变量可以是整型、长整型、实数(单精度和双精度)循环控制变量可以是整型、长整型、实数(单精度和双精度)以及字符串,但最常用的还是整型和长整型变量。循环控制变量以及字符串,但最常用的还是整型和长整型变量。循环控制变量的初值和终值的设置受步长的约束。当步长为负数时,初值不小的初值和终值的设置受步长的约束。当步长为负数时,初值不小于

40、终值才可能执行循环体;当步长为正数时,初值不大于终值才于终值才可能执行循环体;当步长为正数时,初值不大于终值才可能执行循环体。可能执行循环体。12.3.2 循环结构12.3 程序流程控制程序流程控制For循环执行步骤如下:循环执行步骤如下:(1)将初值赋给循环控制变量。)将初值赋给循环控制变量。(2)判断循环控制变量是否在初值与终值之间。)判断循环控制变量是否在初值与终值之间。(3)如果循环控制变量超出范围,则跳出循环;否则继续)如果循环控制变量超出范围,则跳出循环;否则继续执行循环体。执行循环体。(4)在执行完循环体后,将循环变量加上步长赋给循环变)在执行完循环体后,将循环变量加上步长赋给循

41、环变量,再返回(量,再返回(2)继续执行。)继续执行。12.3.2 循环结构12.3 程序流程控制程序流程控制For循环的循环次数可以按如下公式计算:循环的循环次数可以按如下公式计算:循环次数循环次数=(终值终值-初值初值)/步长步长+1在循环体中,如果需要,可以使用在循环体中,如果需要,可以使用Exit For跳出循环体。跳出循环体。5For EachNext语句语句For EachNext语句用于对一个数组或集合中的每个元素语句用于对一个数组或集合中的每个元素重复执行一组语句。重复执行一组语句。12.3.2 循环结构12.4 模块、函数与子过程模块、函数与子过程按模块的不同使用情况,可以将

42、按模块的不同使用情况,可以将Access中的模块分成中的模块分成4种:种:Access模块、窗体模块、报表模块和类模块。模块、窗体模块、报表模块和类模块。 Access模块:也称为标准模块,可在模块:也称为标准模块,可在“数据库数据库”窗口的窗口的对象栏中单击对象栏中单击“模块模块”来查看数据库拥有的标准模块。来查看数据库拥有的标准模块。 窗体模块:由处理窗体和窗体控件所触发的事件过程组成。窗体模块:由处理窗体和窗体控件所触发的事件过程组成。12.4.1 模块12.4 模块、函数与子过程模块、函数与子过程 报表模块:包含了用于处理报表、报表段或页眉报表模块:包含了用于处理报表、报表段或页眉/页

43、脚所页脚所触发的事件处理程序的代码。触发的事件处理程序的代码。 类模块:不与窗体和报表相关联,允许用户定义自己的对类模块:不与窗体和报表相关联,允许用户定义自己的对象、属性和方法。象、属性和方法。12.4.1 模块12.4 模块、函数与子过程模块、函数与子过程模块的通用声明部分用来对要在模块中或模块之间使用的变模块的通用声明部分用来对要在模块中或模块之间使用的变量、常量、自定义数据类型以及模块级量、常量、自定义数据类型以及模块级Option语句进行声明。语句进行声明。模块中可以使用的模块中可以使用的Option语句包括语句包括Option Base语句、语句、Option Compare语句、

44、语句、Option Explicit语句和语句和Option Private语句。语句。12.4.1 模块12.4 模块、函数与子过程模块、函数与子过程1函数与子过程的定义函数与子过程的定义子程序定义的语法结构如下:子程序定义的语法结构如下:Sub子程序名子程序名() 子程序代码子程序代码End Sub12.4.2 函数与子过程12.4 模块、函数与子过程模块、函数与子过程函数定义的语法结构如下:函数定义的语法结构如下:Function函数名函数名(参数参数) As 数据类型数据类型 函数代码函数代码End Function与定义符号常量、变量和自定义数据类型相似,可以在函数与定义符号常量、变

45、量和自定义数据类型相似,可以在函数和子过程定义时使用和子过程定义时使用Public、Private或或Static前缀来声明子程序前缀来声明子程序和函数的作用范围。和函数的作用范围。12.4.2 函数与子过程12.4 模块、函数与子过程模块、函数与子过程自定义函数的使用和内部函数的使用完全相同,采用函数名自定义函数的使用和内部函数的使用完全相同,采用函数名直接进行调用,并只能用于表达式中参与运算或给变量赋值。直接进行调用,并只能用于表达式中参与运算或给变量赋值。在在Access模块中的子程序和函数如果不使用模块中的子程序和函数如果不使用Private进行声进行声明,则都是公共的。公共的子程序和

46、函数可以被任何其他模块调明,则都是公共的。公共的子程序和函数可以被任何其他模块调用。被用。被Private声明为私有的子程序和函数,只能在定义的模块声明为私有的子程序和函数,只能在定义的模块中使用。中使用。12.4.2 函数与子过程12.4 模块、函数与子过程模块、函数与子过程2创建子程序和函数创建子程序和函数在在VBA中常提到的子程序和函数是指那些不与特定的对象或中常提到的子程序和函数是指那些不与特定的对象或事件绑定的过程。与对象或事件绑定的过程称为事件过程。声明事件绑定的过程。与对象或事件绑定的过程称为事件过程。声明的位置和方式不同,过程的作用范围和生存周期也不同。的位置和方式不同,过程的

47、作用范围和生存周期也不同。(1)在代码模块中创建子程序和函数)在代码模块中创建子程序和函数(2)在窗体类模块或报表类模块中创建子程序和函数)在窗体类模块或报表类模块中创建子程序和函数12.4.2 函数与子过程12.4 模块、函数与子过程模块、函数与子过程3事件过程与函数的调用事件过程与函数的调用(1)事件过程的调用方法)事件过程的调用方法事件过程的调用可以称为是事件触发。当一个对象的事件发事件过程的调用可以称为是事件触发。当一个对象的事件发生时,对应的事件过程会被自动调用。生时,对应的事件过程会被自动调用。(2)过程的参数传递和返回值)过程的参数传递和返回值12.4.2 函数与子过程12.5

48、面向对象的程序设计基本概念面向对象的程序设计基本概念Access采用面向对象程序开发环境,其数据库窗口可以方便采用面向对象程序开发环境,其数据库窗口可以方便地访问和处理表、查询、窗体、报表、页、宏和模块对象。地访问和处理表、查询、窗体、报表、页、宏和模块对象。VBA中可以使用这些对象以及范围更广泛的一些可编程对象。中可以使用这些对象以及范围更广泛的一些可编程对象。12.5.1 集合和对象12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念对象是面向对象程序设计的基本单元,是一种将数据和操作对象是面向对象程序设计的基本单元,是一种将数据和操作过程结合在一起的数据结构,每个对象都有自己的

49、属性和事件。过程结合在一起的数据结构,每个对象都有自己的属性和事件。对象的属性按其类别会有所不同,而且同一对象的不同实例属性对象的属性按其类别会有所不同,而且同一对象的不同实例属性构成也可能有差异。对象除了属性以外还有方法。对象的方法就构成也可能有差异。对象除了属性以外还有方法。对象的方法就是对象可以执行的行为。是对象可以执行的行为。12.5.1 集合和对象12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念Access应用程序由表、查询、窗体、报表、页、宏和模块对应用程序由表、查询、窗体、报表、页、宏和模块对象列表构成,形成不同的类。象列表构成,形成不同的类。Access数据库窗体

50、左侧显示的是数数据库窗体左侧显示的是数据库的对象类,单击其中的任一对象类,就可以打开相应对象窗据库的对象类,单击其中的任一对象类,就可以打开相应对象窗口。而且,其中有些对象内部(如窗体、报表等)还可以包含其口。而且,其中有些对象内部(如窗体、报表等)还可以包含其他对象控件。他对象控件。集合是由一个类的所有实例构成的。集合是由一个类的所有实例构成的。12.5.1 集合和对象12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念属性和方法描述了对象的性质和行为。其引用方式如下:属性和方法描述了对象的性质和行为。其引用方式如下:对象对象.属性或对象属性或对象.行为行为其中,其中,“对象对象”

51、可以是单一对象,也可以是对象的集合。可以是单一对象,也可以是对象的集合。12.5.2 属性和方法12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念Access中除数据库的中除数据库的7个对象外,还提供一个重要的对象:个对象外,还提供一个重要的对象:DoCmd对象。对象。使用使用 DoCmd 对象的方法可以从对象的方法可以从Visual Basic运行运行Access 操作,这些操作可以执行诸如关闭窗口、打开窗体和设置值等任操作,这些操作可以执行诸如关闭窗口、打开窗体和设置值等任务。务。12.5.3 DoCmd对象12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念下面介绍

52、下面介绍DoCmd的主要方法。的主要方法。(1)Close方法方法用于执行关闭操作,基本使用格式如下:用于执行关闭操作,基本使用格式如下:DoCmd.Close(2)OpenForm方法方法用于打开一个窗体,基本使用格式如下:用于打开一个窗体,基本使用格式如下:DoCmd.OpenForm formname,view,filtername,wherecondition12.5.3 DoCmd对象12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念(3)OpenReport方法方法用于打开一个报表,基本使用格式如下:用于打开一个报表,基本使用格式如下:DoCmd.OpenReport

53、reportname,view,filtername,wherecondition(4)RunMacro方法方法用于运行宏,基本使用格式如下:用于运行宏,基本使用格式如下:DoCmd.RunMacro 宏名宏名12.5.3 DoCmd对象12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念事件是事件是Access窗体或报表及其上的控件等对象可以窗体或报表及其上的控件等对象可以“辨识辨识”的动作,例如,单击鼠标、窗体或报表打开等。在的动作,例如,单击鼠标、窗体或报表打开等。在Access数据库数据库系统里,可以通过两种方式来处理窗体、报表或控件的事件响应:系统里,可以通过两种方式来处理

54、窗体、报表或控件的事件响应:一是使用宏对象来设置事件属性;二是为某个事件编写一是使用宏对象来设置事件属性;二是为某个事件编写VBA代码代码过程,完成指定动作,这样的代码过程称为事件过程或事件响应过程,完成指定动作,这样的代码过程称为事件过程或事件响应代码。代码。12.5.4 事件和事件过程12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念实际上,实际上,Access窗体、报表和控件的事件有很多,一些主要窗体、报表和控件的事件有很多,一些主要对象事件如表对象事件如表12.8所示。所示。12.5.4 事件和事件过程12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念12.5.4 事件和事件过程12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念12.5.4 事件和事件过程12.5 面向对象的程序设计基本概念面向对象的程序设计基本概念12.5.4 事件和事件过程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号