VBA编程基础讲义.doc
《VBA编程基础讲义.doc》由会员分享,可在线阅读,更多相关《VBA编程基础讲义.doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VBA编程基础8.1 模块的基本概念 模块是access系统中的一个重要对象,它以VBA( Visual Basic for Applications )为基础编写,以函数过程(Function)和子过程(Sub)为单元的集合方式存储。在access中,模块分为类模块和标准模块两种类型。8.1.1 类模块窗体和报表模块都是类模块,而且它们各自与某一窗体或报表相关联。窗体和报表模块通常都含有事件过程,该过程用于响应窗体或报表中的事件。可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应,例如:用鼠标单击某个命令按钮。 为窗体或报表创建第一个事件过程时,MicrosoftAccess将
2、自动创建与之关联的窗体或报表模块。如果要查看窗体或报表的模块,请单击窗体或报表“设计”视图中工具栏上的“代码”命令。 窗体或报表模块中的过程可以调用已经添加到标准模块中的过程。 窗体和报表模块具有局部特性,其作用范围局限在所属窗体和报表内部,而生命周期则是伴随着窗体和报表的打开而开始,关闭而结束。8.1.2 标准模块标准模块一般用于存放供其他access数据库对象使用的公共过程。在系统中可以通过创建新的模块对象而进入其代码设计环境。标准模块通常安排一些公共变量或过程供类模块里的过程调用。在各个标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用。标准模块中的公共变量和公共过程具有局部特性
3、,其作用范围在整个应用程序里,而生命周期则是伴随着应用程序的运行而开始,关闭而结束。8.1.3 将宏转换为模块在Access系统中,根据需要可以将设计好的宏对象转换为模块代码的形式。 8.2 创建模块 过程是模块的组成单元,由VBA代码编写而成。过程分两种类型:Sub子过程和Function函数过程。8.2.1 在模块中加入过程模块是装着VBA代码的容器。在窗体和报表的设计视图中,单击工具栏“代码”按钮或者创建窗体和报表的事件过程可以加入类模块的设计和编辑窗口。单击数据库窗体中的“模块”对象标签,然后单击“新建”按钮即可进入标准模块的设计和编辑窗口。一个模块包含一个声明区域,且可以包含一个或多
4、个子过程或函数过程。 1、Sub过程(子过程)执行一系列操作,无返回值。定义格式如下:Sub 过程名程序代码End Sub可以引用过程名来调用该子过程。此外,VBA提供了一个关键字Call,可显示调用一个子过程。2、Function过程(函数过程)执行一系列操作,有返回值。定义格式如下:Function 过程名 As(返回值)类型程序代码End Function函数过程不能使用Call来调用执行,需要直接引用函数过程名,并直接在函数过程名后的括号所辨别。8.2.2 在模块中执行宏在模块的过程定义中,使用DoCmd对象的RunMacro方法,可以执行设计好的宏。其调用格式为: DoCmdRunM
5、acroMacroName,RepeatCount,RepeatExpression 其中MacroName表示当前数据库中宏的有效名称;RepeatCount为可选项,用于计算宏运行次数的整数值;RepeatExpression也是可选项,为数组表达式,在每一次运行宏时进行计算,结果为False(0)时,停止运行宏。 8.3 VBA程序设计基础 VBA是Microsoft Office内置的编程语言,是根据Visual Basic简化的宏语言,其基本语法、词法与Visual Basic基本相同,因而具有简单、易学的特点。与Visual Basic不同的是,VBA不是一个独立的开发工具,一般被
6、嵌入到像Word、Excel、Access这样的软件中,与其配套使用,从而实现在其中的程序开发功能。8.3.1 面向对象程序设计的概念 1对象和集合 对象:在采用面向对象程序设计方法的程序中,程序处理的目标被抽象成了一个个对象,每个对象具有各自的属性、方法和事件。类:是对一类相似对象的定义和描述。因此类可看做是对象的模板,每个对象由类来定义。集合:是由一组对象组成的集合,这些对象的类型可以相同,也可以不同。Access有几十个对象,其中包括对象和对象集合。所有对象和对象集合按层次结构组织,处在最上层的是Application对象,即Access应用程序,其他对象或对象集合都处在它的下层或更下层
7、。2属性和方法 对象的特征用属性和方法描述。属性:用来表示对象的状态,如窗体的Name(名称)属性、Caption(标题)属性等。方法:用来描述对象的行为,如窗体有Refresh方法,Debug对象有Print方法等。引用对象的属性或方法时应该在属性名或方法名前加对象名,并用对象引用符“.”连接,即对象.属性或对象.行为例如 DoCmd.OpenReport “教师信息“是指利用DoCmd对象的OpenReport方法打开报表“教师信息”3事件和事件过程 事件:是对象可以识别的动作,通常由系统预先定义事件过程:对象在识别了所发生的事件后执行的程序例如,下面的事件过程描述了单击按钮之后所发生的一
8、系列动作。Private Sub Command1_Click() Me!Label1.Caption = “Access程序设计 Me!Text1 = End Sub8.3.2 VBA编程环境 一、 Visual Basic 编辑器Visual Basic 编辑器VBE(Visual Basic Editor)是编辑VBA代码时使用的界面。 VBE窗口主要由标准工具栏、工具窗口、属性窗口、代码窗口和立即窗口等组成。二、进入VBA编程环境 Access模块分成类模块和标准模块两种。 对于类模块,可以直接定位到窗体或报表,然后单击工具栏上的“代码”按钮进入;或定位到窗体、报表和控件上通过指定对象
9、事件处理过程进入。其方法有两种:(1)右键单击控件对象,单击快捷菜单上的“事件生成器命令”,打开“事件生成器”对话框,选择其中的“代码生成器”,单击 “确定”按钮即可进入;(2)单击属性窗口的“事件”选项卡,选中某个事件直接单击属性右侧的“”按钮,打开“事件生成器”对话框,选择其中的“代码生成器”,单击“确定”按钮即可进入。 对于标准模块,有3种方法进入:(1)对于已存在的标准模块,只需从数据库窗体对象列表上选择“模块”,双击要查看的模块对象即可进入;(2)要创建新的标准模块,需要从数据库窗体对象列表上选择“模块”,单击工具栏上的“新建”按钮即可进入;(3)在数据库对象窗体中,选择“工具”菜单
10、里“宏”子菜单的“VisualBasic编辑器”选项即可进入。 三、VBE环境中编写VBA代码 VBA代码是由语句组成的,一条语句就是一行代码。例如intCount=3 将3赋值给变量intCountDebug. Print intCount 在立即窗口打印变量intCount的值3Access的VBE编辑环境提供了完整的开发和调试工具。其中的代码窗口顶部包含两个组合框,左侧为对象列表,右侧为过程列表。操作时,从左侧组合框选定一个对象后,右侧过程组合框中会列出该对象的所有事件过程,再从该对象过程列表选项中选择某个事件名称,系统会自动生成相应的事件过程模块,用户添加代码即可。 双击工程窗口中的任
11、何类或对象都可以在代码窗口中打开相应代码进行编辑处理。 四、程序语句书写原则8.3.3 数据类型和数据库对象一、标准数据类型(1)布尔型数据布尔型数据只有两个值True或False。布尔型数据转换为其他类型数据时,Ture转换为-1,False转换为0;其他类型数据转换为布尔型数据时,0转换为False,其他类型转换为Ture。(2)日期型数据“日期/时间”类型数据必须前后用“#”号封住。如#2007-1-1#、#2002-5-4 14:30:00 PM#。(3)变体类型数据变体类型数据是特殊的数据类型。VBA中规定,如果没有显示声明或使用符号来定义变量的数据类型,则默认为变体类型。二、用户定
12、义的数据类型 应用过程中可以建立包含一个或多个VBA标准数据类型的数据类型,这就是用户定义数据类型。它不仅包含VBA的标准数据类型,还包含其他用户定义的数据类型。 (1) 用户定义数据类型的定义:用户定义数据类型可以在Type.EndType关键字间定义,定义格式如下: Type数据类型名 域名As数据类型 域名As数据类型 EndType 如:Type Student Id As Integer 学号 Name As String * 20 姓名 Sex As String * 1 性别 End Type(2)自定义类型变量的声明声明形式: Dim 变量名 As 自定义数据类型名 例:Dim
13、 Stu1 As Student(3)自定义类型变量的使用自定义类型变量的元素引用形式:变量名.元素名 例:给Stu1变量中的姓名、性别赋值:Stu1.Name=“张三”Stu1. Sex = “男”三、数据库对象 8.3.4 变量与常量变量是程序运行过程中值会发生变化的数据。如同一间旅馆客房,昨天可住旅客A,今天住旅客B,明天又有可能被闲置。变量的命名规则如下:(1)以字母或汉字开头,后可跟字母、数字或下划线。(2)变量名最长为255个字符。(3)不区分变量名的大小写,不能使用关键字。(4)字符之间必须并排书写,不能出现上下标。以下是合法的变量名: a,x, x3, BOOK_1,sum5以
14、下是非法的变量名: 3s s*T -3x bowy-1 if 常量是在程序中可以直接引用的实际值,其值在程序运行过程中不变。在VBA中,常量可以分为3种:直接常量、符号常量和系统常量一、变量的声明 VBA变量声明有两种方法。1、显式声明VBA中定义变量的格式为:Dim 变量名 AS 类型 格式中Dim是一个VBA命令,此处用于定义变量;As是关键字,此处用于指定变量的数据类型。 例如:Dim bAge as Integer bAge为整型变量2、隐含声明VBA允许用户在编写应用程序时,不声明变量而直接使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。例如:Dim m,n, m
15、,n为变体Variant变量 NewVar=528 NewVar为Variant类型变量,其值为258。二、强制声明 在默认情况下,VBA允许在代码中使用未声明的变量,如果在模块设计窗口的顶部“通用声明”区域中,加入语句: Option Explicit 强制要求所有变量必须定义才能使用。这种方法只能为当前模块设置了自动变量声明功能,如果想为所有模块都启用此功能,可以单击菜单命令“工具”下“选项”对话框中,选中“要求变量声明”选项即可。三变量的作用域 (1)局部范围(Local)在 Sub End Sub或Function End Function范围内部使用Dim、StaticAs关键字声明
16、的变量就是局部范围的,出了Sub End Sub或Function End Function范围内就无效了,只在过程内部可见。(2)模块范围(Module)变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程或函数过程中可见。在模块的通用说明区,用Dim、Static、PrivateAs关键字定义的变量作用域都是模块范围。(3)全局范围(Public)在标准模块的所有过程之外的起始位置,用PublicAs关键字说明的变量就属于全局的范围,运行时在类模块和标准模块的所有子过程或函数过程中都可见。变量的持续时间(生命周期)是从变量定义语句所在的过程第一次运行,到程序代码执行完毕并
17、将控制权交回调用它的过程为止的时间。注:关于变量的补充说明1、当局部变量和模块变量同名,或局部变量和全局变量同名时,在Sub End Sub或Function End Function范围内只认自己内部定义的局部变量,而将同名的模块变量和全局变量隐藏起来。例:2、在Sub子过程或Function函数过程中用Dim、static声明的变量的不同:(1)Dim声明的是动态变量,每次调用要重新分配内存并初始化,调用完Sub子过程或Function函数过程就回收该变量的内存。(2)Static声明的是静态变量,只有第一次调用时才分配内存和初始化,第二次及之后的调用都不再初始化。只能整个程序关闭了,才回
18、收该变量的内存。例子:Sub s1() Dim x1 As Integer Static x2 As Integer x1 = x1 + 1 x2 = x2 + 1 Debug.Print x1= & x1 Debug.Print x2= & x2 End Sub Sub s2() s1 Call s1 s1End Sub运行子过程s2后的输出结果为:x1=1x2=1x1=1x2=2四数据库对象变量Access建立的数据库对象及其属性,均可被看成是VBA程序代码中的变量及其指定的值来加以引用。 例如,Access中窗体和报表对象的引用格式为: Forms !窗体名称 !控件名称 .属性名称或
19、Reports !报表名称 !控件名称 .属性名称关键字Forms或Reports分别表示窗体或报表对象集合。感叹号“!”分隔开对象名称和控件名称。“属性名称”部分缺省,则为控件基本属性。如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。五数组数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构成,使用数组必须先定义数组。通常用Dim语句来定义数组,定义格式为: 格式1: Dim 数组名(下标上界) As 格式2: Dim 数组名(下标下界 TO 下标上界) As 注:缺省情况下,下标下界为0,数组元素从“数组名(0)”至“数组名(最大下
20、标)”;如果使用to选项,则可以安排非0下界。 一维数组的元素个数=下标上界-下标下界+1dim score(10)as Integer 11个元素dim score(1 to 10)as Integer 10个元素注:(1)所有数组元素在内存连续存放 (2)根据下标区分数组元素关于数组的定义,还有下面的几点说明:(1)定义数组时数组名的命名规则与变量名的命名规则相同。(2)一般在定义数组时应给出数组的上界和下界。但也可以省略下界,缺省 为0。例如,Dim a(10) As Single默认情况下,数组a由11个元素组成。若希望下标从1开始,可在模块的通用声明段使用Option Base语句声
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 编程 基础 讲义
限制150内