数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用

上传人:E**** 文档编号:89422878 上传时间:2019-05-25 格式:PPT 页数:36 大小:1.73MB
返回 下载 相关 举报
数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用_第1页
第1页 / 共36页
数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用_第2页
第2页 / 共36页
数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用_第3页
第3页 / 共36页
数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用_第4页
第4页 / 共36页
数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用》由会员分享,可在线阅读,更多相关《数据库基础——Access 2003应用教程(第二版)-电子教案-程伟渊 第八章 VBA的设计与应用(36页珍藏版)》请在金锄头文库上搜索。

1、8.1 认识VBA,8.1.1 什么是VBA VBA(Visual Basic for Applications)是广泛流行的可视化应用程序开发语言VB(Visual Basic)的子集。学过VB语言的读者会发现VBA语言的语法和特色与VB语言基本类似。反过来,当有VBA语言基础的读者阅读VB程序代码也会感觉似曾相识,学习起来也会变得相当容易。 VBA语法简单但功能强大,支持基于面向对象(OOP)的程序设计,非常适合初学者使用。 需要注意的是,VB语言开发系统是独立运行的开发环境,它创建的应用程序可以独立运行在Windows平台上;而VBA则不同,其编程环境和VBA程序都必须依赖Office应

2、用程序(如Access、Word、Excel等)。,8.1 认识VBA,8.1.2 VBA与宏 Access宏实质上就是VBA程序,宏的操作实际上就是用VBA代码实现的。 宏的用法简单,上手容易,比较适合没有编程基础的用户开发普通应用程序。宏的不足是功能较弱、运行效率较差。 Access内嵌的VBA功能强大,VBA具有较完善的语法体系和强大的开发功能,采用目前主流的面向对象机制和可视化编程环境,适用于开发高级Access数据库应用系统。,8.1 认识VBA,8.1.3 VBA 开发环境,8.2 VBA语法基础,8.2.1 数据类型,8.2 VBA语法基础,8.2.2 常数 常数是指不变的数据,

3、如数值3、字母“a”等。VBA常数也具有多种不同类型,不同的数据类型一般具有不同的书写形式。 数值型 布尔型 日期时间型 系统常量,8.2 VBA语法基础,8.2.3 变量 变量是被命名的内存区域,用以临时保存程序运行过程中需要的数据。在程序运行过程中,变量存储的数据可以发生变化,如同一间旅馆客房,昨天可住旅客A,今天住旅客B,明天又有可能被闲置。 一般地,使用变量前应先进行定义,VBA中定义变量的格式为: Dim As , 格式中Dim是一个VBA命令,此处用于定义变量;As是关键字,此处用于指定变量的数据类型。例如:Dim bAge as Byte,8.2 VBA语法基础,8.2.4 符号

4、常量 VBA编程中,对一些使用频度较高的常量,可以用符号常量的形式来表示。符号常量也是一种被命名的内存区域,只不过在程序运行过程中符号常量的值不能被改变。 符号常量定义的格式为: Const as = ,. 说明:格式中尖括号部分为必填内容,中括号部分为选填内容,,表示之前部分可重复。 例如: Const PI=3.1415926 或 Const PI as Single=3.1415926 ,dayHours as Byte=10 圆周率是一个常量,上例中我们定义了这样的一个常量PI可以代表其值。在编制程,8.2 VBA语法基础,8.2.5 数组 数组也是一个被命名的内存区域,与变量只有一个

5、存储单元不同,数组中可以包含多个存储单元,每个存储单元都被称为元素,都可存储数据,数组的各元素都应存储相同类型的数据。为了识别数组中不同的元素,数组元素可以通过下标来访问,数组下标默认从0开始。 定义数组 我们可以使用下面的方式定义数组。 Dim bAge(9) As Byte 本例定义了一个Byte型数组,其下标默认从0开始至9结束,它的第一个元素被记为bAge(0),第二个元素被记为bAge(1),依次类推。即该数组可存储10个Byte型数据。 定义数组还可以使用下面的方式 Dim bAge( 3 to 5 ) As Byte 其中对数组定义的含义是bAge数组下标从3开始至5结束,该数组

