王腾 郑静
摘要:宏提供了快速而简便的方式使得Access应用程序自动化,当完成一些复杂的任务宏就显得无能为力了,因此编写VBA模块才是创建应用程序的最佳方式.使用数据访问、循环和分支等手段,借助一些宏无法实现的特性,可以更好地控制应用程序开发。VBA是Access中内置的编程语言,VBA代码能够很好地在Microsoft Office应用程序之间共享。
关键词:VBA;模块;子过程;函数过程
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)06-0084-04
1概述
模塊是VBA编程中的主要对象。模块与宏有一些相似之处。宏是由系统自动生成的程序模块,而模块是用VBA语言编写好的程序代码。VBA代码模块可以是与窗体和报表无关的独立对象,也可以包含在窗体和报表中(通常称为窗体模块和报表模块)。
所有的窗体和报表均支持事件,与窗体和报表相关联的过程可以是宏或者VBA代码。窗体模块中的事件过程代码用于相应窗体或者窗体上控件的触发事件。报表模块中的事件过程代码用于相应报表或报表上控件的触发事件。窗体模块和报表模块的作用范围只在其所属的窗体或者报表内部,随着窗体或者报表的打开而开始,随着窗体或报表的关闭而结束。
标准模块独立于窗体和报表,可以在应用程序中的任何位置使用标准模块中的代码。它包含与任何其他对象都无关的常规过程,以及可以从数据库任何位置运行的经常使用的过程。标准模块和窗体报表模块的主要区别在于其范围和生命周期。
2 VBA模块简介
每个模块都包括声明和过程两个部分,声明部分用于说明模块中使用的变量,过程是模块的组成单元。过程可分为两种类型:子过程(sub)和函数过程(Function)。
End Sub
可以引用子过程的名称来调用子过程,也可以在过程名前加关键字Call显示调用子过程。
函数过程的定义如下:
Function 过程名(<参数表>)
[程序代码]
End Function
与过程类似,函数也能被其他函数和过程调用,区别是过程调用使用Call关键字,而函数调用是出现在表达式或直接赋值给一个变量。