模块与VBA编程基础.ppt
《模块与VBA编程基础.ppt》由会员分享,可在线阅读,更多相关《模块与VBA编程基础.ppt(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章 模块与模块与VBA编程基础编程基础 模块的基本概念模块的基本概念 8.1创建模块创建模块8.2VBA程序设计基础程序设计基础8.3 VBA流程控制语句流程控制语句8.4 过程调用和参数传递过程调用和参数传递8.5 VBA程序的调试程序的调试8.7 VBA程序运行错误处理程序运行错误处理8.68.1 模块的基本概念模块的基本概念模块是模块是Access中一个重要的数据库对象,模块中可中一个重要的数据库对象,模块中可包含一个或多个过程。包含一个或多个过程。过程是由一系列过程是由一系列VBA代码组成的。它包含许多代码组成的。它包含许多VBA语句和方法,以执行特定的操作或计算数值。语句和方
2、法,以执行特定的操作或计算数值。简而言之,简而言之,模块是装着模块是装着VBA代码的容器。代码的容器。特点:特点:l模块比宏的功能更强大,运行速度更快,能直接运行模块比宏的功能更强大,运行速度更快,能直接运行Windows的其他程序。的其他程序。l使用模块可以建立用户自己的函数,完成复杂的计算、使用模块可以建立用户自己的函数,完成复杂的计算、执行宏所不能完成的任务。执行宏所不能完成的任务。l使用模块可以开发十分复杂的应用程序,使数据库系使用模块可以开发十分复杂的应用程序,使数据库系统功能更加完善。统功能更加完善。Access中,模块分为类模块和标准模块两种。中,模块分为类模块和标准模块两种。8
3、.1.1 标准模块标准模块标准模块一般用于存放供其他标准模块一般用于存放供其他Access数据库对象使用数据库对象使用的的公共过程。公共过程。标准模块通常安排一些公共变量或过程供类模块里的过标准模块通常安排一些公共变量或过程供类模块里的过程调用。在标准模块内部也可以定义私有变量和私有过程调用。在标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用程仅供本模块内部使用特点特点:标准模块中的公共变量和公共过程具有:标准模块中的公共变量和公共过程具有全局特性全局特性,其作用在整个应用程序里,生命周期是伴随着应用程序其作用在整个应用程序里,生命周期是伴随着应用程序的运行而开始、关闭而结束。的运行
4、而开始、关闭而结束。创建方法:选择模块对象,然后单击新建按钮或插入菜创建方法:选择模块对象,然后单击新建按钮或插入菜单选择模块。单选择模块。8.1.2 类模块类模块类模块是以类的形式封装的模块,是面向对类模块是以类的形式封装的模块,是面向对象编程的单位。象编程的单位。类模块按照形式不同分为两大类:类模块按照形式不同分为两大类:l系统对象类模块系统对象类模块l用户定义类模块用户定义类模块系统对象类模块系统对象类模块窗体和报表都可以含有自己的事件代码和窗体和报表都可以含有自己的事件代码和处理模块,这些模块属于系统对象类模块。处理模块,这些模块属于系统对象类模块。进入相应的模块代码设计区域的方法:一
5、进入相应的模块代码设计区域的方法:一单击单击“代码代码”按钮;二是单击事件过程。按钮;二是单击事件过程。特点:类模块具有局部特性,其作用范围特点:类模块具有局部特性,其作用范围局限在所属窗体或报表内部,而生命周期局限在所属窗体或报表内部,而生命周期则是伴随着窗体或报表的打开而开始、关则是伴随着窗体或报表的打开而开始、关闭而结束。闭而结束。用户定义类模块创建方法:在模块对象下:单击”插入”|“类模块”8.2 创建模块创建模块创建模块就是创建过程创建模块就是创建过程过程是模块的单元组成,由过程是模块的单元组成,由VBA代码编写而成。代码编写而成。过程是一段可以实现某个具体功能的代码过程是一段可以实
6、现某个具体功能的代码过程分为两类:过程分为两类:Sub子过程和子过程和Function函数过程函数过程。一、在模块中加入过程:一、在模块中加入过程:创建方法:创建方法:打开窗体或报表的事件过程进入打开窗体或报表的事件过程进入选中单击模块对象,单击选中单击模块对象,单击“新建新建”一个模块包含一个声明区域,且可以包含一个或多个子一个模块包含一个声明区域,且可以包含一个或多个子过程或函数过程。过程或函数过程。模块的声明区域是用来声明模块使模块的声明区域是用来声明模块使模块的声明区域是用来声明模块使模块的声明区域是用来声明模块使用的变量等项目用的变量等项目用的变量等项目用的变量等项目。1、Sub过程
7、(子过程)无返回值。过程(子过程)无返回值。定义格式:定义格式:Sub 过程名过程名 程序代码程序代码 End Sub过程的调用:过程的调用:Call 过程名过程名Sub jc()Dim str1,str2,str3str1=beijing :Rem 给变量给变量str1赋值赋值str2=shanghai 给变量给变量str2赋值赋值str3=str1+str2Debug.Print str3End SubDebug.Print在立即在立即 窗口中显示结果窗口中显示结果:Rem Dim定义变量定义变量立即窗口的显示立即窗口的显示:视图视图|立即窗口立即窗口Public Sub name Pri
8、vate Sub namePublic 表示表示 Sub 过程可被所有过程可被所有 Script 中的所有其中的所有其他过程访问。他过程访问。Private 表示表示 Sub 过程只可被声明该过程的过程只可被声明该过程的 Script 中的其他过程访问。中的其他过程访问。Name Sub 的名称,遵循标准变量命名约定。的名称,遵循标准变量命名约定。Integer-数据类型数据类型Integer 字节或者整数字节或者整数。如果知道变量总是存放整数,。如果知道变量总是存放整数,则应该将其申明为则应该将其申明为Interger类型或类型或Long 类型。整数类型。整数的运算速度快,而且占用的内存少。
9、的运算速度快,而且占用的内存少。Dim(定义变量定义变量)方法为:方法为:Dim 变量变量 As 变量类型变量类型 2、Function过程(又称函数)有返回值过程(又称函数)有返回值定义格式:定义格式:Function 过程名过程名 AS(返回值)类型(返回值)类型 程序代码程序代码 END Function调用:直接用函数名调用调用:直接用函数名调用过程过程test的定义如下:的定义如下:Sub test()Dim n As Integer,k As Long n=InputBox(n=)Debug.Print jc(n)k=jc(n)+jc(n+2)调用函数调用函数jc Debug.Pr
10、int“n!+(n+2)!=;kEnd Sub函数函数jc的定义如下:的定义如下:Function jc(n As Integer)As Long 函数的返回值为函数的返回值为Long型型 Dim i As Integer,s As Long s=1 For i=1 To n s=s*i Next i jc=s 给函数赋值给函数赋值End Function二、在模块中执行宏二、在模块中执行宏在模块的过程定义中,使用在模块的过程定义中,使用Docmd对象对象的的RunMacro方法可以执行设计好的宏方法可以执行设计好的宏调用格式:调用格式:Docmd.RunMacro 宏名宏名,宏的运行,宏的运
11、行次数次数,数值表达式,数值表达式注意:宏名用双引号引起来注意:宏名用双引号引起来8.3 VBA程序设计基础程序设计基础VBA是是Microsoft Office内内置置的的编编程程语语言言,其其语语法法与与VB语语言言兼兼容容。不不是是一一个个独独立立的的开开发发工工具具,一一般般被被嵌嵌入入到到像像Word、Excel、Access这这样样的宿主软件中,与其配套使用的宿主软件中,与其配套使用VBA采用了面向对象的程序设计方法。采用了面向对象的程序设计方法。8.3.1、程序语句书写原则、程序语句书写原则1、语句书写规则、语句书写规则通常一个语句写在一行,语句较长一行写不下时,可以通常一个语句
12、写在一行,语句较长一行写不下时,可以用用续行符(续行符(_)将语句连续写在下一行将语句连续写在下一行可以使用可以使用冒号冒号将几个语句分隔写在一行中将几个语句分隔写在一行中 例如模块例如模块2当输入一行语句并按下回车键后,代码以当输入一行语句并按下回车键后,代码以红色文本显示红色文本显示表明该语句存在错误表明该语句存在错误2、注释语句、注释语句两种方式:两种方式::Rem 注释语句注释语句注释语句注释语句注释默认注释默认以绿色文本显示以绿色文本显示。还可以利用还可以利用“编辑编辑”工具栏中的工具栏中的“设置注释块设置注释块”按钮和按钮和“解除注释块解除注释块”按钮对大块代码进行注释或解除注释按
13、钮对大块代码进行注释或解除注释例题:定义变量例题:定义变量,赋值并添加注释赋值并添加注释Sub ab()Dim str1,str2str1=“shanghai“:Rem 为变量为变量str1赋值赋值str2=shi bo hui 为变量为变量str2赋值赋值Debug.Print str1+str2End Sub3、采用缩进格式书写程序、采用缩进格式书写程序显示出流程中的结构显示出流程中的结构 也可以利用编辑也可以利用编辑缩进或凸出缩进或凸出8.3.2 面向对象程序设计的概念面向对象程序设计的概念1对象和集合对象和集合对象:对象:在采用面向对象程序设计方法的程序中,程序处理在采用面向对象程序设
14、计方法的程序中,程序处理的目标被抽象成了一个个对象,的目标被抽象成了一个个对象,每个对象具有各自的属每个对象具有各自的属性、方法和事件性、方法和事件。一个对象就是一个实体一个对象就是一个实体。对象的方法。对象的方法就是对象的可以执行的行为,一个对象都有多种方法。就是对象的可以执行的行为,一个对象都有多种方法。对象集合:对象集合:Access数据库窗口左侧的数据库窗口左侧的7类对象列表形成对类对象列表形成对象类。象类。7类对象。类对象。集合表示的是某类对象所包含的实例构成集合表示的是某类对象所包含的实例构成 Access中除了数据库的中除了数据库的7类个对象外,还提供一个重要类个对象外,还提供一
15、个重要的对象:的对象:DoCmd。主要功能是通过调用包含在内部的。主要功能是通过调用包含在内部的方法实现方法实现VBA编辑中对编辑中对Access的操作。的操作。属性和方法描述了对象的性质和行为属性和方法描述了对象的性质和行为格式:对象格式:对象.属性或对象属性或对象.行为行为属性:属性:用来表示对象的状态,如窗体的用来表示对象的状态,如窗体的Name(名称)(名称)属性、属性、Caption(标题)属性等。(标题)属性等。如:如:Label1.caption方法:方法:用来描述对象的行为,如窗体有用来描述对象的行为,如窗体有Refresh方法,方法,例如,利用例如,利用Docmd对象的方法可
16、以打开报表对象的方法可以打开报表“教师教师信息信息”,其格式为,其格式为:Docmd.OpenReport“教师教师信息信息”Debug对象有对象有Print方法等。方法等。Debug对对象:象:该对该对象可在象可在调试阶调试阶段用段用Print方法在立方法在立即窗口即窗口输输出信息出信息 Debug.print2属性和方法属性和方法3事件和事件过程事件和事件过程 事件:事件:是对象可以识别的动作,通常由系统预先定是对象可以识别的动作,通常由系统预先定义义(附录附录E列出了列出了Access数据库对象的事件数据库对象的事件)事件过程:事件过程:对象在识别了所发生的事件后执行的程对象在识别了所发
17、生的事件后执行的程序序例如,下面的事件过程描述了单击按钮之后所发生的例如,下面的事件过程描述了单击按钮之后所发生的一系列动作。一系列动作。Private Sub Command1_Click()Command1.Caption=首都经济贸易大学首都经济贸易大学End Sub8.3.3 数据类型和数据库对象数据类型和数据库对象Access数据库系统创建表对象时所涉及的字段数据类型(除数据库系统创建表对象时所涉及的字段数据类型(除了了OLE对象和备注数据类型外),在对象和备注数据类型外),在VBA中都有数据类型中都有数据类型相对应相对应一、标准数据类型一、标准数据类型定义数据类型时定义数据类型时,
18、也可以用符号定义也可以用符号定义Dim a as single dim a!1、布尔型数据:、布尔型数据:两个值两个值True和和False。True=-1 False=02、日期型数据:、日期型数据:前后必须用前后必须用#号,如号,如#2012/11/233、变体类型数据:、变体类型数据:除定长字符串类型及用户自定义类型外,除定长字符串类型及用户自定义类型外,包含其他任何类型数据包含其他任何类型数据。VBA中规定,程序中如果没有显式声明或使用符号来定义变中规定,程序中如果没有显式声明或使用符号来定义变量的数据类型,则默认为变体类型量的数据类型,则默认为变体类型数据类型数据类型类型标识类型标识
19、符号符号 取值范围取值范围整数整数Integer%-32,768 32,767长整数长整数Long&-2,147,483,648 2,147,483,647单精度数单精度数Single!双精度数双精度数Double#货币货币Currency字符串字符串String$065500字符字符布尔型布尔型BooleanTrue 或或False日期型日期型Date100年年1月月1日日9999年年12月月31日日变体类型变体类型Variant无无二、用户自定义的数据类型二、用户自定义的数据类型在应用过程中利用在应用过程中利用VBA标准数据类型自己定义需要的多种数据标准数据类型自己定义需要的多种数据类型类
20、型格式:格式:Type 数据类型名数据类型名 As As End Type例:定义一个学生信息数据类型例:定义一个学生信息数据类型Type NewStudenttxtNo As String*7 学号,学号,7位定长字符串位定长字符串txtName As string 姓名,变长字符串姓名,变长字符串txtSex As String*1 性别,性别,1位定长字符串位定长字符串txtAge As Integer 年龄年龄,整型整型End Type当需要建立一个变量用来保存包含不同数据类型字段的数据表当需要建立一个变量用来保存包含不同数据类型字段的数据表的一条或多条记录时,用户自定义数据类型就特别
21、有用。的一条或多条记录时,用户自定义数据类型就特别有用。一般用户自定义数据类型使用时,首先要在模块区域中定义用一般用户自定义数据类型使用时,首先要在模块区域中定义用户数据类型,然后显式以户数据类型,然后显式以Dim,Public或或Static关键字来关键字来定义此用户类型变量定义此用户类型变量 用户定义类型变量的取值:变量名用户定义类型变量的取值:变量名.分量名分量名例:例:Dim NewStud as NewStudent NewStud.txtno=“980306”NewStud.txtName=“冯伟冯伟”NewStud.txtSex=“女女”NewStud.txtAge=20也可以使
22、用也可以使用With关键字简化一下程序中的重复部分。关键字简化一下程序中的重复部分。Dim NewStud as NewStudentWith NewStud .txtno=“980306”.txtName=“冯伟冯伟”.txtSex=“女女”.txtAge=20End With三、数据库对象(三、数据库对象(略)略)8.3.4变量与常量变量与常量变量是指程序运行时值会发生变化的数据变量是指程序运行时值会发生变化的数据。程序运。程序运行时行时,变量代表的就是内存中的某块临时存储空间变量代表的就是内存中的某块临时存储空间 1、变量的命名规则、变量的命名规则(1)以字母或汉字开头,后可跟字母、数字
23、或下划线。)以字母或汉字开头,后可跟字母、数字或下划线。(2)变量名最长为)变量名最长为255个字符。个字符。(3)不区分变量名的大小写)不区分变量名的大小写(4)不能包含空格)不能包含空格2、常量是指在程序中可以直接引用的实际值,其值在程序运、常量是指在程序中可以直接引用的实际值,其值在程序运行中不变。行中不变。VBA中有三种常量:直接常量、符号常量、系中有三种常量:直接常量、符号常量、系统常量。统常量。一变量的声明一变量的声明变量声明就是定义变量名称及类型,使系统为变量变量声明就是定义变量名称及类型,使系统为变量分配存储空间。一般,变量在使用前应该先声明分配存储空间。一般,变量在使用前应该
24、先声明。VBA声明变量有两种方法:声明变量有两种方法:显式声明显式声明 隐含声明隐含声明u显式声明:显式声明:格式为格式为 Dim 变量名变量名 AS 数据类型数据类型(或者字符或者字符)例如例如 Dim ab As integer,sum As single或或 Dim ab%,sum!u隐含声明隐含声明没有直接定义而通过一个值指定给变量名,或没有直接定义而通过一个值指定给变量名,或dim定义定义中省略了中省略了AS 数据类型,或在变量名称后没有附加类型说数据类型,或在变量名称后没有附加类型说明字符来指明隐含变量的数据类型时,默认为明字符来指明隐含变量的数据类型时,默认为Variant数据类
25、型。数据类型。例如:例如:Dim m,n m,n为变体变量为变体变量 ab=123 ab为变体变量,值是为变体变量,值是123 建议在程序中显式声明变量建议在程序中显式声明变量二、强制声明二、强制声明在默认情况下,在默认情况下,VBA允许在代码中使用未声明的变量,允许在代码中使用未声明的变量,如果在模块设计窗口的顶部如果在模块设计窗口的顶部“通用通用-声明声明”区域中,加区域中,加入语句:入语句:Option Explicit强制要求所有变量必须定义才能使用。强制要求所有变量必须定义才能使用。这种方法这种方法只为当前模块设置了自动变量声明功能。只为当前模块设置了自动变量声明功能。如果想为所有模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块 VBA 编程 基础
限制150内