6、共有三个元素。 数组元素可以象普通变量一样使用,既可以存储数据,也可以读取数据,如 bAge(3)=21 为bAge(3)元素赋值,8.2 VBA语法基础,二维数组 前面我们定义的数组都属一维数组,即元素下标只有一个。二维数组元素有两个下标,它相当于一张由行和列组成的二维表格,第一维下标相当于行,第二维下标相当于列。我们这样定义二维数组。 Dim sStudents(39,5 ) As Single 二维数组sStudents拥有两个下标,由于默认下标从0开始,所以它可以被看成一个40行、6列的表格。,8.2 VBA语法基础,动态数组 在定义数组时可以不指定下标,而改在程序运行需要时再指定,即

7、数组元素的数量是可动态改变的,这种数组被称作动态数组。 假定我们想用数组sAges存储某班级学生的年龄,由于各班级的学生数量可能不同,因此我们在定义数组时不便指定数组大小,当班级学生数量确定后我们再指定数组的大小(即数组下标范围)。 我们先定义一个动态数组 Dim bAges( ) As Byte 如果我们知道某班有N名学生,我们就可以重设该数组的大小。 ReDim bAges(N-1) 在定义常量、变量或数组时,如果未指定变量类型,系统默认为Variant型数据。,8.2 VBA语法基础,8.2.6 函数 函数是VBA内置的具有某种功能的特殊程序。它就象一只黑匣子,接收外部输入的数据并向外部

8、返回一个处理结果。函数的使用格式为: 函数名(参数 , ) 如:Right(“abcdef”,2) 该函数的功能是从第一个字符串参数值的右端截取指定长度的字符。此例中将从字符串“abcdef”的右端截取2个字符。下面的函数功能恰好与它相反,其作用是从指定字符型数据值的左端截取2个字符。 如:Left(“山东交通学院“,2),8.2 VBA语法基础,8.2.7 表达式 表达式是由常量、变量、函数、运算符和圆括号等构成。VBA提供了丰富的运算符,其中包括算术运算符、比较运算符、逻辑运算符和连接运算符等。参与运算的数据被称作操作数。运算符和操作数据构成表达式。,8.2 VBA语法基础,8.2.8 语

9、句 按照功能不同,VBA语句可以分成三大类: 声明语句:如用于变量、符号常量或程序定义的语句; 执行语句:如赋值、程序调用和实现流程控制的语句等; 注释语句:主要用于为命令行或程序块进行注解说明,此类语句在程序运行过程中不会产生任何效果(它不会被执行),但在程序设计过程中适当地使用注释语句有利于提高程序的可读性。 VBA注释语句既可以单独放置在一行内,也可以放置在某个语句尾部。,8.3 模块和过程,8.3.1 模块 模块是VBA代码组织形式,在Access中模块可分为两类: 类模块 标准模块 窗体和报表模块都是类模块,而且它们各自与对应的窗体或报表相关联。窗体或报表模块通常都含有事件过程,当它

10、们创建第一个事件过程时,Access将自动创建与窗体或报表对象相关联的类模块。 与类模块不同,标准模块不与任何对象相关联。标准模块中的程序是通用的,可以在数据库的位置被调用执行。,8.3 模块和过程,8.3.2 模块管理,8.3 模块和过程,8.3.3 过程,8.3 模块和过程,8.3.4 Sub过程(子程序) 例8-1:创建一个Sub过程,计算半径为2的圆的周长。,8.3 模块和过程,8.3.5 Function过程(自定义函数) 例8-2:创建一个Function过程,计算半径为3.5的圆的周长。,8.3 模块和过程,8.3.6使用参数 例8-3:创建一个Function过程,计算圆的周长

