12第10章 VBA模块

上传人:野鹰 文档编号:2740474 上传时间:2017-07-27 格式:PPT 页数:40 大小:787KB
返回 下载 相关 举报
12第10章 VBA模块_第1页
第1页 / 共40页
12第10章 VBA模块_第2页
第2页 / 共40页
12第10章 VBA模块_第3页
第3页 / 共40页
12第10章 VBA模块_第4页
第4页 / 共40页
12第10章 VBA模块_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《12第10章 VBA模块》由会员分享,可在线阅读,更多相关《12第10章 VBA模块(40页珍藏版)》请在金锄头文库上搜索。

1、1,第10章 VBA模块,2,第10章 VBA模块,主要内容模块及相关的概念VBA以及程序的组成VBA代码的调试方法VBA程序错误处理方法,3,Access 具有强大的界面功能,这使得用户能够方便地建立各种对象。尤其是利用宏已经可以执行简单的任务,如对象的修改和数据的查找。但在某些情况下,用户需要利用模块提供的强大功能,完成更难的任务。,模块及相关的概念,4,模块的概念,模块是和数据表、查询、报表、宏等一样, 是Access中的一种对象。模块是由一种叫做VBA(Visual Basic for Application)的语言来实现的。VBA是微软公司将Visual Basic的一部分代码结合到

2、OFFICE中而形成的。模块是存储在一个单元中的VBA声明和过程的集合。,5,模块的主要功能,维护数据库:可以将事件过程创建在窗体或报表的定义中,更有利于数据库的维护。创建自定义函数:使用这些自定义的函数就可以避免写复杂的表达式。 显示详细的错误提示:可以检测错误并进行显示。这样就有更好的用户界面,对用户的下一步操作进行帮助。 执行系统级的操作:可以对系统中文件进行处理,使用动态数据交换(DDE),应用Windows系统函数和数据通讯。,6,模块的分类,模块有两种:类模块和标准模块。 (1) 类模块是包含类的定义的模块,包含其属性和方法的定义。类模块有三种基本形式:窗体类模块、报表类模块和自定

3、义类模块,它们各自与某一窗体或报表相关联。为窗体(或报表)创建第一个事件过程时,Access将自动创建与之关联的窗体或报表模块。单击窗体(或报表)“设计”视图中工具栏上的“代码”命令 。可以查看窗体(或报表)的模块。,7,模块的分类,(2) 标准模块包含在数据库窗口的模块对象列表中,标准模块包括有通用过程和常用过程,这些过程不与Access数据库文件中的任何对象相关联,也就是说,如果控件没有恰当的前缀,这些过程没有指向Me(当前对象)或控件名的引用。但可以在数据库中任何其他对象中引用标准模块中的过程。,8,模块的组成,通常,模块是由以下两部分组成: 第一部分是声明部分:可以在这部分定义变量、常

4、量、自定义类型和外部过程。在模块中,声明部分与过程部分是分割开来的,声明部分中设定的常量和变量是全局性的,可以被模块中的所有过程调用。 第二部分是事件过程部分:这是一种自动执行的过程,用来对用户或程序代码启动的事件或系统触发的事件做出响应。包括函数和过程。,9,过程,过程是用VBA语言的声明和语句组成的单元,作为一个命名单位的程序段,它可以包含一系列执行操作或计算值的语句和方法。一般使用的过程有两种类型:Sub(子程序)过程和Function(函数)过程,10,1. Sub过程,Sub过程是执行一系列操作的过程,在执行完成后不返回任何值,是能执行特定功能的语句块。Sub过程可以被置于标准模块和

5、类模块中。声明Sub过程的语法形式如下:Public | Private Static Sub 子程序名( As 数据类型)Exit SubEnd Sub,11,2. Function过程,Function过程又称为函数,也是能执行特定功能的语句块。函数也是一种过程。在VBA中,提供了大量的内置函数,编程时可以直接引用。但有时需要按自己的要求定义函数,不过它是一种特殊的、能够返回值的Function过程。有没有返回值,是Sub过程和Function过程之间最大的区别。声明函数的语法形式如下:Public | Private Static Function 函数名(As 数据类型) As 数据类

