第8章 模块与VBA编程基础 联系客服

发布时间 : 星期一 文章第8章 模块与VBA编程基础更新完毕开始阅读cf5e238e84868762caaed52b

全国计算机等级考试二级Access讲义

第8章 模块与VBA编程基础 8.1 模块的基本概念

· 模块是access系统中的一个重要对象,它以VBA( Visual Basic for Applications )为基础编写,

以函数过程(Function)和子过程。(Sub)为单元的集合方式存储。在Access中,模块分为类模块和标准模块两种类型。 一、类模块

1、窗体和报表模块都是类模块,而且它们各自与某一窗体或报表相关联。窗体和报表模块通常都含有事件

过程,该过程用于响应窗体或报表中的事件。可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应,例如:用鼠标单击某个命令按钮。

2、为窗体或报表创建第一个事件过程时,Microsoft Access将自动创建与之关联的窗体或报表模块。如果

要查看窗体或报表的模块,请单击窗体或报表“设计”视图中工具栏上的“代码”命令。 3、窗体或报表模块中的过程可以调用已经添加到标准模块中的过程。

4、窗体和报表模块具有局部特性,其作用范围局限在所属窗体和报表内部,而生命周期则是伴随着窗体和

报表的打开而开始,关闭而结束。 二、标准模块

1、标准模块一般用于存放供其他access数据库对象使用的公共过程。在系统中可以通过创建新的模块对

象而进入其代码设计环境。

2、标准模块通常安排一些公共变量或过程供类模块里的过程调用。在各个标准模块内部也可以定义私有变

量和私有过程仅供本模块内部使用。

3、标准模块中的公共变量和公共过程具有局部特性,其作用范围在整个应用程序里,而生命周期则是伴随

着应用程序的运行而开始,关闭而结束。

三、将宏转换为模块:在Access系统中,根据需要可以将设计好的宏对象转换为模块代码的形式。

8.2 创建模块

· 过程是模块的组成单元,由VBA代码编写而成。过程分两种类型:Sub子过程和Function函数过程。 一、在模块中加入过程:模块是装着VBA代码的容器。在窗体和报表的设计视图中,单击工具栏“代码”

按钮或者创建窗体和报表的事件过程可以加入类模块的设计和编辑窗口。单击数据库窗体中的“模块”对象标签,然后单击“新建”按钮即可进入标准模块的设计和编辑窗口。一个模块包含一个声明区域,且可以包含一个或多个子过程或函数过程。

1、Sub过程(子过程)

1

全国计算机等级考试二级Access讲义

执行一系列操作,无返回值。定义格式如下: Sub 过程名 [程序代码] End Sub

可以引用过程名来调用该子过程。此外,VBA提供了一个关键字Call,可显示调用一个子过程。 2、Function过程(函数过程)

执行一系列操作,有返回值。定义格式如下: Function 过程名 As(返回值)类型 [程序代码] End Function

函数过程不能使用Call来调用执行,需要直接引用函数过程名,并直接在函数过程名后的括号所辨别。 二、在模块中执行宏

· 在模块的过程定义中,使用DoCmd对象的RunMacro方法,可以执行设计好的宏。其调用格式为: DoCmd.RunMacro MacroName [,RepeatCount][,RepeatExpression]

· 其中MacroName表示当前数据库中宏的有效名称;RepeatCount为可选项,用于计算宏运行次数的整数

值;RepeatExpression也是可选项,为数组表达式,在每一次运行宏时进行计算,结果为False(0)时,停止运行宏。

8.3 VBA程序设计基础

· VBA是Microsoft Office内置的编程语言,是根据Visual Basic简化的宏语言,其基本语法、词法与

Visual Basic基本相同,因而具有简单、易学的特点。与Visual Basic不同的是,VBA不是一个独立的开发工具,一般被嵌入到像Word、Excel、Access这样的软件中,与其配套使用,从而实现在其中的程序开发功能。

一、面向对象程序设计的概念 (一)对象和集合

1、对象:在采用面向对象程序设计方法的程序中,程序处理的目标被抽象成了一个个对象,每个对象具有

各自的属性、方法和事件。

2、类:是对一类相似对象的定义和描述。因此类可看做是对象的模板,每个对象由类来定义。 3、集合:是由一组对象组成的集合,这些对象的类型可以相同,也可以不同。

4、Access有几十个对象,其中包括对象和对象集合。所有对象和对象集合按层次结构组织,处在最上层的

是Application对象,即Access应用程序,其他对象或对象集合都处在它的下层或更下层。 (二)属性和方法

2