11、。,8.4 对象模型,8.4.1 Access对象,8.4 对象模型,8.4.2 对象属性 Access中提供了对象属性窗口,在对象设计阶段我们可以通过属性窗口访问或设置对象属性。而在对象运行过程中,我们则需要利用宏或VBA来访问对象的这些属性。 访问对象属性的格式为: 对象.属性 用户既可以获取对象的属性值,也可以更改属性值。如 ? Forms!my Form.Caption在立即窗口中输出窗体的Caption值 Forms!my Form!btn OK.Visible=False设定对象不可见,8.4 对象模型,8.4.3 对象事件 对象识别出了某些“动作”(即事件被触发),就有可能为这些

12、动作作出一定的响应,事件过程就规定了对象响应的具体动作。我们可以利用对象的属性窗口为对象添加事件过程,也可以在代码窗口中定义事件过程。 事件过程的定义格式是 Private Sub 对象_事件() 过程体 End Sub 例如myForm对象的Click事件定义如下: Private Sub myForm_Click() MsgBox(“您单击了我”) End Sub 对象内置了很多事件,用户只需对自己感兴趣的事件进行设置即可;如果对象的某事件代码空白,系统不会对此作出任何处理。,8.4 对象模型,8.4.4 对象方法 现在我们利用DoCmd对象关闭myForm窗体,其使用方法是:DoCmd.

13、Close acForm, “myForm” 此命令中acForm是一个系统内部符号常量,它表示窗口对象;Access预定义了一些内部符号常量,主要用为DoCmd命令语句中的参数,均以ac开头。打开对象浏览器窗口,在“工程/库”列表中选择Access项,再在类列表中选择选项,就可以在右面的成员列表中找到这些符号变量了。,8.4 对象模型,8.4.5 With语句 With 语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变一个对象的多个属性,可以在 With 控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。下面的例子显示了如何使用

14、With 语句来调用同一个对象的几个方法。 With DoCom .Close acForm,“学生基本信息” .Close acForm, “测试窗体” .Quit End With,8.4 对象模型,8.4.6 用户自定义数据类型 在模块的“通用全局”段中,我们按下面的方式自定义一个Student数据类型。 Type Student No as String 8位字符 Name as String 6位字符 Sex as Boolean 设男生对应True,女生对应False Birthday as Date 生日 End Type 自定义数据类型定义完成,它就可以被当作普通变量类型来使用

15、了。 Dim Stud As Student 声明变量 Stud.No=”20051983” 为变量内的元素赋值 Debug.Print Stud.Birthday 输出变量内元素的值,8.5 流程控制语句,8.5.1 IF / End IF结构,2.7 数据库的管理,添加Else子句,2.7 数据库的管理,添加ElseIf子句,2.7 数据库的管理,8.5.2 Select Case结构,2.7 数据库的管理,例8-8:输入17间的整数,程序自动将其转换成星期数,如3“星期三”。,2.7 数据库的管理,8.5.3 For/Next结构语句 例8-10:计算1+2+3+4+99+100的和。

16、分析累加数据初值为1,终值为100,步长(数据间递变)为1,利用For/Next结构很容易实现它。程序代码如下。 Sub Ex8_10() Dim n As Integer, S As Integer S = 0 S存储数据累加之和 For n = 1 To 100 Step 1 S = S + n Next Debug.Print “S=“ & S End Sub,2.7 数据库的管理,8.5.4 Do/Loop语句 例8-12:分析下面程序的运行结果 Sub Ex8_11 ( ) Dim n As Integer, S As Integer S = 0 n = 1 Do S = S + n n = n + 1 Loop While n 100 Debug.Print “S=“ & S End Sub,2.7 数据库的管理,8.5.5 结构的嵌套,2.7 数据库的管理,8.5.4 Do/Loop语句 例8-12:分析下面程序的运行结果 Sub Ex8_1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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