6、型函数名=Exit Function函数名=End Function,12,VB开发环境,VBA开发环境可以用于创建和编辑VBA程序,也可以用于编辑已录制的宏和编写新宏。,模块代码,工程资源管理器,模块属性,VBA主窗口,13,VBA编程基础,数据类型VBA一般用变量保存计算的结果、设置属性、指定方法的参数以及在过程间传递数值。为了高效率地执行,VBA为变量定义了一个数据类型的集合。在Access里,很多地方都要指定数据类型,包括过程中的变量、定义表和函数的参数等。,14,数据类型,VBA的数据类型可以分为数值数据类型、布尔数据类型、日期数据类型、字符数据类型,对象数据类型、变体数据类型和用户

7、自定义数据类型。 各种数据类型所占用的存储空间、所表示的数据范围大小、以及支持的数据运算不同。,15,数据类型,16,(一)数值数据类型VBA中数值数据类型包括字节、整型、长整型、单精度、双精度、货币等。 数据的存储从 8位到96位不等。数据支持加、减、乘、除等运算。货币类型的数据保持小数点左边15位数字,右边4位数字,以满足精度的需要。,17,(二)布尔数据类型 布尔数据类型以16位数字形式存储。布尔数据类型只有True和False两个值。布尔数据支持逻辑或、与、非等运算。 当其他数值类型转化为布尔型时,0转化为False,其它值均转化为True。当布尔型转化为其他数值类型时,False转化

8、为0,True转化为1。,18,(三)日期数据类型 日期数据类型以64位浮点数值形式存储。日期数据类型表示的范围为100年1月1日直到9999年12月31日,时间从0:00:00到23:59:59。日期变量根据计算机中的短日期格式显示,时间则根据计算机的时间格式显示。 当其他数值类型转化为时间类型时,整数部分表示日期,小数部分表示时间,负整数表示1899年12月31日前的日期。,19,(四)字符数据类型型 每个字符以一个字节(8位)进行表示,对应的数值范围是0到255。字符集中的前128个字符对应于ASCII字符集中的定义。字符集的后128个字符代表特定的字符。字符数据类型有两种:变长字符和定

9、长字符。变长字符可以包括的字符数量为0到大约20亿个。定长字符可以包括的字符数量为包括1到大约64K个字符。,20,(五)对象数据类型 对象变量以32位的指向对象的地址形式进行存储。使用Set语句声明成Object的变量可以包含任何对象的引用。也可以将对象引用指向特定类生成的实例对象,这样可以实现早期绑定。,21,(六)变体数据类型 变体数据类型的变量所代表的数据类型不是确定的,可以成为任何类型的变量。变体数据类型的变量可以存储特殊值,如:Empty,Error,Nothing,Null等。变体数据类型中的数值类型可以代表任何整型或实型数。,22,(七)自定义数据类型 使用Type语句,可以定

10、义任何结构型数据类型。 例如:Type 人员 姓名 As String 出生日期 As Date 性别 As String End Type 以上定义了“人员”这种数据类型,包括“姓名”、“生日”、“性别”三个数据域。,23,变量,变量是指在程序运行过程期间其值可以变化的量。在VBA 代码中声明和使用指定的变量来存储值、计算结果或操作数据库中的任意对象。,24,(1)变量名必须以英文字母开头。(2)变量名不能包含空格、句点等字符。(3)变量名的长度不能超过255个字符。且变量名不区分大小写。(4)不能在某一范围内的相同层次中使用重复的变量名。(5)变量的名字不能是VBA的关键字。,变量名命名原

