這樣就能使用智能提示功能,快速地編寫功能區XML
二.編寫回調函數
回調函數的目的是完成功能區上控件所執行的功能。在上一篇文章中的 XML 內容中,第一行:
<customUIXMLns="http://schemas.microsoft.com/Office/2006/01/customui"onLoad="onLoadRibbon">
onLoad 屬性值為 onLoadRibbon,即表示在加載功能區時調用 onLoadRibbon 函數,這個函數要用 VBA 來進行書寫。
一、建立 Access 應用程序
新建一個數據庫,命名為功能區.accdb,導入 Northwind2007.accdb 數據庫中所有對象(示例中要用一些對象)
按 Alt+F11 鍵進入 VBE。為了使用功能區對象,首先必須引用 Microsoft Office 12.0 Object Library。
二、建立模塊
為了統一管理,將所有回調函數放在同一個模塊中,在 VBE 中新建一個模塊,命名為 basRibbonCallbacks。為了以後能方便地使用自定義的功能區對象,定義一個全局對象變量 gobjRibbon,並 onLoad 指定的回調函數 onLoadRibbon 中進行賦值。
OptionCompareDatabase
OptionExplicit
'------------------------------
本模塊包含Ribbon回調子程序'------------------------------
PublicgobjRibbonAsIRibbonUI
'自定義Ribbon加載時事件處理PublicSubonLoadRibbon(RibbonAsIRibbonUI) '將自定義Ribbon對象設置為全局對象 SetgobjRibbon=RibbonEndSub
實現功能區中的“打開羅斯文商貿”控件的onOpenFormEdit 回調函數,通過功能區中的 Tag 屬性實現傳遞要打開的窗體名,在本例中,<button id="cmdHome" label="打開羅斯文商貿" imageMso="MeetingsWorkspace" size="large" onAction="onOpenFormEdit" tag="Home"/>,cmdHome 按鈕控件的 Tag 屬性為“Home”,指定要打開的窗體為“Home”。
'通過Ribbon中的Tag屬性實現傳遞要打開的窗體PublicSubonOpenFormEdit(controlAsIRibbonControl) '以編輯方式打開窗體 DoCmd.OpenFormcontrol.Tag,,,,acFormEditEndSub
實現功能區中的“關閉數據庫”的onCloseDatabase 回調函數。
PublicSubonCloseDatabase(controlAsIRibbonControl) DoCmd.CloseDatabaseEndSub
創建功能區系統數據表
講述了如何創建功能區XML,那麼這個 XML 如何使用呢?
對於 Access 2007 來說,要將這個 XML 的內容存儲在一個名為 USysRibbons 的系統表中,才能使用。
一、創建 USysRibbons 表
在上一講中,建立了Ribbon.accdb 數據庫,打開這個數據庫,在系統的功能面板上選擇[插入]面板,在[表和列表]上點擊[表]按鈕,創建新表。
新加兩個字段:RibbonName 和功能區XML,其中,RibbonName 為“文本”類型,RibbonXML 為“備注”類型,將其保存為 USysRibbons:
二、設置 Access 選項
由於這個以 USys 開頭的系統表,在默認設置的情況下,在導航面板中是看不到的,因此,要設置 Access 的選項才能將其顯示在導航面板中。點擊 Access 的文件菜單按鈕,即 Access 左上角的圖標,再點擊[Access 選項]按鈕:
選擇左側的[啟動],然後在右側點擊[Navigation Options...]按鈕:
在“導航選項”對話框中,勾選“顯示系統對象”:
三、輸入 XML
從[導航面板]打開 USysRibbons 表,插入一條新記錄,在功能區Name 中輸入“Main”,在功能區XML 字段中輸入第一講編寫的 XML 的內容:
這樣,就將 XML 保存到了 USysRibbons 表中。在一個應用程序中可以設計多個功能區,每個功能區對應一條記錄。它們可以應用在應用啟動時、關聯窗體和報表。
四.應用自定義的功能區
在 Access 2007 中文版中,其 ID 對應於 USysRibbons 表中的功能區Name,它在這個表中是唯一不可重復的。
一、設置為啟動應用程序時加載自定義的功能區
在 Access 的選項設置中,設置其工具欄選項的自定義功能區ID,即可在應用程序啟動時加載自定義的功能區。
點擊 Access 文件按鈕-[Access 選項]-[啟動],在右側的工具欄選項下的[自定義功能區ID]的下拉列表中選擇“Main”:
二、設置關聯窗體或報表的自定義功能區
每個窗體和報表均可以有自己的功能區。在窗體和報表的設計狀態,設置窗體或報表的“自定義功能區ID”,即可。
這個窗體運行時,就會打開屬於自己的功能區,如下圖。
關於 Access 自定義功能區的開發和使用已全部講完