86宏对象的其他应用 08.6.1利用宏生成VBA程序代码 8.62启动时自动运行的宏 AutoExec 8.63响应组合键的宏组 AutoKeys 返回
8.6 宏对象的其他应用 8.6.1利用宏生成VBA程序代码 8.6.2启动时自动运行的宏 AutoExec 8.6.3响应组合键的宏组 AutoKeys 返回
Q861利用宏生成VBA程序代码 由于宏的设计过程是一个人机对话的过程 它不要求设计者刻意地记忆命令、参数及其相 关语法,因此是一种非常方便的编程工具。实 际上,宏本身就是程序,只不过是一种控制方 式简单的程序而已。它由若干操作组成,一般 情况下采用顺序执行的方式运行,也可以通过 设置操作执行的条件来实现操作执行顺序的跳 转 自然会考虑能否利用宏设计视图以人机对 话的方式设计宏,然后将其转换为对应的VBA 程序
由于宏的设计过程是一个人机对话的过程, 它不要求设计者刻意地记忆命令、参数及其相 关语法,因此是一种非常方便的编程工具。实 际上,宏本身就是程序,只不过是一种控制方 式简单的程序而已。它由若干操作组成,一般 情况下采用顺序执行的方式运行,也可以通过 设置操作执行的条件来实现操作执行顺序的跳 转。 自然会考虑能否利用宏设计视图以人机对 话的方式设计宏,然后将其转换为对应的VBA 程序 . 8.6.1 利用宏生成VBA程序代码
首先,在数据库设计视图宏对象选项 卡上选中需要转换为VBA程序的宏对象, 然后在窗口菜单栏上依次单击【工具】 【宏】【将宏转换为 Visual basic代码】 命令,随即弹出“转换宏”对话框,单 击其上的“转换”按钮“转换巴”, 即完成了将宏转换为VBA程序的过程
首先,在数据库设计视图宏对象选项 卡上选中需要转换为VBA程序的宏对象, 然后在窗口菜单栏上依次单击【工具】| 【宏】|【将宏转换为Visual Basic代码】 命令,随即弹出“转换宏”对话框,单 击其上的“转换”按钮“ ”, 即完成了将宏转换为VBA程序的过程
例如,可以将“零售商店管理信息系 统”数据库中的宏“销售记录”转换为对应的 VBA程序。其操作过程为:在数据库设计视图 宏对象选项卡上选中宏“销售记录”,在窗口 菜单栏上依次单击【工具】【宏】【将宏转换 为 Visual basic代码】命令,随即弹出的“转换 宏”对话框如图8-15所示。根据需要在这个对 话框中成两个选项的选定操作后,单击“转 换 转换c ”,即可将宏对象“销售 记录”转换成为一个名为“被转换的宏—销 售记录”的模块对象,其间包含着与宏“销售 记录”的功能完全相同功能的VBA程序代码
例如,可以将“零售商店管理信息系 统”数据库中的宏“销售记录”转换为对应的 VBA程序。其操作过程为:在数据库设计视图 宏对象选项卡上选中宏“销售记录”,在窗口 菜单栏上依次单击【工具】|【宏】|【将宏转换 为Visual Basic代码】命令,随即弹出的“转换 宏”对话框如图8-15所示。根据需要在这个对 话框中完成两个选项的选定操作后,单击“转 换”按钮“ ”,即可将宏对象“销售 记录”转换成为一个名为“被转换的宏——销 售记录”的模块对象,其间包含着与宏“销售 记录”的功能完全相同功能的VBA程序代码
图8-15“转换宏”对话框 回零售商店管理信息系统:数据库(Aces8202-2003文件格式)□x 运行B)忆设计四)a新建)|X|国鲜 对2A转换宏:销售记录 图表 2 Autokeys 曰查询 2柜存信息回险生动的函数加入请处理)]转换 2宏1 国窗体 回包含宏注释〔 进货数据 匚取消 报表 2库存记录 页 上柜数据 2宏 消息框宏 销售记录 哲4 2销售记录宏组 组
图8-15 “转换宏”对话框
在“转换宏”对话框中有两个选项, 选中后依次表示:转换形成的ⅤBA程序 中包含进行出错处理的 On error子程序段 转换形成的VBA程序中包含关于宏对象 的注释 此处,让我们来看看转换成的ⅤBA 程序代码,其间包含出错处理程序段和 宏注释
在“转换宏”对话框中有两个选项, 选中后依次表示:转换形成的VBA程序 中包含进行出错处理的On Error子程序段; 转换形成的VBA程序中包含关于宏对象 的注释。 此处,让我们来看看转换成的VBA 程序代码,其间包含出错处理程序段和 宏注释
销售记录销售记录 Function销售记录_销售记录( On error goto销售记录销售记录Er 打开“销售数据录入”窗体 DoCmd Open Form"销售数据录入", anOrmal,"" acnorma If Weekday (Date, 2)=7)Then 若逢周日,给出提示 Beep MsgBox"今天周日,客流量较大,辛苦了!" vboKOnly,"注意:" End if
'------------------------------------------------------------ ' 销售记录_销售记录 '------------------------------------------------------------ Function 销售记录_销售记录() On Error GoTo 销售记录_销售记录_Err ' 打开“销售数据录入”窗体 DoCmd.OpenForm "销售数据录入", acNormal, "", "", , acNormal If (Weekday(Date, 2) = 7) Then ' 若逢周日,给出提示 Beep MsgBox "今天周日,客流量较大,辛苦了!", vbOKOnly, "注意:" End If
销售记录销售记录Exit Eⅹ it function 销售记录销售记录Er MsgBox errors Resume销售记录销售记录Exit End function 注意,由宏转换成的ⅤBA程序段是一个VBA函数 Function,其调用方式不同于ⅤBA子程序 Private sub?
销售记录_销售记录_Exit: Exit Function 销售记录_销售记录_Err: MsgBox Error$ Resume 销售记录_销售记录_Exit End Function 注意,由宏转换成的VBA程序段是一个VBA函数 “Function”,其调用方式不同于VBA子程序 “Private Sub
862启动时自动运行的宏 AutoExec 如果在一个 Access数据库中创建一个命 名为“ AutoExec”的宏对象,将得到这样 种效果:一日这个数据库被打开, Autoexec宏对象中的第一个宏将得到执 行。这是因为,只要 Access得到打开 个数据库的操作指令,它将在打开这个 数据库后立即去寻找其中是否存在一个 命名为“ AutoExec?的宏对象,如果找到, 则运行它
如果在一个Access数据库中创建一个命 名为“AutoExec”的宏对象,将得到这样 一种效果:一旦这个数据库被打开, AutoExec宏对象中的第一个宏将得到执 行。这是因为,只要Access得到打开一 个数据库的操作指令,它将在打开这个 数据库后立即去寻找其中是否存在一个 命名为“AutoExec”的宏对象,如果找到, 则运行它。 8.6.2 启动时自动运行的宏AutoExec
合理地使用这个命名为 Autoexec的特殊宏,可在 首次打开数据库时执行一个或一系列的操作, 包括某些应用系统初始参量的设定、打开应用 系统操作主窗口等等。 在实例“零售商店管理信息系统”数据库中, 设计有一个名为“ Autoexec”的宏对象,其间包 含一个操作: Open Form"零售商店管理信息系统", anOrmal anOrmal 这就使得当打开“零售商店管理信息系统” 数据库时,即会自动打开数据库窗体“零售商 店管理信息系统”,而这个窗体是整个数据 库应用系统的主控窗体。对于一个可以发布的 数据库应用系统,这一项功能是非常必要的
合理地使用这个命名为AutoExec的特殊宏,可在 首次打开数据库时执行一个或一系列的操作, 包括某些应用系统初始参量的设定、打开应用 系统操作主窗口等等。 在实例“零售商店管理信息系统”数据库中, 设计有一个名为“AutoExec”的宏对象,其间包 含一个操作: OpenForm "零售商店管理信息系统", acNormal, "", "", , acNormal 这就使得当打开“零售商店管理信息系统” 数据库时,即会自动打开数据库窗体“零售商 店管理信息系统”,而这个窗体是整个数据 库应用系统的主控窗体。对于一个可以发布的 数据库应用系统,这一项功能是非常必要的