11、则,25,声明变量,1. 语法: Dim 变量名 As数据类型 Static变量名 As数据类型 Public变量名 As数据类型 Private变量名 As数据类型 2. 说明: 其中Dim等是关键字,说明这个语句是变量的声明语句。如果没有 As数据类型 子句,则默认该变量为变体(Variant)类型。,26,数组变量,可以用一个数组来表示一组具有相同数据类型的值。定义了数组之后,可以引用整个数组,也可以只引用数组的个别元素。数组变量的声明语句对数组变量进行声明,可以使用Dim语句,其格式为: Dim 数组名(数组下标上限) As 数据类型 注意:默认的数组元素的下标下限值为0。,27,常量

12、,常量是指在程序运行过程中始终固定不变的量。VBA的常量包括数值常量、字符常量、日期常量、符号常量、固定常量和系统定义常量等。系统定义常量有三个:True、False和Null。固有常量是Access自动定义的常量。所有固有常量都可以在宏或VBA代码中使用。通常,固有常量通过前两个字母来指明定义该常量的对象库。来自Access的常量以“ac”开头,来自VB库的常量则以“vb”开头。可以使用“对象浏览器”来查看所有对象库中的固有常量列表。,28,VBA常用语句,1. 基本语句 (一)声明语句: 声明语句的功能是声明变量、常量或数据类型。 声明语句的位置通常在模块、函数或过程的开始处。 声明语句的

13、语法应按照我们在上一讲所学的有关变量、常量等的说明进行。,29,赋值语句:,1. 语法: Let 变量名 = 值(或表达式) Set 变量名= 值(或表达式) 2. 说明: 赋值语句用于指定变量为某个值或为某个表达式。用Let语句赋值,对应的是原子数据类型。Let通常还可以省略。用Set语句赋值,对应的是复杂数据类型。可以是用户自定义的数据类型或对象类型的数据。,30,(二)If.Then.Else 语句 1. 语法: If 条件表达式 Then 语句1 Else 语句2 End if 2. 说明: 其中If和End If括定了条件语句的开始和结束, 判断条件表达式,如果为True,则执行语句

14、1,否则执行语句2。,31,(三)For.Next 语句 1. 语法:For 变量 = 始值 To 终值 Step 步长 循环体语句 Exit For 循环体语句Next,32,2. 说明: 其中For和Next括定了循环开始和结束, 其中变量是循环变量,从 始值循环到终值。开始循环时,将变量值与终值进行比较,如果符合循环条件,就会执行循环体语句。当所有循环中的语句都执行后,步长值会加到 变量中。此时,再对循环条件进行判断。循环中的语句可能会再次执行,也可能是退出循环并从 Next 语句之后的语句继续执行。 Exit For语句可以出现在循环中任意多次,以退出循环。循环条件:步长参数值决定循环

15、条件,step正数或 0 : counter = end,33,(三)其它可执行语句,可执行语句是VBA的重要部分,我们刚才所介绍的赋值、条件、循环语句都是可执行语句。可执行语句还包括初始化操作、执行对象的方法或属性的改变信息的提示等。如果有兴趣大家可以自行学习。,34,(四)注释语句,注释语句可以说明一个程序段的功能,从而提高了程序的可读性。也可以将某部分程序加以注释,可以避免再次的程序输入工作,从而提高了效率。第一种方法是用进行注释。 如:这是一个注释语句第二种方法是用Rem进行注释。 如:Rem 这是一个注释语句,35,事件过程的说明,打开【数据库】窗口,选择【窗体】对象,然后以设计视图打开要设置事件过程的窗体。 选中要设置事件的【进入】按钮,单击鼠标右键,选择【事件生成器】命令,此时会弹出一个【选择生成器】对话框,选择【代码生成器】 ,单击【确认】按钮。 此时屏幕上会弹出一个代码编辑窗口,在其中输入事件过程即可。 另一种进行事件过程设置的方法是:在 VBA开发环境的 【工程资源管理器】中,展开类对象,选择要修改的报表。然后可以在它的【模块代码】部分中输入所需的代码。,

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

当前位置:首页 > 行业资料 > 其它行业文档

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