設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

12下一頁
返回列表 發(fā)新帖
查看: 7596|回復(fù): 16
打印 上一主題 下一主題

快速制作自己的功能區(qū)

[復(fù)制鏈接]

點擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2017-9-14 10:35:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

下載:
游客,如果您要查看本帖隱藏內(nèi)容請回復(fù)


早在以前,我寫過 在Access 2010中可以更簡單的創(chuàng)建、管理自定義功能區(qū),在那篇文章中介紹的是利用 Access 選項的功能自定義一個功能區(qū),這個功能區(qū)是全局的,不管打開那個數(shù)據(jù)庫這個功能區(qū)存在。
那么,怎么樣快速創(chuàng)建一個只屬于當(dāng)前數(shù)據(jù)庫的專有功能區(qū)呢?

其實,很簡單。在Access 2007以后版本的數(shù)據(jù)庫中,可以創(chuàng)建一名為 uSysRibbons 的表,在這個表中存儲功能區(qū)的定義就可以了,這個必須包含兩個字段:
  • RibbonName,文本類型,長度可以自定,一般 50 就可以了,這個字段表示功能區(qū)的名稱,它不能重復(fù),可以把它定義為主鍵。
  • RibbonXML,備注類型。這個字段用來存儲功能區(qū)的定義,即XML。


一條記錄一個功能區(qū)。

功能區(qū)的結(jié)構(gòu)如下:
  1. <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  2.     <ribbon>
  3.         <qat/>
  4.         <tabs>
  5.             <tab id="tabMy" label="我的">
  6.                 <group id="grpFunctions" label="功能" autoScale="true">
  7.                     <button id="btnWelcome" label="歡迎來到 Access 世界" imageMso="HappyFace" size="large" onAction="歡迎" />
  8.                     <button id="btnDesign" label="自定義功能區(qū)" imageMso="TableDesign" size="large" onAction="自定義功能區(qū)" />
  9.                 </group>
  10.                 <group id="grpDB" label="數(shù)據(jù)庫" imageMso="DatabaseCopyDatabaseFile" autoScale="true">
  11.                     <control idQ="FileCloseDatabase" size="large" />
  12.                 </group>
  13.             </tab>
  14.         </tabs>
  15.     </ribbon>
  16. </customUI>
復(fù)制代碼

從這段 XML 我們可以看出:
  • <customUI> 標(biāo)記表示自定義 UI (UI: User Interface 用戶界面),其 xmlns 指明空間和框架,這里指的是 Office 2010 支持的 UI 格式,如果是 Office 2007 的,則是:"http://schemas.microsoft.com/office/2006/01/customui"。
  • <ribbon> 標(biāo)記表示 UI 中的自定義功能區(qū)部分。
  • <qat> 標(biāo)記表示功能區(qū)中的快速訪問區(qū)。在這個 XML 中,無自定義。
  • <tabs> 標(biāo)記表示功能區(qū)自定義的所有選項卡。
  • <tab> 標(biāo)記表示所有選項卡中某個選項卡。
  • <group> 標(biāo)記表示選項卡中的某個分組,一個選項卡中可以包含多個分組。在分組中可以多個控件,如 button/checkBox/editBox/comboBox/toggleButton 等等,其中 button 用得最多。


問題是,我們一般都記不住這樣的格式,Access 又沒有一個設(shè)計模板,直接用記事本編寫這段 XML 極容易遺漏出錯。那么,有沒有好點的辦法來生成這段 XML 呢?



本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖2 訂閱訂閱

點擊這里給我發(fā)消息

2#
 樓主| 發(fā)表于 2017-9-14 10:42:08 | 只看該作者
其實辦法是有的,就是用 在Access 2010中可以更簡單的創(chuàng)建、管理自定義功能區(qū) 文章中提到的導(dǎo)出功能。
例如,我在數(shù)據(jù)庫中創(chuàng)建了四個對象:
  • 一個窗體,其命名為“歡迎”。
  • 一個數(shù)據(jù)表,命名為“uSysRibbons”,用于存儲自定義的功能區(qū),由于表名是以 uSys 開頭,表示用戶系統(tǒng)表,一般在導(dǎo)航空格中是隱藏的,不可見。
  • 一個打開“歡迎”窗體的宏,命名為“歡迎”。
  • 一個打開“uSysRibbons”表的宏,命名為“自定義功能區(qū)”。



接下來,我就實現(xiàn)實現(xiàn)自定義的功能區(qū)。

首先,點擊“文件”選項卡,再點擊“選項”,打開“Access選項”對話框,在對話框中選擇“自定義功能區(qū)”,然后在右側(cè)正角點擊“新建選項卡(W)”。


這時,可以在“主選項卡”列表中看到,新增了“新建選項卡(自定義)”和“新建組(自定義)”,然后將這兩項重命名。
  • 新建選項卡 -> 我的
  • 新建組 -> 功能
  • 采用同樣的辦法,還添加一個組,數(shù)據(jù)庫。

如圖:

然后,在左側(cè)“從下列位置選擇命令(C)”組合框中選擇“宏”,


