Access 12 中自定义 Ribbon (二)—— 编写回调函数
Access 12 中自定义 Ribbon (二)—— 编写回调函数
作者:朱亦文
日期:2006年8月25日
回调函数的目的是完成 Ribbon 上控件所执行的功能。在上一篇文章中的 XML 内容中,第一行:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="onLoadRibbon">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 中进行赋值。
Option Compare Database2
Option Explicit3

4
' ------------------------------5
' 本模块包含 Ribbon 回调子程序6
' ------------------------------7

8
Public gobjRibbon As IRibbonUI9

10
' 自定义 Ribbon 加载时事件处理11
Public Sub onLoadRibbon(Ribbon As IRibbonUI)12
' 将自定义 Ribbon 对象设置为全局对象13
14
Set gobjRibbon = Ribbon15
End Sub实现 Ribbon 中的“打开罗斯文商贸”控件的onOpenFormEdit 回调函数,通过 Ribbon 中的 Tag 属性实现传递要打开的窗体名,在本例中,<button id="cmdHome" label="打开罗斯文商贸" imageMso="MeetingsWorkspace" size="large" onAction="onOpenFormEdit" tag="Home"/>,cmdHome 按钮控件的 Tag 属性为“Home”,指定要打开的窗体为“Home”。
' 通过 Ribbon 中的 Tag 属性实现传递要打开的窗体2
Public Sub onOpenFormEdit(control As IRibbonControl)3
' 以编辑方式打开窗体4
DoCmd.OpenForm control.Tag, , , , acFormEdit5
End Sub实现 Ribbon 中的“关闭数据库”的onCloseDatabase 回调函数。
Public Sub onCloseDatabase(control As IRibbonControl)2
DoCmd.CloseDatabase3
End Sub下一讲,讲述创建存储 Ribbon XML 文件内容的数据表
浙公网安备 33010602011771号