宏的使用 2001年 7期 “好了,你先不要再说了,等我先把以前说的整理一下再说,好吗?”小欣叫道。   小欣仔细想过以后,自言自语地说:“首先是表,它是整个数据库系统中最基本也是最重要的东西,所有的记录都是存放在表中的,可以对其进行增、删、改一类的操作;然后是查询,可以完成对指定要求的数据搜索;还有窗体,它是用户和数据库之间的界面,输入/输出都离不开它;最后还有刚才说的报表,那是用于打印输出。这些都是Access数据库的基本对象,都有强大功能,可是,这些对象的功能都是相对独立的,彼此之间并没有必然联系,怎么能统一成一个整体呢?一定还有其他什么对象。”   阿月说:“是的,表、查询、窗体、报表彼此并不能相互驱动,我们给用户使用的数据必须是一个性能完善、操作简便的系统,因此我们必须把这些对象有机地结合起来,这就需要用到Access提供的宏对象了。要把它说清楚的话,就只有从定义说起了!”   #1一、宏的基本概念   宏实际上是一种简化用户工作的工具,它是提前指定动作的列表,也就是先把各种动作依次执行的次序放到宏里,运行宏时,Access就会依照顺序执行下来,简单的宏运行机制实际上和早期DOS中的批处理文件的作用类似。   使用宏来设计程序与传统程序设计有很大不同,它并不需要编写程序代码,而只需要在表格中选择有关内容,填写一份宏操作表格就可以了。Access提供宏对象的功能十分强大。   #1二、宏的作用   在Access中,用户几乎可以根据需要定制各种各样的宏,宏在数据库设计中主要用于实现以下功能:   定制用户界面,比如各种菜单和对话框。   使用宏自动打开和排列报表、窗体以及表。   使用宏在报表中增加按钮,以实现打印等功能。   使用宏实现Access数据库与其他应用程序的数据导入/导出。   #1三、宏的分类   “宏”在Access中的使用非常灵活,它既可以是包含一系列操作的宏,也可以构成包含多个相关宏的集合所组成的“宏组”。在具体的使用中,我们可以让一个宏调用其他的宏,也可以使用表达式生成表达式,规定宏执行条件。Access提供了几十种宏供用户使用,它们大体分为以下几类:   窗体、报表和数据操作类:如用于记录定位的FindNext、FindRecord等。   执行动作类:如支持宏操作的StopAllMacro、RunMacro等。   对象处理类:如调整窗体的Maximize、Minimize和Movesize等。   导入导出类:如TransferDatabase、TransferText等。   其他功能类:如显示屏幕消息的Echo、SetWarning等。   另外,大多数的宏都有具体的操作参数用于对这个操作进行定义。在Access中,不仅提供的宏多,其操作参数更多,对于初学者来讲,想马上学会灵活应用宏几乎是不可能的。因此,知道宏的作用,掌握创建宏的基本方法才是最重要的。现在我们就来看看下面这个例子。   #2宏定制工具栏   对于我们这个设备管理系统来说,现在假设已经实现了各个部分的功能,为了方便用户我们可以设计出类似于Windows应用程序中工具栏,用户直接点击工具栏上的按钮,就可以实现相应的操作或者弹出对应的菜单。比如:我们已经实现了系统所有的查询功能,并且完成前面窗体设计部分中定义的“设备查询界面”窗体。现在我们可以定义一工具栏,并在上面提供一个按钮,点击该按钮后,将会自动弹出“查询”窗体,供用户选择需要的查询,并可使用该窗体的命令按钮,显示最后查询结果,其具体实现方法如下:   1.打开数据库,从“对象”列表中选择“宏”选项,单击“新建”按钮,将弹出宏的设计窗口,如^07060105a^5-1所示。   2.单击宏操作窗口“操作”列中的第一个空单元格,然后点击其右端,出现下拉箭头,接着在出现的列表中找到OpenFrom宏操作(该宏用于打开一个窗体)。   3.在出现的操作参数中,确定窗体名为“设备查询界面”,并确定“视图”为“窗体”,“数据模式”为“只读”,“窗口模式”为“普通”,如^07060105b^5-2所示。   4.在第二行以同样的方法选定使用“Maximize”宏操作(将活动窗口最大化),让系统将设备查询窗体最大化显示。   5.确定后,给该宏起名为“查询宏”并退回到第一步所示状态。   6.采用同样方法,对工具栏上的其他按钮需要的宏进行定义,比如:确定另一个宏名为“退出”,其中使用多个Close宏操作(可以关闭指定的Microsoft Access窗口,如果没有指定窗口,则关闭活动窗口),给每个Close宏操作指定需要关闭的对象(比如:窗体、表、查询)和该对象的名称。这样该宏执行后,将把所有规定的对象全部关闭。   7.使用设计视图方式,设计工具栏窗体。   8.单击工具箱中的命令按钮,并在空白窗体的适当位置画一个按钮,在弹出的对话框中选择“类别”为杂项,操作为运行宏,如^07060105c^5-3所示。进入下一步后,确定需要执行的宏为刚才建立好的“查询宏”。   9.在以后的几步中还需要指定命名按钮上显示文本还是图片,并同样要对该按钮命名,其方法和窗体设计中讲到的方法相同。   10.按照同样的方法对其他命令按钮进行设置,比如设置一个“退出”命令按钮,该按钮调用刚才设计的“退出”宏。最后,对该窗体的属性进行设置,使其外观和常用工具栏格式相同,命名后保存就可以了。   “现在你看到了,只要先建立好执行特定任务的宏,然后建立调用这些宏的按钮,就可以建立定制工具栏执行特定的任务了。”阿月对小欣说道。   阿月最后对小欣说:“在这么短的时间内,不太可能将一个完整的数据库应用全过程面面俱到做介绍,如果能给你起一个“抛砖引玉”作用,我的目的就实现了!”