在利用Access完成实际工作时,常常会重复进行某一项工作。可以通过创建宏来执行重复的或复杂的任务。利用宏的自动执行重复任务的功能,可以保证工作的一致性,避免因忘记操作步骤等失误而引起的麻烦,从而提高工作效率。
宏由一些操作和命令组成,其中每个操作可实现特定的功能,命令可辅助完成自动化的操作。例如,可以完成排序、查询、显示窗体、打印报表等各种操作。宏可以使普
通的任务自动完成。例如,可设置一个宏,在用户单击某个命令按钮时运行该宏,以打印指定的报表。在创建宏时,可以包含一些操作参数,用于执行某项单独操作所要求的附加信息。
宏的优点在于,无须编程即可完成对数据库对象的各种操作。在宏中使用的操作与操作系统中的批处理命令非常相似。用广在使用宏时,只需给出操作的名称、条件和参数,就可以自动完成指定的操作。
宏可以分为三类:操作序列、宏组和含有条件的宏。
1.操作序列
操作序列是结构最简单的一种宏。宏中包含的就是顺序排列的各种操作,每次运行该宏时,Access都将顺序执行宏中的操作。
2.宏组
在数据库操作中,如果为了完成一项功能而需要使用多个宏,则可将完成同一项功能的多个宏组成一个宏组,以便于对数据库中的宏进行分类管理和分别维护。
例如,宏组是由三个相关的宏:雇员、产品和报表对话框组成的。其中每个宏都执行OpenForm(打开窗体)操作,产品宏还可执行MoveSize操作。“宏名”列用于标识宏。在宏组中执行宏时,将会顺序执行操作列中的操作;当操作列中的“宏名”列为空时,立即执行所跟随的操作。
调用(执行)一个宏组中的宏的格式为:
宏组名.宏名
例如,引用“按钮”宏组中的“雇员”宏,可以使用句式:按钮.雇员。
3.条件操作
条件操作是指在满足一定条件时,才执行宏中的某个或某些操作。条件的设置可以通过逻辑表达式来完成,表达式的真假决定了是否执行宏中的操作。例如,图中的宏只有在“条件”列中的表达式为真时(在“供应商ID”字段中有一个Null值),才执行MsgBox和stopMacro操作。
在一般的数据库系统中,如果要对数据库中的对象进行操作,就需要编写程序来完成这些操作。在Access数据库中,也可以通过编写模块代码来代替宏中的操作。使用宏还是使用VBA来创建应用程序,取决于需要完成的任务。
对于简单的细节工作,如打开窗体,关闭窗体,显示工具栏,运行报表,创建全局赋值键,以及在首次打开数据库时的一系列操作等,使用宏是很方便的。它可以简捷迅速地将已经创建的数据库对象联系在一起,因为不必记住各种语法,并且每个操作的参数都显示在“宏”窗口的下半部分。但在有些情况下,应该使用VBA而不使用宏。例如,如果一个数据库包含用于响应窗体和报表上的事件的宏,则由于宏是独立于使用它的窗体和报表的对象的,因此会变得难以维护。相反地,由于VRA事件过程创建在窗体或报表的定义中,因此如果把窗体或报表从一个数据库移动到另一个数据库,则它们所带的事件过程也会同时移动。又如,使用VBA可以创建自己的函数,通过这些函数可以执行表达式难以胜任的复杂计算,或者用来代替复杂的表达式。此外,也可在表达式中使用自己创建的函数对多个对象进行操作。