zhuyiwen

导航

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 中进行赋值。

 1Option Compare Database
 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”。

1' 通过 Ribbon 中的 Tag 属性实现传递要打开的窗体
2Public Sub onOpenFormEdit(control As IRibbonControl)
3    ' 以编辑方式打开窗体
4    DoCmd.OpenForm control.Tag, , , , acFormEdit
5End Sub

实现 Ribbon 中的“关闭数据库”的onCloseDatabase 回调函数。

1Public Sub onCloseDatabase(control As IRibbonControl)
2    DoCmd.CloseDatabase
3End Sub

下一讲,讲述创建存储 Ribbon XML 文件内容的数据表

posted on 2006-08-25 19:18  朱亦文  阅读(2020)  评论(0编辑  收藏  举报