第8章 模块与VBA编程基础
在Access系统中,借助前面章节介绍的宏对象可以完成事件的响应处理,例如打开和关闭窗体、报表等。但宏的使用也有一定的局限性。一是宏只能处理一些简单的操作,对于复杂条件和循环等结构则无能为力,二是宏对数据库对象的处理,例如,表对象或查询对象的处理能力很弱。
“模块”是将VBA声明和过程作为一个单元进行保存的集合体。通过模块的组织和VBA代码设计,可以大大提高Access数据库应用的处理处理能力,解决复杂问题。
本章主要介绍Access数据库的模块类型及创建、VBA程序设计的基础。
8.1 模块的基本概念
模块是Access系统中的一个重要对象,它以VBA(Visual Basic for Aapplication)以函数过程(Function)或子过程(Sub)为单元的集合方式存储。Access中,模块分为类模块和标准模块两种类型。
8.1.1 类模块
窗体模块和报表模块都属于类模块,它们从属于各自的窗体或报表。在窗体或报表的设计视图环境下可以用两种方法进入相应的模块代码设计区域;一是鼠标点击工具栏“代码”按钮进入;二是为窗体或报表创建事件过程时,系统会自动进入相应代码设计区域。
窗体模块和报表模块通常都含有事件过程,而过程的运行用于响应窗体或报表上的事件。使用事件过程可以控制窗体或报表的行为以及它们对用户操作的响应。
窗体模块和报表模块中的过程可以调用标准模块中已经定义好的过程。
窗体模块和报表迷狂具有局限性,其作用范围局限在所属窗体或报表内部,而生命周期则是伴随着窗体或报表的打开而开始、关闭而结束。
8.1.2 标准模块
标准模块一般用于存放供其他Access数据库对象使用的公共过程。在系统中可以通过创建新的模块对象而进人其代码设计环境。
标准模块通常安排一些公共变量或过程供类模块里的过程调用。在各个标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用。
标准模块中的公共变址和公共过程具有全局特性,其作用范围在整个应用程序里,生命周期是伴随着应用程序的运行而开始、关闭而结束。
8.1.3 将宏转换为模块
在Access系统中,根据需要可以将设计好的宏对象转换为模块代码形式。