再在其列表中,將“歡迎”和“自定義功能區(qū)”拖到右側(cè)的“功能(自定義)”之下,再在“從下列位置選擇命令(C)”組合框中選擇“常用命令”,將其列表中的“關(guān)閉數(shù)據(jù)庫”拖到右側(cè)的“數(shù)據(jù)庫(自定義)”之下,如圖:


這個時候,發(fā)現(xiàn)其命令前面的圖標(biāo),與我們需要顯示的圖標(biāo)和文本不符。一般可以通過“重命名(M)...”來更改其圖標(biāo)和顯示文本。
==》

最后,來完成導(dǎo)出操作。點擊右側(cè)的“導(dǎo)入/導(dǎo)出(P)”下拉列表,選擇“導(dǎo)出所有自定義設(shè)置”


輸入導(dǎo)出的文件名“c.exportedUI”。事實上,導(dǎo)出的這個文件是一個XML文本文件,可以用記事本將其打開,將其格式化一下,好看一點。其內(nèi)容如下:
  1. <mso:cmd app="Access" dt="0" />
  2. <mso:customUI xmlns:x1="http://schemas.microsoft.com/office/2009/07/customui/macro" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
  3.     <mso:ribbon>
  4.         <mso:qat/>
  5.         <mso:tabs>
  6.             <mso:tab id="mso_c1.C382220" label="我的??">
  7.                 <mso:group id="mso_c2.C382220" label="功能??" autoScale="true">
  8.                     <mso:button idQ="x1:歡迎_0_C49EBC5" label="歡迎來到 Access 世界" imageMso="HappyFace" onAction="歡迎" visible="true"/>
  9.                     <mso:button idQ="x1:自定義功能區(qū)_1_C49EBC5" label="自定義功能區(qū)" imageMso="TableDesign" onAction="自定義功能區(qū)" visible="true"/>
  10.                 </mso:group>
  11.                 <mso:group id="mso_c3.C4076D4" label="數(shù)據(jù)庫??" autoScale="true">
  12.                     <mso:control idQ="mso:FileCloseDatabase" visible="true"/>
  13.                 </mso:group>
  14.             </mso:tab>
  15.         </mso:tabs>
  16.     </mso:ribbon>
  17. </mso:customUI>
復(fù)制代碼

看看,是不是和我們前面的定義非常相似?所不同的就是多了許多“mso”。接下來的就是改造它,使之適合我們的需要。
步驟如下:
游客,如果您要查看本帖隱藏內(nèi)容請回復(fù)

再看看,是不是更貼近我們的需要?
  1. <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  2.     <ribbon>
  3.         <qat/>
  4.         <tabs>
  5.             <tab id="mso_c1.C382220" label="我的">
  6.                 <group id="mso_c2.C382220" label="功能" autoScale="true">
  7.                     <button idQ="歡迎_0_C49EBC5" label="歡迎來到 Access 世界" imageMso="HappyFace" onAction="歡迎" visible="true"/>
  8.                     <button idQ="自定義功能區(qū)_1_C49EBC5" label="自定義功能區(qū)" imageMso="TableDesign" onAction="自定義功能區(qū)" visible="true"/>
  9.                 </group>
  10.                 <group id="mso_c3.C4076D4" label="數(shù)據(jù)庫" autoScale="true">
  11.                     <control idQ="FileCloseDatabase" visible="true"/>
  12.                 </group>
  13.             </tab>
  14.         </tabs>
  15.     </ribbon>
  16. </customUI>
復(fù)制代碼

事實上,這段 XML 已經(jīng)能夠運行了。

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

點擊這里給我發(fā)消息

3#
 樓主| 發(fā)表于 2017-9-14 12:09:53 | 只看該作者
如果想將自定義的功能區(qū)放在 “開始” 選項卡的前面,只需要在第一個 tab 中輸入 “ insertBeforeQ="TabHomeAccess"”


啟用自定義功能區(qū)


是不是很爽?


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
4#
發(fā)表于 2017-9-14 12:23:35 | 只看該作者
zhuyiwen 發(fā)表于 2017-9-14 12:09
如果想將自定義的功能區(qū)放在 “開始” 選項卡的前面,只需要在第一個 tab 中輸入 “ insertBeforeQ="TabHom ...

謝謝分享
5#
發(fā)表于 2017-9-15 06:17:00 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

6#
發(fā)表于 2017-9-15 08:12:15 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

點擊這里給我發(fā)消息

7#
發(fā)表于 2017-9-20 11:02:52 | 只看該作者
yyy
回復(fù)

使用道具 舉報

8#
發(fā)表于 2018-1-7 23:18:26 | 只看該作者
OOOOOOOOOO
9#
發(fā)表于 2018-1-9 14:20:41 | 只看該作者
學(xué)習(xí)!
回復(fù)

使用道具 舉報

10#
發(fā)表于 2018-1-17 14:50:06 | 只看該作者
繼續(xù)學(xué)習(xí),謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 06:29 , Processed in 0.175925 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表