Access 12 中自定义 Ribbon (二)—— 编写回调函数
Access 12 中自定义 Ribbon (二)—— 编写回调函数
作者:朱亦文
日期:2006年8月25日
回调函数的目的是完成 Ribbon 上控件所执行的功能。在上一篇文章中的 XML 内容中,第一行:
onLoad 属性值为 onLoadRibbon,即表示在加载 Ribbon 时调用 onLoadRibbon 函数,这个函数要用 VBA 来进行书写。
一、建立 Access 应用程序
新建一个数据库,命名为 Ribbon.accdb,导入 Northwind2007.accdb 数据库中所有对象(示例中要用一些对象)。按 Alt+F11 键进入 VBE。为了使用 Ribbon 对象,首先必须引用 Microsoft Office 12.0 Object Library。
二、建立模块
为了统一管理,将所有回调函数放在同一个模块中,在 VBE 中新建一个模块,命名为 basRibbonCallbacks。为了以后能方便地使用自定义的 Ribbon 对象,定义一个全局对象变量 gobjRibbon,并 onLoad 指定的回调函数 onLoadRibbon 中进行赋值。
2Option Explicit
3
4' ------------------------------
5' 本模块包含 Ribbon 回调子程序
6' ------------------------------
7
8Public gobjRibbon As IRibbonUI
9
10' 自定义 Ribbon 加载时事件处理
11Public Sub onLoadRibbon(Ribbon As IRibbonUI)
12 ' 将自定义 Ribbon 对象设置为全局对象
13
14 Set gobjRibbon = Ribbon
15End Sub
实现 Ribbon 中的“打开罗斯文商贸”控件的onOpenFormEdit 回调函数,通过 Ribbon 中的 Tag 属性实现传递要打开的窗体名,在本例中,<button id="cmdHome" label="打开罗斯文商贸" imageMso="MeetingsWorkspace" size="large" onAction="onOpenFormEdit" tag="Home"/>,cmdHome 按钮控件的 Tag 属性为“Home”,指定要打开的窗体为“Home”。
2Public Sub onOpenFormEdit(control As IRibbonControl)
3 ' 以编辑方式打开窗体
4 DoCmd.OpenForm control.Tag, , , , acFormEdit
5End Sub
实现 Ribbon 中的“关闭数据库”的onCloseDatabase 回调函数。
2 DoCmd.CloseDatabase
3End Sub
下一讲,讲述创建存储 Ribbon XML 文件内容的数据表