模块和VBA程序设计.ppt
《模块和VBA程序设计.ppt》由会员分享,可在线阅读,更多相关《模块和VBA程序设计.ppt(138页珍藏版)》请在三一办公上搜索。
1、1,2023/6/22,1,第8章 模块和VBA程序设计,2,本章要求:1、了解VBA编程环境;2、掌握VBA编程基础:常量,变量,表达式;3、掌握顺序控制,选择控制,循环控制 4、了解VBA模块本章要点:掌握顺序控制,选择控制,循环控制学时安排:6学时(理论)+6学时(实践),第8章 模块和VBA程序设计,3,第8章 模块和VBA程序设计,VBA程序设计基础,模块的概念,常用标准函数,VBA的程序结构,VBA的数据库编程,过程调用和参数传递,4,在Access系统中,把宏、窗体和报表等对象结合起来,不用编写程序代码就可以建立功能较完善的数据库管理系统。但宏的功能是有局限性的,它只能处理一些简
2、单的操作,如果要实现功能强大的数据管理,以及灵活的控制功能,宏对象就无能为力了。这时,就需要编写程序模块来实现上述的功能。本章介绍模块的概念和用来建立模块的VBA语言的基础知识。,第8章 模块和VBA程序设计,5,8.1 模块的概念,模块对象是Access系统中所包含的7种对象之一,模块和宏的使用有一些相似之处。宏是由系统自动生成的程序模块,而模块对象是用VBA语言编写的,VBA是Office软件中内置的编程语言,语法与Visual Basic兼容。1.模块的分类 在Access中,模块分为类模块和标准模块两种类型。(1)类模块 类模块包括窗体模块和报表模块,它们与各自的 窗体 或报表相关联。
3、窗体模块中的事件过程的代码用于响应窗体或窗体 上控件的触发事件。报表模块中的事件过程的代码用于 响应报表或报表上控件的触发事件。,6,8.1 模块的概念,在窗体或报表的设计视图中,可以使用下面方法打开模块代码的编辑窗口:工具栏上的“代码”按钮。为窗体或报表创建事件过程时,系统会自动打开模块代码编辑窗口。,窗体模块和报表模块的作用范围在其所属窗体或报表内部,并随着窗体或报表的打开而开始,随着窗体或报表的关闭而结束。类模块也可以不依赖窗体或报表而单独存在,7,8.1 模块的概念,(2)标准模块 标准模块包含与任何其他对象都无关的常规过程,以及可以从数据库任何位置运行的经常使用的过程。标准模块和某个
4、特定对象无关的类模块的主要区别在于其范围和生命周期。标准模块显示在数据库窗口的“模块”对象中,窗体、报表和标准模块也都显示在“对象浏览器”对话框中。“对象浏览器”对话框用于显示与当前项目有关和引用对象库中对象、属性、方法和常数的信息。,8,模块由声明区域和过程两部分组成,声明区域用来声明模块使用的变量,过程是模块的组成单元。过程分为两种类型:子过程(Sub)和函数过程(Function)。(1)子过程 子过程又称为Sub过程,可以执行一系列操作,无返回值。定义格式如下:Sub 过程名 程序代码 End Sub 可以引用子过程的名称来调用该子过程。在过程名前加上关键字Call,可以显式调用一个子
5、过程。,8.1 模块的概念,2模块的组成,9,例:简单的计算,8.1 模块的概念,任意两个数的和,两个3的和,两个1的和并且能调用show2,10,例:通过窗体事件也可调用子过程,8.1 模块的概念,11,例8-1:下面是一个简单的验证密码的Sub过程。Sub CheckPwd()Dim Pwd As StringPwd=InputBox(“请输入密码!”)If Pwd=”123456”ThenMsgBox”密码正确,欢迎进入系统!”ElseMsgBox”密码错误!”End ifEnd Sub,8.1 模块的概念,12,(2)函数过程 函数过程又称为Funtion过程,可以执行一系列操作,有返
6、回值。定义格式如下:Function 过程名 程序代码 End Function 调用函数过程时,需要直接引用函数过程的名称,而不能使用Call来调用执行。,8.1 模块的概念,2模块的组成,13,例8-2:下面是编写求圆面积的函数过程。Function area(r As Single)As Single If r=0 Then MsgBox 圆半径必须是正数!End If area=3.14159*r*rEnd Function,8.1 模块的概念,调用过程:,14,例:通过窗体事件也可调用函数,15,3将宏转换为模块,8.1 模块的概念,根据要转换宏的类型不同,转换操作有两种情况,一种是
7、转换窗体或报表中的宏,另一种是转换不属于任何窗体和报表的全局宏。(1)转换窗体或报表中的宏 在设计视图中打开窗体。执行“工具/宏/将窗体的宏转换为Visual Basic代码”命令,屏幕显示“转换窗体宏”对话框。,16,将全局宏转换为模块的具体步骤说明如下:在数据库窗口中,单击“宏”对象,选择要转换的宏。执行“文件”菜单中的“另存为”命令,打开“另存为”对话框,(2)转换全局宏,8.1 模块的概念,在对话框的“保存类型”下拉列表框中,选择“模块”列表项,然后单击“确定”按钮,屏幕显示“转换宏”对话 框。,3将宏转换为模块,17,VBA是Visual Basic for Application的
8、缩写,是微软Office系列软件的内置编程语言,与Visual Basic具有相同的语言功能。在VBA中,程序是由过程组成的,过程由根据VBA规则书写的指令组成。一个程序包括语句、变量、运算符、函数、数据库对象、事件等基本要素。在Access程序设计中,当某些操作不能用其他Access对象实现或实现起来很困难时,就可以利用VBA语言编写代码,完成这些复杂任务。,8.2 VBA程序设计基础,18,8.2.1 面向对象程序设计的基本概念 Access内嵌的VBA编程语言,采用的是目前主流的面向对象编程机制和可视化编程环境,同时也提供了访问数据库和操作数据表中记录的基本方法。,8.2 VBA程序设计
9、基础,1对象和类,Access中的表、查询、窗体、报表、页、宏和模块等都是数据库的对象,而控件是窗体或报表中的对象。每个不同的对象都通过不同的属性相互区分。对象的属性按其类别会有所不同,而且同一对象的不同实例属性构成也可能有差异。,19,具有相同属性和方法的对象就组成了类,工具箱中的每个控件就是一个类,而在窗体或报表中创建的具体控件则是这个类的对象。而属于同一个类的两个对象是通过属性值来区分的。,8.2 VBA程序设计基础,1对象和类,Access中的表、查询、窗体、报表、页、宏和模块对象也是类,称为对象类。Access数据库窗口左侧显示的就是数据库的对象类,单击某个对象类可以打开相应对象窗口
10、。,对象除了属性以外还有方法。对象的方法就是对象可以执行的行为。,20,属性、方法和事件构成了对象的基本要素。属性描述了对象的性质 例如,文本框控件对象中的名称、字体的相关属性等。引用方式为:对象.属性 例如:Label6.Caption=area(x),8.2 VBA程序设计基础,2属性、方法和事件,方法描述了对象的行为,即在某个对象上执行的一个过程,例如,打开和关闭报表对象。引用方式为:对象.方法 例如:Text1.SetFocus,事件是由Access定义好的,可以被窗体、报表以及窗体或报表上的控件等对象所识别的动作。如单击,失去焦点.,事件,方法,属性,21,使用宏对象来设置事件属性。
11、为某个事件编写VBA代码过程,完成指定动作,这种代码过程称为事件过程或事件响应代码。(对象事件,参考书P199-200),8.2 VBA程序设计基础,在Access数据库系统里,可以通过以下两种方式来处理窗体、报表或控件的事件响应。,22,8.2.2 VBE编程环境 VBE是Visual Basic Editor的缩写,是Access提供的一个编程环境。VBE窗口主要由标准工具栏、工程窗口、属性窗口和代码窗口4部分组成.,8.2 VBA程序设计基础,23,8.2 VBA程序设计基础,24,8.2 VBA程序设计基础,编程步骤:1创建用户界面 创建VBA程序的第一步是创建用户界面,用户界面的基础
12、是窗体以及窗体上的控件。2设置对象属性 属性的设置可以通过两种方法实现。一是在窗体设计视图中,通过对象的属性表设置;二是通过程序代码设置。3对象事件过程的编写 建了用户界面并为每个对象设置了属性后,重点考虑的就是需要操作哪个对象,激活什么事件,事件代码如何编写。4运行和调试 事件过程编写好后,即可运行程序。若在程序运行过程中出错,系统会显示出错信息,这时应针对出错处对事件代码进行修改,然后再运行,直到正确为止。5保存窗体,25,8.2.3 VBA的基本数据类型 VBA支持多种数据类型,可以使用类型说明标点符号来定义数据类型,还可以使用类型说明字符来定义数据类型.,8.2 VBA程序设计基础,1
13、数据类型,26,(2).长整形 Long 类型申明符为“&”,(1)整型 integer 类型申明符为“%”,表示范围:-32768+32767 例:8%-21+5%5,(3).单精度数 Single 类型申明符为“!(E)”,最多有7位有效数字,表示范围:-3.402823E+38(1038)+3.402823E+38 例:-3.4!1.0E+2(1.0 102),1数据类型,8.2 VBA程序设计基础,表示范围:-2147483648+2147483647 例如:32768-21&,27,(4).双精度数 Double类型申明符为“#(D)”,最多有15位有效数字,,(5).字符型数据 s
14、tring 类型申明符为“$”字符型数据是用双引号括起来的一串ASCII码字符。专门用来存放文字信息的。字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空字符串。例:This a book,(6).逻辑型 Boolean 逻辑型数据只有真和假两种值,长度固定为1个字符。,1数据类型,8.2 VBA程序设计基础,28,(7).日期时间型 Date 日期时间型(Date Time)数据是描述日期和时间的数据,长度固定为8个字符。日期时间型数据除包括日期数据的年、月、日外,还包括时、分、秒以及上午、下午等内容。,(8).货币型(Currency)类型申明符为 货币数据为表
15、示钱款而设置的。,(9)变体形(Variant)变体形是指所有未定义的变量默认的数据类型,是一种可变的数据类型,可以表示任何值,1数据类型,8.2 VBA程序设计基础,29,使用数据类型时,应注意以下问题:布尔型数据(Boolean)布尔型数据只有两个值:True和False,布尔型数据转换为其他类型数据时,True转换为-1,False转换为0。其他类型数据转换为布尔型数据时,0转换为False,其他值转换为True。,8.2 VBA程序设计基础,1数据类型,8.2.3 VBA的基本数据类型,30,使用数据类型时,应注意以下问题:日期型数据(Date)任何可以识别的文本形式的日期数据都可以赋
16、给日期变量,日期类型数据必须前后用“#”号括住,例如,#20070317#变体类型数据(Variant)VBA中规定,如果没有显式声明或使用符号来定义变量的数据类型,默认为变体类型,8.2 VBA程序设计基础,1数据类型,8.2.3 VBA的基本数据类型,31,在编程过程中,有时需要将某种类型数据转换成另一种数据类型。例如,窗体文本框控件中显示的数值数据为字符串型,要想作为数值处理就应进行数据类型转换。,8.2 VBA程序设计基础,8.2.3 VBA的基本数据类型,2数据类型之间的转换,32,数据库中对象,如数据库、表、查询、窗体和报表等,也有对应的VBA对象数据类型,这些对象数据类型由引用的
17、对象库所定义。,8.2 VBA程序设计基础,3对象数据类型,8.2.3 VBA的基本数据类型,33,用户定义数据类型可以在TypeEndType关键字间定义,定义格式如下:Type 数据类型名 As As EndType,8.2 VBA程序设计基础,4用户定义的数据类型,8.2.3 VBA的基本数据类型,34,例8-3:定义一个学生信息数据类型。Type NewStudentStuNo As String*8 StuName As String StuSex As String*1 StuAge As Integer EndType,8.2 VBA程序设计基础,35,例8-4:定义一个学生信息
18、类型变量NewStud。Dim NewStud As NewStudentNewStud.StuNo=“07010101”NewStud.StuName=“柳志杰”NewStud.StuSex=“女”NewStud.StuAge=20,8.2 VBA程序设计基础,36,可以用关键字With简化程序中重复的部分。例如,为上面NewStud变量的赋值语句可以修改为如下形式:With NewStud StuNo=“07010101”.StuName=“柳志杰”.StuSex=“女”.StuAge=20EndWith,8.2 VBA程序设计基础,37,常量是指在程序运行时其值不会发生变化的数据VBA的
19、常量有直接常量和符号常量两种表示方法。直接常量就是直接表示的整数、单精度数和字符串,如1234、17.28E+9、“StuID”等。符号常量就是用符号表示常量,符号常量有用户定义的符号常量、系统常量和内部常量3种。,8.2 VBA程序设计基础,8.2.4 VBA的常量、变量、运算符和表达式,1常量,38,(1)用户定义的符号常量 在VBA编程过程中,对于一些使用频度较多的常量,可以用符号常量形式来表示。符号常量使用关键字Const来定义,格式如下:Const 符号常量名称=常量值,8.2 VBA程序设计基础,8.2.4 VBA的常量、变量、运算符和表达式,1常量,例如:Private Sub
20、Command3_Click()Const pi=3.14 r=10 msgbox“面积为”&pi*r*r End Sub,好处是什么?,39,(2)系统常量 系统常量是指Access系统启动时建立的常量,有True、False、Yes、No、On、Off和Null等,编写代码时可以直接使用。(3)内部常量 VBA提供了一些预定义的内部符号常量,它们主要作为DoCmd命令语句中的参数。内部常量以前缀ac开头,如acCmdSaveAs。,8.2 VBA程序设计基础,1常量,8.2.4 VBA的常量、变量、运算符和表达式,40,变量是指程序运行时值会发生变化的数据。在程序运行时数据是在内存中存放的
21、,内存中的位置是用不同的名字表示的,这个名字就是变量的名称,该内存位置上的数据就是该变量的值。,8.2 VBA程序设计基础,2变量,8.2.4 VBA的常量、变量、运算符和表达式,41,(1)变量的命名规则 在为变量命名时,应遵循以下规则:变量名只能由字母、数字和下划线组成。变量名必须以字母开头。不能使用系统保留的关键字,例如Sub,Function 长度不能超过255个字符。不区分英文大小写字母,(2)变量类型的定义 根据变量类型定义的方式,可以将变量分为隐含型变量和显示变量两种形式。,8.2 VBA程序设计基础,2变量,8.2.4 VBA的常量、变量、运算符和表达式,42,(2)变量类型的
22、定义 根据变量类型定义的方式,可以将变量分为隐含型变量和显示变量两种形式。隐含型变量 利用将一个值指定给变量名的方式来建立变量,如:NewVar=127 当在变量名称后没有附加类型说明字符来指明隐含变量的数据类型时,默认为Variant数据类型。,8.2 VBA程序设计基础,2变量,8.2.4 VBA的常量、变量、运算符和表达式,43,显式变量 显式变量是指在使用变量时要先定义后使用 定义显式变量的方法如下:Dim 变量名 As 类型名 在一条Dim语句中可以定义多个变量,如:Dim Var1,Var2 as String 在模块设计窗口的顶部说明区域中,可以加入Option Explict语
23、句来强制要求所有变量必须定义才能使用。,8.2 VBA程序设计基础,2变量,8.2.4 VBA的常量、变量、运算符和表达式,44,在VBA编程语言中,可以将运算符分为算术运算符、关系运算符、逻辑运算符和连接运算符4种类型。不同的运算符用来构成不同的表达式,来完成不同的运算和处理。表达式是由运算符、函数和数据等内容组合而成的,根据运算符的类型可以将表达式分为算数表达式、关系表达式、逻辑表达式和字符串表达式4种类型。(1)算术运算符 算术运算符用于数值的算术运算,VBA中的算术运算符有7个,8.2 VBA程序设计基础,3运算符和表达式,45,8.2 VBA程序设计基础,46,算术运算符之间存在优先
24、级,优先级是决定算术表达式的运算顺序的原则,算术运算符优先级从高到低依次为乘幂、乘除法、整数除法、求模和加减法。由算术运算符、数值、括号和正负号等构成的表达式称为算术表达式。在算术表达式中,括号和正负号的优先级比算术运算符要高,括号比正负号的优先级高。例8-17:算术表达式-8+20*4 Mod 6(52)的结果。计算 的过程如下:1)计算(52)的结果为2,表达式化为-8+20*4 Mod 6 2 2)计算6 2的结果为36,表达式化为-8+20*4 Mod 3 3)计算20*4的结果为80,表达式化为-8+80 Mod36 4)计算80 Mod 36的结果为8,表达式化为-8+8 5)计算
25、-8+8的结果为0,8.2 VBA程序设计基础,47,(2)关系运算符 关系运算符用来表示两个值或表达式之间的大小关系,从而构成关系表达式。6个关系运算符的优先级是相同的,如果它们出现在同一个表达式中,按照从左到右的顺序依次运算。但关系运算符比算术运算符的优先级低。关系运算的结果为逻辑值:真(True)和假(False)。,8.2 VBA程序设计基础,3运算符和表达式,48,8.2 VBA程序设计基础,49,(3)逻辑运算符 逻辑运算符也叫布尔运算符,用于完成逻辑运算。VBA中有与(And)、或(Or)和非(Not)等6个逻辑运算符,8.2 VBA程序设计基础,50,使用逻辑运算符可以对两个逻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块 VBA 程序设计
链接地址:https://www.31ppt.com/p-5285611.html