Access数据库实用教程》第九章模块和VBA程序设计课件

上传人:风*** 文档编号:240743716 上传时间:2024-05-04 格式:PPT 页数:79 大小:897.50KB
返回 下载 相关 举报
Access数据库实用教程》第九章模块和VBA程序设计课件_第1页
第1页 / 共79页
Access数据库实用教程》第九章模块和VBA程序设计课件_第2页
第2页 / 共79页
Access数据库实用教程》第九章模块和VBA程序设计课件_第3页
第3页 / 共79页
点击查看更多>>
资源描述
第第9章章 模块和模块和VBA程序设计程序设计9.1 VBA程序设计初步 在Office中包含有Visual Basic for Application(VBA),它是Visual Basic的语言的一个子集,与Visual Basic具有相同的语言的功能。9.1.1 面向对象编程面向对象编程 程程序序设设计计语语言言主主要要分分为为面面向向对对象象和和面面向向过过程程两两大大类类,而而VBA就就是是一一种种面面向向对对象象的的程程序序设设计计语语言言,对对象象是是Visual Basic程程序序设设计计语语言言的的核核心心,而而Access更更是是基基于于对对象象的的,对对象象在在数数据据库库编编程程中中无无处处不不在在:窗窗体体、报报表、数据页甚至数据库本身,都是一种对象。表、数据页甚至数据库本身,都是一种对象。在在Access中中,常常用用对对象象有有23个个,它它们们之之间间多多为为树树形形关关系系,根根据据它它们们的的相相对对关关系系,可可分分为为根根对对象象和和非非根根对对象两大类,其介绍如下。象两大类,其介绍如下。在VBA中,对象是封装数据和相应代码的客体,是代码和数据的结合,使用对象可更方便地管理数据和代码。对象具有属性、方法和事件。1属性 属性是对象的一个特征,它定义了对象的大小、颜色等特征。根据对象的类别不同,其属性也有所不同,而同一对象的不同实例属性构成也可能有所不同。我们可以通过修改对象的属性值来改变对性的特征。2方法 方法是对象能够执行的一个操作,是与对象相关联的过程和函数。不同的对象拥有不同的方法集合。例如窗体具有GoToPage方法,而其他对象则不具备此方法。3事件 Access事件是指操作Access的某个数据对象时发生的特定情况,是对象可以识别的动作。可以通过两种方式处理事件响应:一是使用宏对象来设置事件属性,二是为某个事件编写VBA代码完成动作,这样的代码称为事件过程。在Access中,事件可分为焦点、鼠标、键盘、窗体、打印、数据、筛选和系统环境事件八大类。Access为每个事件都定义了一个相对应的属性,属性名为“On”+事件名。如GotFocus的属性名为OnGotFocus。每个对象的所有事件属性在对象属性对话框的“事件”选项卡中均能找到,为事件属性指定值即为该事件定义了相应的响应操作。在Access中,事件的响应分为两种类型:宏响应和事件响应。9.1.2 VBA简介简介 VBA(Visual Basic for application)是Access的开发语言,其语法与Visual Basic编程语言相互间融,通过它可以像编写VB语言一样来编写VBA程序。概括地说,VBA有以下一些特点:1操作简单 Access为VBA提供了一个典型的Winows风格的集成开发环境VBE,通过它上面的菜单、工具和各种子窗口,用户可以方便地编译、调试和运行程序。2面向对象 VBA是面向对象的,这是它也传统编程语言的重要区别。3事件驱动 VBA用事件驱动程序,即当某个控件或对象相关的事件发生时,会自动启动相应得程序。9.1.3 VBA编程环境 Access所提供的VBA开发界面成为VBE(Visual Basic Editor,VB编辑器),它为VBA程序的开发提供了完整的开发和调试工具。1进入VBE 由于Access模块分为类模块和标准模块(详见9.2.1),进入VBE的方式也有所不同。对于类模块有两种方式:(1)单击属性窗体的“事件”选项卡,选中某个事件并将其属性设置其为“事件过程”,再单击属性栏右侧的“.”按钮,即可进入。(2)在属性窗体的“事件”选项卡下,直接单击时间属性栏右侧的“.”按钮,打开如图9-2所示的“选择生成器”对话框,选择“代码生成器”,单击确定即可进入。对于标准模块,有三种进入方式:(1)模块已经存在时,在数据库的“模块”窗口下,双击已存在的模块对象即可进入。(2)新建模块时,在数据库的“模块”窗口下,单击工作栏上的“新建”按钮即可进入。(3)在数据库对象窗体中,单击“工具”菜单中的“宏”级联菜单的“Visal Basic编辑器”选项即可进入。2VBE窗口 VBE窗口可分为标准工具栏、工程窗口、属性窗口和代码窗口4部分,如图9-3所示。另外,还有对象窗口、对象浏览器、立即窗口、本地窗口和监视窗口等,可以通过“视图”菜单的相应选项选择显示。1标准工具栏标准工具栏中包括创建模块时常用的命令按钮,可通过选中或撤消“视图”菜单中“工具栏”菜单中的“标准”按钮来确定显示还是隐藏标准工具栏。标准工具栏及其上按钮如图9-4所示。2工程窗口 工程窗口又叫工程资源管理器窗口,用于显示应用程序中用到的模块文件列表。通过它可以控制代码窗口、对象窗口以及对象文件夹的显示。双击工程窗口上的模块或类,相应的代码就会在代码窗口中显示出来。3属性窗口 用于显示所选对象的属性,可“按字母序”和“按分类序”查看并编辑这些对象的属性,这种修改对象属性的方法属于“静态”设置方法。还可以在代码窗口中使用VBA代码编辑对象的属性,这种方法属于“动态”设置方法。4代码窗口 用于输入和编辑VBA代码。用户可以打开多个代码窗口用来查看各个模块的代码。在代码窗口中,关键字和普通代码的颜色是不同的,可以很容易地区分。9.2 模块概述模块概述 模块以VBA语言为基础,由声明和过程两部分组成。9.2.1 模块的分类 Access 2003有两个模块类型:类模块和标准模块。1类模块 类模块是与某一特定窗体或报表相关联的过程集合。它属于Access数据库对象,即新建一个类模块救创建一个新对象。类模块主要包括窗体模块和报表模块和自定义模块,其中窗体模块和报表模块从属于各自的窗体或报表。2标准模块 标准模块即数据库中的可用函数模块和子程序,只包含通用只一些通用过程和常用过程,并不与任何对象相关联,通常用来存放供其他Access数据库对象使用的公共过程。3类模块和标准模块的区别 这两种模块的主要区别在于其存储方式和生命周期不同。类模块的数据由类实例创建,独立于应用程序。标准模块只有一个备份,因此当其中的公共变量发生变化时,其后的程序再读取该变量时,得到的是变量变化后的值。类模块的作用域是类实例对象的存活期,其中的声明或存在的任何变量或常量的值,都仅在该代码运行时有效。而标准模块的变量在声明为Public时,在工程的任何地方都可见。9.1.2 模块和过程 模块由若干过程组成。过程是VBA程序代码的容器,是程序中的若干较小的逻辑部件,可分为子程序和函数过程,每种过程都有其独特的功能。过程可以简化程序设计任务,还可以增强或扩展Visual Basic的构件。另外,过程还可用于共享任务或压缩重复任务,如减少频繁运算等。1子过程 子过程是由Sub和End Sub语句包含起来的VBA语句其格式如下:Private|Public|Friend Sub 子过程名(参数列表)Exit Sub End Sub2函数过程 函数过程是由Function和End Function语句包含起来的VBA语句,其格式如下:Private|PublicStaticFunction 函数名(参数行)As 数据类型 Exit Function End Function9.3 创建模块创建模块9.3.1 创建新模块创建新模块1创建标准模块 打开数据库,单击数据库窗口左边对象列表中的“模块”选项,然后单击工具栏上的“新建按钮”,即“Visual Basic编辑器”,显示模块设计视图并创建空白标准模块,或单击“Visual Basic编辑器”菜单栏中“插入”按钮,在弹出的下拉列表中选择“模块”选项,也会出现一个空白的标准模块,如图9-5所示。此时在代码窗口即可进行编辑。2创建类模块 类模块可根据与窗体、报表的相关性分为与窗体报表相关的类模块和与窗体报表不相关的类模块。创建与窗体或报表相关的类模块过程如下:双击工程窗口中的窗体名称,然后在弹出的新建模块代码窗口中输入代码即可,如图9-6所示。创建与窗体或报表不相关的类模块步骤如下:单击“数据库”窗口或“Visual Basic编辑器”的菜单栏上“插入”,在弹出下拉列表中选择“类模块”,即可在“Visual Basic编辑器”中看到一个空白的类模块。将所需的声明或过程添加到类模块设计视图中,进行保存即可。设计的类模块可以作为新类型来创建用户自定对象,类中定义的变量为对象的属性,子过程和函数则将成为对象的方法。可以通过对象来引用其属性和方法。9.3.2 将宏转换为模块将宏转换为模块 将窗体或报表上的宏转换为VBA代码的方法如下:(1)使用“设计”视图的模式打开窗体或报表。(2)单击菜单栏上的“工具”按钮,在弹出下拉列表中选择“宏”命令,然后选择“将窗体(报表)的宏转换为Visual Basic代码”。(3)在弹出的“转换宏”对话框中,选择所需项,单击“转换”按钮即可。将全局宏转换为VBA代码的方法如下:(1)在“数据库”窗口中,单击左侧对象列表中的“宏”对象按钮,在宏对象列表框中选择要转换的宏名。(2)执行菜单命令“文件”“另存为”,然后在“另存为”对话框中输入保存的文件名,在“保存类型”中选择“模块”,结束单击“确定”。(3)在弹出的“转换宏”对话框中,选择所需选项,单击“转换”按钮。9.4 VBA编程基础 VBA是Visual Basic语言的一个子集,集成了整个Office产品套件中的开发语言和开发环境,是Office产品系列中的重要组成部分。9.4.1 数据类型数据类型 在创建表对象的时候,我们已经接触过数据类型了。数据类型实际上就是指具有相同特征数据对象的集合,包括相同的取值集合和可对其实行的操作。VBA提供了丰富的数据类型,常用数据类型如表9-2所示。9.4.2 常量 VBA的常量包括数值常量、字符常量、符号常量、固有常量和系统定义常量五种。1数值常量 数值常量即我们常说的常数,相当于数据类型中的整型、小数型和浮点型。2字符常量 字符常量是由字符串定界符双引号(”)括起来的一串字符。3符号常量 对于程序中经常出现以及难以记忆的数值,可以表示为符号常量,以便增加程序的可读性和可维护性。一般使用Const语句来声明一个符号常量,其格式如下:Const 常量名As 类型名表达式4固有常量 固有常量是Access或引用库的一部分,代表固定系统值所有固有常量均可在宏或VBA代码中使用。固有常量的类型有:操作常量、ADO常量、DAO常量、事件过程常量、键盘代码常量、其他类型常量、RunCommand方法常量、安全性常量、VBA常量和VarType函数常量等。通常,固有常量通过前两个字母来指明定义该常量的对象库。来自Microsoft Access库的常量以“ac”开头,来自ActiveX Data Objects(ADO)库的常量以“ad”开头,而来自VB库的常量以“vb”开头。5系统常量 Access和VBA有3个系统常量:True、False和Null。True和False是系统定义的逻辑值,而Null用于指明字段中数据没有或未知值。系统常量可以用在所有应用程序中。注意:不能借用系统常量名称作为其他对象的名称,否则会出现如下错误:“编译错误:缺少:标志符”。9.4.3 变量 变量是指程序运行过程中,其值可以发生变化的量。变量可以是任意VBA所支持的数据类型。变量由变量名标识,其命名规则是:以字母或字符开头,不超过255个字符的字符串。使用变量可以增加程序代码的可读性和可维护性。1对简单变量的声明 对简单变量的声明可以使用类型说明符、Dim语句和DefType语句。1)使用类型说明符 使用类型说明符声明变量时,将其放在说明变量的最后。2)使用Dim语句声明 可以使用Dim语句声明一个或多个变量,其格式如下:Dim 变量名 As 数据类型 3)使用DefType语句 DefType语句主要用于模块级通用声明部分,一般用来声明变量或传送给过程的参数的数据类型,或用来声明指定字符开头的Function或Property Get过程的返回值类型。DefType语句格式如下:DefType 字母,字母范围2数组 数组是在有规则的结构中包含一种数据类型的一组数据,也称数组元素变量。数组中的元素数据类型相同而且连续可索引,并且每个元素具有唯一的索引号,更改其中的一个元素不影响其他元素。数组元素变量由数组名和数组下标组成,其中数组名标志数组元素变量位于同一个数组,下标为索引号,用于标志同一数组中不同的数组元素。9.4.4 表达式 表达式是由关键字、运算符、常量、变量、函数、字段名、控件和属性等组合而成的,用来执行运算、操作字符或测试数据。在Access中,表达式无处不再,大体可分为5种形式:算术表达式、字符串表达式、关系表达式、布尔表达式和对象运算表达式。1算术表达式 算术表达式也称数值表达式或数学表达式,是由算术运算符连接数值型常量、变量、函数以及各种对象属性而形成的运算式。将Access种的算术运算符按其优先顺序由高到低排列如表9-5所示。2字符串表达式 字符串表达式由字符串运算符连接而成,用于完成字符串的连接运算。字符串运算符又称字符串连接运算符,主要包括3种,如表9-6所示。3关系表达式 关系表达式是由关系运算符组成的表达式,其结果是一个逻辑值,即真(True)或假(False)。关系运算符又称比较运算符或条件运算符,可用于任意数据类型数据的比较(但运算符两边的操作数据的数据类型必须一样)。比较运算符如表9-7所示 4布尔表达式 布尔表达式又称逻辑表达式,是由逻辑运算符连接布尔逻辑类型常量、变量、函数、表达式以及各种对象属性组合而成的运算式,根据逻辑运算符两边的逻辑值进行运算。其返回值为逻辑值,主要用于条件判断。按优先级由高到低的顺序排列,逻辑运算符如表9-8所示。5对象表达式 对象表达式即引用对象或对象属性的表达式,其运算符主要有两种:“!”和“.”,其介绍如表9-10所示。9.5 VBA程序流程控制程序流程控制9.5.1 程序书写规范 1语句书写规则 (1)源程序不分大小写,英文字母的大小写是等价的(字符串除外)。但是为了提高程序的可读性,VBA编译器对不同的程序部分都有默认的书写规则,当程序书写不符合这些规则时,编译器会自动进行转换。例如,关键字默认首字母大写,其他字母小写。(2)通常一个语句写在一行,但一行最多允许255个字符。当语句较长,一行写不下时,可以用续行符“_”将语句连续写在下一行。(3)如果一条语句输入完成,按回车后该行代码呈红色,说明该行语句有错误,应及时修改。2添加注释 注释是为了提高程序的可读性而在程序需要解释的地方加入的标志性说明语句。一个好的程序一般都有注释语句。在VBA中,注释语句一般用单引号或Rem关键字作为起始符。单引号可以在VBA代码行的任何位置,此时VBA编译器会将单引号后面同一行的所有内容看成注释内容。使用Rem关键字引导注释语句时,Rem关键字必须是注释语句的第一个词,即注释必须单独成行。9.5.2 VBA程序结构类型程序结构类型1顺序结构 顺序结构是结构化程序设计中最常见的程序结构,它按代码从上到下顺序依次执行关键字控制下的代码。另外,在顺序结构中可使用WithEnd With对同一对象执行一系列语句,这些语句按顺序执行,并可省略对象名。该关键字的语法格式如下所示。With 对象名 CommandsEnd With2选择结构 选择结构的程序根据条件式的值来选择程序运行的语句。主要有以下一些结构:1)If语句If 条件表达式1 Then 条件表达式1为真时要执行的语句Else If 条件表达式2 Then 条件表达式1为假,并且条件表达式2为真时要执行的语句End If语句2)Select Case语句 Select Case语句是多分支选择语句,即可根据测试条件中表达式的值来决定执行几组语句中的依据。使用格式如下:Select Case 表达式Case 表达式1 表达式的值与表达式1的值相等时执行的语句Case 表达式2 表达式的值介于表达式2和表达式3之间时执行的语句Case Else 上述情况均不符合时执行的语句End Select3)函数 除了以上两种方式外,VBA还提供了3个函数完成相应的操作。IIf函数 IIf函数的调用格式如下:IIf(条件式,表达式1,表达式2)它的跳转由最左边的“条件式”控制,当条件式为真(True)时,函数返回表达式1的值;当条件式为假(False)时,函数返回表达式2的值。Switch函数 Switch函数的调用格式是:Switch(条件式1,表达式1,条件式2,表达式2,条件式n,表达式n)该函数根据条件式1至条件式n从左到右来决定函数返回值,表达式在第一个相关的条件式为True时作为函数返回值返回。条件式和表达式必须成对出现,否则会出错。Chosse函数 Chosse函数的调用格式如下:Chosse(索引式,选项1,选项2,选项3,选项n)3循环结构 循环结构使得若干语句重复执行若干次,实现重复性操作。在程序设计中,经常需要用到循环控制。1)Do语句 Do语句根据条件判断是否继续进行循环操作。用在事先不知道程序代码需要重复多少次的情况下。Do语句语法格式主要有以下4种:格式一:Do While 条件表达式 语句组1 Exit Do 语句组2 Loop格式二:Do Until 条件表达式 语句组1Exit Do 语句组2Loop格式三:Do 语句组1Exit Do 语句组2Loop While 条件表达式格式四:Do 语句组1Exit Do 语句组2Loop Until 条件表达式2)For语句 For语句可以以指定次数来重复执行一组语句,这是最常用的一种循环控制结构。其语法结构如下:For 循环体变量=初值 To 终值Step 步长 语句组1Exit For 语句组2Next9.5.3 程序的调试 1错误类型代码运行时,可能会产生3种类型的错误。1)编译错误2)运行错误3)逻辑错误2调试工具 在VBE环境中,右键单击菜单栏空白处,在弹出的快捷菜单中选择“调试”选项,打开“调试”工具栏,如图9-9所示。调试工具栏上包含了多个常用调试工具。本章结束本章结束
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!