第8章 模块与VBA编程ppt课件.pptx
《第8章 模块与VBA编程ppt课件.pptx》由会员分享,可在线阅读,更多相关《第8章 模块与VBA编程ppt课件.pptx(163页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 模块与VBA编程Access2010第8章 模块与VBA编程通过本章的学习,应该掌握以下内容:(1)VBA编程环境。(2)VBA编程的基本概念。(3)VBA程序设计基础。(4)VBA程序控制语句。(5)面向对象程序设计的基本概念。(6)VBA模块的创建、过程调用和参数传递。(7)VBA常用操作。(8)VBA的数据库编程技术。(9)VBA程序调试与错误处理。学习目标8.1 VBA的编程环境 Visual Basic 编辑器(VBE,Visual Basic Editor)是编辑VBA代码时使用的界面。VBE提供了完整的开发和调试工具,可以用于创建和编辑VBA程序。8.1.1 打开VBE窗
2、口 在Access 2010中,打开VBE窗口有以下几种方法。n 在数据库中,单击“数据库工具”选项卡“宏”组“Visual Basic”。n 在数据库中,单击“创建”选项卡“宏与代码”选项组“Visual Basic”。n 创建新的标准模块:单击“创建”选项卡“宏与代码”选项组“模块”,则在VBE编辑器中创建一个空白模块。n 如果已有一个标准模块,可选择“导航窗格”窗口上的“模块”对象,在模块对象列表中双击选中的模块,则在VBE编辑器中打开该模块。n 对于属于窗体或报表的模块可以打开窗体或报表的设计视图,单击属性窗口的“事件”页中某个事件框右侧的“生成器”按钮 ,打开“选择生成器”对话框,选
3、择其中的“代码生成器”选项即可。8.1.2 VBE窗口 VBE窗口由VBE工具栏、工程窗口、属性窗口和代码窗口组成,如图8-2所示。 工程资源管理器 属性窗口 代码窗口 两句之间输入代码 视图Microsoft Office Access8.1.2 VBE窗口1VBE工具栏 VBE工具栏如图所示。8.1.2 VBE窗口2工程窗口 工程窗口,也叫工程资源管理器,其中的列表框中列出了在应用程序中用到的模块文件。可单击“查看代码”按钮显示相应的代码窗口,或单击“查看对象”按钮,显示相应的对象窗口,也可单击“切换文件夹”按钮,隐藏或显示对象文件夹。8.1.2 VBE窗口3属性窗口 属性窗口中列出了所选
4、对象的各种属性,分“按字母序”和“按分类序”两种格式查看属性。可以直接在属性窗口中编辑对象的属性,这种方法称对象属性的一种“静态”设置方法;此外,还可以在代码窗口内用VBA代码编辑对象的属性,这属于对象属性的“动态”设置方法。 为了在属性窗口中显示Access类对象,应先在设计视图中打开对象。8.1.2 VBE窗口4代码窗口 单击VBE窗口菜单栏中的“视图”菜单“代码窗口”命令,即可打开代码窗口。可以使用代码窗口来编写、显示以及编辑VBA程序代码。实际操作时,在打开各模块的代码窗口后,可以查看不同窗体或模块中的代码,并且在它们之间做复制以及粘贴的动作。 双击工程窗口上的一个模块或类,相应的代码
5、窗口就会显示出来。8.1.2 VBE窗口5立即窗口 单击VBE窗口菜单栏中的“视图”菜单“立即窗口”命令,即可打开立即窗口。立即窗口是用来进行快速计算的表达式计算、简单方法的操作及进行程序测试的工作窗口。在代码窗口中编写代码时,要在立即窗口打印变量或表达式的值,可以使用Debug.Print语句。在立即窗口中使用“?”或“Debug.Print”语句显示表达式的值。8.1.2 VBE窗口6本地窗口 单击VBE窗口菜单栏中的“视图”菜单“本地窗口”命令,即可打开本地窗口。 在本地窗口中,可自动显示出所有在当前过程中的变量声明及变量值。8.1.2 VBE窗口7监视窗口 单击VBE窗口菜单栏中的“视
6、图”菜单“监视窗口”命令,即可打开监视窗口。监视窗口用于调试 Visual Basic 过程,通过在监视窗口增添监视表达式的方法,程序可以动态了解一些变量或表达式的值的变化情况,进而对代码的正确与否有清楚的判断。8.2 VBA模块简介 模块是Access数据库中的一个数据库对象,它以VBA语言为基础编写。通俗来说,模块是 Access数据库中用于保存VBA程序代码的容器。模块基本上是由声明、语句和(Sub和Function)过程组成的集合,它们作为一个已命名的单元存储在一起,对VBA程序代码进行组织。 Access有两种类型的模块:标准模块和类模块。8.2.1 标准模块 标准模块包含在数据库窗
7、口的模块对象列表中,标准模块包括通用过程和常用过程,这些过程不与Access数据库文件中的任何对象相关联。也就是说,如果控件没有恰当的前缀,这些过程就没有指向Me(当前对象)或控件名的引用。但可以在数据库中任何其他对象中引用标准模块中的过程。8.2.2 类模块 类模块是包含类的定义的模块,包括其属性和方法的定义。类模块有3种基本形式:窗体类模块、报表类模块和自定义类模块,它们各自与某一窗体或报表相关联。为窗体(或报表)创建第一个事件过程时,Access将自动创建与之关联的窗体或报表模块。单击窗体(或报表)设计视图中“工具”选项组中“查看代码”按钮,可以查看窗体(或报表)的模块。8.2.3 VB
8、A代码编写模块的过程 过程是模块的主要单元组成,由VBA代码编写而成。过程分为两种类型:Sub子过程和Function函数过程,具体编写模块的过程请参见本章的节。8.2.4 将宏转换为模块的过程 使用 Access 2010 自动将宏转换为 VBA 模块或类模块。可以转换附加到窗体或报表的宏,而不管它们是作为单独的对象存在还是作为嵌入的宏存在。还可以转换未附加到特定窗体或报表的全局宏。8.2.5 在模块中执行宏 在模块的定义过程中,使用Docmd对象的RunMacro方法,可以执行设计好的宏。其调用格式为: Docmd.RunMacro MacroName,RepeatCount ,Repea
9、tExpression8.3 VBA程序设计基础 VBA是Microsoft Office套装软件的内置编程语言,其语法与Visual Basic编程语言互相兼容。在Access程序设计中,当某些操作不能用其他Access对象实现或实现起来很困难时,就可以利用VBA语言编写代码,完成这些复杂任务。8.3.1 程序书写原则1.程序书写规定 通常将一个语句写在一行中,但当语句较长,一行写不下时,也可以利用续行符(下划线)“_”将语句接续到下一行中。有时需要在一行中写几句代码,这时需要用到冒号“:”将不同的几个语句分开。 mycount = 10 * x + 7 * y + z / 5 mycoun
10、t = 10 * x + 7 * y _ + z / 5 Text1.Value = Hello : Text1.ForeColor = 2552.注释语句注释语句用于对程序或语句的功能给出解释和说明。通常一个好的程序都会有注释语句,这对程序的维护有很大的好处。在VBA程序中,注释的内容被显示成绿色文本。可以通过以下两种方式添加注释。(1)使用“”,格式如下: 注释语句 这种注释语句可以直接放在其他语句之后而无需分隔符。(2)使用Rem语句,格式如下: Rem 注释语句 这种注释语句需要另起一行书写,也可以放在其他语句之后,但需要用冒号隔开。3.书写格式 利用空格、空行、缩进使得程序层次分明。
11、8.3.2 数据类型 VBA一般用变量保存计算的结果,进行属性的设置,指定方法的参数以及在过程间传递数值。为了高效率地执行,VBA为变量定义了一个数据类型的集合。在Access里,很多地方都要指定数据类型,包括过程中的变量、定义表和函数的参数等。1标准的数据类型 VBA支持多种数据类型,下表列出了VBA程序中的标准数据类型,以及它们所占用的存储空间和取值范围。数据类型类型标识符号所占字节数范围字节型Byte无1字节0255布尔型Boolean无2字节True或False整型Integer%2字节3276832767长整型Long&4字节21474836482147483647单精度Single
12、!4字节负数:3.402823E381.401298E45正数:1.401298E453.402823E38双精度Double#8字节负数:1.79769313486232E3084.94065645841247E324正数:4.94065645841247E3241.7976931 3486232E308货币型Currency8字节922337203685477.5808922337203685477.5807日期型Date无8字节100年1月1日到9999年12月31日字符型String$与串长有关065535个字符对象型Object无4字节任何对象引用变体型Variant无根据分配确定
13、2用户自定义的数据类型 当需要使用一个变量来保存包含不同数据类型字段的数据表的一条或多条记录时,用户自定义数据类型就特别有用。 用户自定义数据类型可以在Type End Type关键字间定义,定义格式如下。Type 自定义类型名 元素名 As 类型 元素名 As 类型End Type 2用户自定义的数据类型例如,定义一个学生信息的数据类型如下:Type Student SNo As String SName As String SAge As IntegerEnd Type上述例子定义了由SNo(学号)、SName(姓名)、SAge(年龄)3 个分量组成的名为Student的数据类型。2用户自
14、定义的数据类型【例8.1】 声明一个学生信息类型的变量Stu,并操作分量。Dim Stu As Student 定义一个学生信息类型变量Stu Stu.SNo=201109001 Stu.SName=“张丽 Stu.SAge=182用户自定义的数据类型【例8.1】 声明一个学生信息类型的变量Stu,并操作分量。可以用关键字With简化程序中的重复部分。例如,为上面Stu变量赋值可以用:With Stu .SNo=201109001 注意分量名前用的英文句点 .SName=“张丽 .SAge=18End With8.3.3 变量与常量 变量是指在程序运行过程期间取值可以变化的量。在VBA代码中声
15、明和使用指定的变量来存储值、计算结果或操作数据库中的任意对象。1变量的命名规则变量命名时应遵循以下准则。(1)变量名必须以英文字母开头,可以包含字母、数字或下划线字符“_”。(2)变量名不能包含空格、句点等字符。(3)变量名的长度不能超过255个字符,且变量名不区分大小写。(4)不能在某一范围内的相同层次中使用重复的变量名。(5)变量的名字不能是VBA的关键字。2变量的声明 变量一般应先声明再使用,变量声明有两个作用,一是指定变量的数据类型,二是指定变量的适用范围。VBA应用程序并不要求在过程中使用变量以前明确地进行声明。如果使用一个没有明确声明的变量,Visual Basic会默认地将它声明
16、为Variant数据类型。变量声明语句:Dim As 2变量的声明 【例8.2】声明字符串变量,并为之赋值。 Dim StudentName As String 该语句声明了一个名为StudentName的String(字符串)型变量,声明之后,就可以给它赋值: StudentName=张丽 赋值之后,还可以再改变它的值: StudentName=吴薇 VBA允许在同一行内声明多个变量,变量间用英文逗号分隔。2变量的声明 【例8.3】在一个语句中声明3个不同类型的变量,其中aaa为布尔型变量,bbb为变体型变量,ccc为日期型变量。 Dim aaa As Boolean,bbb,ccc As
17、Date 其中bbb的类型为Variant,因为声明时没有指定它的类型。3变量的作用域 变量的作用域确定了能够使用该变量的那部分代码。一旦超出了作用范围,就不能引用它的内容。变量的作用范围是在模块中声明确定的。声明变量时可以使用3种不同的作用范围:Public、Private、Static和Dim。( 1)过程内部使用的变量过程级变量只有在声明它们的过程中才能被识别,也称它们为局部变量。用Dim或者Static关键字来声明它们。例如:Dim V1 As Integer或Static V1 As Integer( 1)过程内部使用的变量在过程结束之前,Dim语句一直保存着变量的值,也就是说,使用
18、Dim语句声明的变量在过程之间调用时会丢失数据。而用Static语句声明的变量则在模块内一直保留其值,直到模块被复位或重新启动。在非静态过程中,用Static语句来显式声明只在过程中可见的变量,但其存活期与定义了该过程的模块一样长。在过程中,对在过程之间调用时保留值的变量,用关键字Static来声明它的数据类型。在过程结束之前,清除静态变量的方法是:单击“运行”菜单“重新设置”命令。(2)模块内部使用的变量模块级变量对该模块的所有过程都可用,但对其他模块的代码不可用。可在模块顶部的声明段用Private关键字声明变量,从而建立模块级变量。例如:Private V1 As Integer在模块级
19、,Private和Dim之间没有什么区别,但Private更好些,因为很容易把它和Public区别开来,使代码更容易理解。(3)所有模块使用的变量为了使模块级的变量在其他模块也有效,可用Public关键字声明变量。公用变量中的值可用于应用程序的所有过程。和所有模块级变量一样,也在模块顶部的声明中来声明公用变量。例如:Public V1 As Integer用户不能在过程中声明公用变量,而在模块中声明的变量可用于所有模块。也可以用Static关键字来声明函数和子程序,以便在模块的生存期内保留函数和子程序内的所有局部变量。4数据库对象变量 Access建立的数据库对象及其属性,均可被看成是VBA程
20、序代码中的变量及其指定的值来加以引用。例如,Access中窗体与报表对象的引用格式为: Forms!窗体名称!控件名称.属性名称 Reports!报表名称!控件名称.属性名称 关键字Forms或Reports分别表示窗体或报表对象集合。感叹号分隔开对象名称和控件名称。“属性名称”部分缺省,则为控件基本操作。5数组数组是在有规则的结构中包含一种数据类型的一组数据,也称作为数组元素变量。数组变量由变量名和数组下标构成,通常用Dim语句来定义数组。(1)一维数组定义格式如下:Dim ( to ) As 缺省情况下,下标下限为0【例8.4】定义一维数组。Dim y (10) As Integer5数组
21、数组的下标也可以不从0开始定义,模块的顶部使用Option Base语句,将第一个元素的默认索引值从0改为其他值。【例8.5】声明一个有10个元素的数组变量y,类型为整型,其下标起始值设置成1。Option Base 1Dim y(10) As Integer声明的数组变量y有10个元素。因为Option Base语句将数组下标的起始值变成了1。5数组(2)多维数组多维维数指有多个下标的数组。在VBA中可以声明变量最多到60维。【例8.7】Dim T(3,2) As Integer定义了一个二维数组,数组名为T,类型为Integer,该数组有4行(03)3列(02),占据12(43)个整型变量
22、的空间,如图8-8所示。 第0列第1列第2列第0行T(0,0)T(0,1)T(0,2)第1行T(1,0)T(1,1)T(1,2)第2行T(2,0)T(2,1)T(2,2)第3行T(3,0)T(3,1)T(3,2)6变量标识命名法则在编写VBA程序代码时,会用到大量的变量名称和不同的数据类型。对于控件对象,可以用VBA的Set关键字将每个命名的控件对象指定为一个变量名称。目前,VB和VBA均推荐使用Hungarian符号法作为命名法则。该方法也被广泛用在C和C+等一些程序中。Hungarian符号法使用一组代表数据类型的码。用小写字母作为变量的第一个字符。例如,代表文本框的字首码是txt,那么文
23、本框变量名为txtName。7符号常量对于程序中经常出现的常量,以及难以记忆且无明确意义的数值,使用符号常量可使代码更容易读取与维护。常量是指在程序运行过程中始终固定不变的量。VBA的常量包括数值常量、字符常量、日期常量、符号常量、固有常量和系统定义常量等。符号常量是需要声明的常量,用Const语句来声明并设置其值。格式如下:Const 符号常量名称 = 常量值例:Const PI = 3.1415926。若是在模块的声明区中定义符号常量,则建立一个所有模块都可使用的全局符号常量。一般是Const前加上Global或Public关键字。例如:Global Const PI = 3.141592
24、6这一符号常量会涵盖全局或模块级的范围。8系统常量Access系统内部包含若干个启动时就建立的系统常量,有True、False、Yes、No、On、Off和Null等。在编码时可以直接使用。8.3.4 常用的标准函数在VBA中,除在模块创建中可以定义子过程与函数过程完成特定功能外,又提供了近百个内置的标准函数,可以方便完成许多操作。标准函数一般用于表达式中,有的能和语句一样使用。其使用形式如下:函数名(参数1,参数2,参数3,参数4,参数5)其中,函数名必不可少,函数的参数放在函数名后的圆括号中,参数可以是常量、变量或表达式,可以有一个或多个,少数函数为无参函数。关于常用函数部分,请参见第1章
25、小节函数部分。8.3.5 运算符和表达式在VBA编程语言中,提供了许多运算符来完成各种形式的运算和处理。根据运算不同,可以分成4种类型的运算符:算术运算符、关系运算符、逻辑运算符和连接运算符。表达式是各种数据、运算符、函数、控件和属性的组合,其运算结果是某个确定数据类型的值。表达式能实现数据计算、条件判断、数据类型转换等许多作用。关于运算符和表达式部分,请参见第1章小节部分。8.4 VBA程序流程控制语句 在VBA程序中,按语句代码执行的顺序可以分为顺序、选择和循环结构。顺序结构:按照语句顺序顺次执行。如赋值语句、过程调用语句。选择结构:又称为分支结构,根据条件选择执行路径。循环结构:重复执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 模块与VBA编程ppt课件 模块 VBA 编程 ppt 课件
限制150内