全国计算机等级考试二级Access讲义

1、对象的特征用属性和方法描述。

2、属性:用来表示对象的状态,如窗体的Name(名称)属性、Caption(标题)属性等。 3、方法:用来描述对象的行为,如窗体有Refresh方法,Debug对象有Print方法等。

4、引用对象的属性或方法时应该在属性名或方法名前加对象名,并用对象引用符“.”连接,即对象.属性

或对象.行为

例:DoCmd.OpenReport “教师信息“ 是指利用DoCmd对象的OpenReport方法打开报表“教师信息” (三)事件和事件过程

1、事件:是对象可以识别的动作,通常由系统预先定义 2、事件过程:对象在识别了所发生的事件后执行的程序

例:下面的事件过程描述了单击按钮之后所发生的一系列动作。

Private Sub Command1_Click()

Me!Label1.Caption = “合肥领航教育\ Me!Text1 = \

End Sub

二、VBA编程环境

(一)Visual Basic 编辑器:Visual Basic 编辑器VBE(Visual Basic Editor)是编辑VBA代码时使用

的界面。VBE窗口主要由标准工具栏、工具窗口、属性窗口、代码窗口和立即窗口等组成。

(二)进入VBA编程环境:Access模块分成类模块和标准模块两种。

1、对于类模块,可以直接定位到窗体或报表,然后单击工具栏上的“代码”按钮进入;或定位到窗体、报

表和控件上通过指定对象事件处理过程进入。其方法有两种:

(1)右键单击控件对象,单击快捷菜单上的“事件生成器命令”,打开“事件生成器”对话框,选择其中

的“代码生成器”,单击 “确定”按钮即可进入;

(2)单击属性窗口的“事件”选项卡,选中某个事件直接单击属性右侧的“?”按钮,打开“事件生成器”

对话框,选择其中的“代码生成器”,单击“确定”按钮即可进入。 2、对于标准模块,有3种方法进入:

(1)对已存在的标准模块,只需从数据库窗体对象列表上选择“模块”,双击要查看的模块对象即可进入; (2)要创建新的标准模块,需要从数据库窗体对象列表上选择“模块”,单击工具栏上的“新建”按钮即

可进入;

(3)在数据库对象窗体中,选择“工具”菜单里“宏”子菜单的“Visual Basic编辑器”选项即可进入。 (三)VBE环境中编写VBA代码

· VBA代码是由语句组成的,一条语句就是一行代码。例如

3

全国计算机等级考试二级Access讲义

intCount=3 ’将3赋值给变量intCount Debug. Print intCount ’在立即窗口打印变量intCount的值3

· Access的VBE编辑环境提供了完整的开发和调试工具。其中的代码窗口顶部包含两个组合框,左侧为对

象列表,右侧为过程列表。操作时,从左侧组合框选定一个对象后,右侧过程组合框中会列出该对象的所有事件过程,再从该对象过程列表选项中选择某个事件名称,系统会自动生成相应的事件过程模块,用户添加代码即可。双击工程窗口中的任何类或对象都可以在代码窗口中打开相应代码进行编辑处理。 (四)程序语句书写原则 三、数据类型和数据库对象 (一)标准数据类型

1、布尔型数据:布尔型数据只有两个值True或False。布尔型数据转换为其他类型数据时,Ture转换为

-1,False转换为0;其他类型数据转换为布尔型数据时,0转换为False,其他类型转换为Ture。

2、日期型数据:“日期/时间”类型数据必须前后用“#”号封住。

如#2007-1-1#、#2002-5-4 14:30:00 PM#。

3、变体类型数据:变体类型数据是特殊的数据类型。VBA中规定,如果没有显示声明或使用符号来定义变

量的数据类型,则默认为变体类型。

(二)用户定义的数据类型:应用过程中可以建立包含一个或多个VBA标准数据类型的数据类型,这就是

用户定义数据类型。它不仅包含VBA的标准数据类型,还包含其他用户定义的数据类型。 用户定义数据类型可以在Type ... End Type关键字间定义,定义格式如下:

Type[数据类型名] <域名>As<数据类型> <域名>As<数据类型> ?

End Type (三)数据库对象

四、变量与常量:变量是程序运行过程中值会发生变化的数据。如同一间旅馆客房,昨天可住旅客A,今天

住旅客B,明天又有可能被闲置。变量的命名规则如下:

1、以字母或汉字开头,后可跟字母、数字或下划线。 2、变量名最长为255个字符。

3、不区分变量名的大小写,不能使用关键字。 4、字符之间必须并排书写,不能出现上下标。

4