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