,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,8.6 宏对象的其他应用,8.6.1利用宏生成,VBA,程序代码,8.6.2启动时自动运行的宏,AutoExec,8.6.3响应组合键的宏组,AutoKeys,返回,Access2003:8宏对象的其他应用共17页,您现在浏览的是第1页!,由于宏的设计过程是一个人机对话的过程,它不要求设计者刻意地记忆命令、参数及其相关语法,因此是一种非常方便的编程工具。实际上,宏本身就是程序,只不过是一种控制方式简单的程序而已。它由若干操作组成,一般情况下采用顺序执行的方式运行,也可以通过设置操作执行的条件来实现操作执行顺序的跳转。,自然会考虑能否利用宏设计视图以人机对话的方式设计宏,然后将其转换为对应的,VBA,程序.,8.6.1 利用宏生成,VBA,程序代码,Access2003:8宏对象的其他应用共17页,您现在浏览的是第2页!,首先,在数据库设计视图宏对象选项卡上选中需要转换为,VBA,程序的宏对象,然后在窗口菜单栏上依次单击【工具】|【宏】|【将宏转换为,Visual Basic,代码】命令,随即弹出“转换宏”对话框,单击其上的“转换”按钮“”,即完成了将宏转换为,VBA,程序的过程。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第3页!,例如,,可以将,“零售商店管理信息系统”,数据库中的宏“销售记录”转换为对应的,VBA,程序。其操作过程为:在数据库设计视图宏对象选项卡上选中宏“销售记录”,在窗口菜单栏上依次单击【工具】|【宏】|【将宏转换为,Visual Basic,代码】命令,随即弹出的“转换宏”对话框如图8-15所示。根据需要在这个对话框中完成两个选项的选定操作后,单击“转换”按钮“”,即可将宏对象“销售记录”转换成为一个名为“被转换的宏销售记录”的模块对象,其间包含着与宏“销售记录”的功能完全相同功能的,VBA,程序代码。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第4页!,在“转换宏”对话框中有两个选项,选中后依次表示:转换形成的,VBA,程序中包含进行出错处理的,On Error,子程序段;转换形成的,VBA,程序中包含关于宏对象的注释。,此处,让我们来看看转换成的,VBA,程序代码,其间包含出错处理程序段和宏注释。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第5页!,销售记录_销售记录_,Exit:,Exit Function,销售记录_销售记录_,Err:,MsgBox Error$,Resume,销售记录_销售记录_,Exit,End Function,注意,由宏转换成的,VBA,程序段是一个,VBA,函数“,Function”,,其调用方式不同于,VBA,子程序“,Private Sub”。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第6页!,合理地使用这个命名为,AutoExec,的特殊宏,可在首次打开数据库时执行一个或一系列的操作,包括某些应用系统初始参量的设定、打开应用系统操作主窗口等等。,在实例,“零售商店管理信息系统”,数据库中,设计有一个名为“,AutoExec”,的宏对象,其间包含一个操作:,OpenForm,零售商店管理信息系统,acNormal,acNormal,这就使得当打开“,零售商店管理信息系统,”数据库时,即会自动打开数据库窗体“,零售商店管理信息系统,”,而这个窗体是整个数据库应用系统的主控窗体。对于一个可以发布的数据库应用系统,这一项功能是非常必要的。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第7页!,图8-16 用于设置启动程序的“启动”对话框,Access2003:8宏对象的其他应用共17页,您现在浏览的是第8页!,为了满足这种对于组合式快捷键的应用需求,,Access,提供了另一个特殊的宏对象名“,AutoKeys”。,在命名为“,AutoKeys”,的宏对象中,我们可以采用宏组的形式定义某些组合键按下后应该进行的操作,从而为,Access,数据库应用系统提供一整套组合式快捷键功能。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第9页!,图8-17 “,AutoKeys”,设计视图及其对应操作参数设置,Access2003:8宏对象的其他应用共17页,您现在浏览的是第10页!,图8-15 “转换宏”对话框,Access2003:8宏对象的其他应用共17页,您现在浏览的是第11页!,-,销售记录_销售记录,-,Function,销售记录_销售记录(),On Error GoTo,销售记录_销售记录_,Err,打开“销售数据录入”窗体,DoCmd.OpenForm,销售数据录入,acNormal,acNormal,If(Weekday(Date,2)=7)Then,若逢周日,给出提示,Beep,MsgBox,今天周日,客流量较大,辛苦了!,vbOKOnly,注意:,End If,Access2003:8宏对象的其他应用共17页,您现在浏览的是第12页!,如果在一个,Access,数据库中创建一个命名为“,AutoExec”,的宏对象,将得到这样一种效果:一旦这个数据库被打开,,AutoExec,宏对象中的个宏将得到执行。这是因为,只要,Access,得到打开一个数据库的操作指令,它将在打开这个数据库后立即去寻找其中是否存在一个命名为“,AutoExec”,的宏对象,如果找到,则运行它。,8.6.2 启动时自动运行的宏,AutoExec,Access2003:8宏对象的其他应用共17页,您现在浏览的是第13页!,对于一个包含“,AutoExec”,宏的,Access,数据库,如果想在打开数据库时阻止自动运行“,AutoExec”,宏,可在打开数据库时按住,SHIFT,键不放开,以此来阻止,Access,自动运行“,AutoExec”,宏。,除了可以利用“,AutoExec”,宏实现打开数据库时自动运行一个应用程序以外,,Access,还提供另外一种实施方案:通过设置数据库设计视图窗口菜单栏上的【工具】|【启动】命令,在随即弹出的“启动”对话框中进行合适的选项设置,也可以控制如何启动数据库或应用程序。“启动”对话框如图8-16所示,其中,我们设置启动显示窗体为“,零售商店管理信息系统,”。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第14页!,在一般,Windows,应用程序中,为了使用剪贴板进行对象的复制粘贴操作,除了可以利用菜单选项或工具按钮实现以外,可能很多人都知道“,C”,是复制操作的组合式快捷键、“,V”,是粘贴操作的组合式快捷键,且非常习惯于使用它们。那么,在一个,Access,数据库应用系统中,是否也可能出现对这种组合式快捷键的应用需求呢?如果确实有这样的需求,又该如何满足它呢?,8.6.3 响应组合键的宏组,AutoKeys,Access2003:8宏对象的其他应用共17页,您现在浏览的是第15页!,例如:,在实例“,零售商店管理信息系统,”数据库中,设计有一个名为“,AutoKeys”,的宏对象,其间包含五个宏,每个宏包含一个“,RunMacro”,操作,分别定义了:“,g”,组合键执行宏“柜存信息”,“,j”,组合键执行宏“进货数据”,“,k”,组合键执行宏“库存数据”,“,s”,组合键执行宏“上柜数据”,“,x”,组合键执行宏“销售数据”。在这个宏对象的支持下,按下上述任一组合键即可运行相应的宏,而这些宏又都分别包含打开某一个窗体对象的操作,因此使得打开相应窗体对象的操作可以采用上述快捷键的方式进行,从而方便了操作者的操作过程。,实例“,零售商店管理信息系统,”数据库中的宏对象“,AutoKeys”,设计视图及其对应操作参数设置如图8-17所示。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第16页!,注意:,Access,本身已经具有一些默认的组合式快捷键功能,如果利用,AutoKeys,宏对象定义的组合式快捷键与某一些,Access,默认的组合式快捷键功能冲突,则利用,AutoKeys,宏对象定义的组合式快捷键功能有效,而那些,Access,默认的组合式快捷键功能无效。,Access2003:8宏对象的其他应用共17页,您现在浏览的是第17页!,