RibbonX:自定义Office 2007功能区——访问UI定制层(二)
RibbonX:自定义Office 2007功能区
第二章 访问UI定制层学习笔记
———————————
二、Microsoft Access定制
与Word和Excel文件基于新的OpenXML文件标准不同,Microsoft Access仍然是二进制文件。而为定制在所有应用程序之间使用的基本的XML实际上是相同的,二进制文件结构表明Access Ribbon定制使用与Open XML文件(例如Excel或Word)完全不同的方法装载。
咋一看,通过表定制Access的UI似乎相当复杂,但当采用定制时Access实际上是相当灵活的。
在表中存储自定义UI信息来定制UI
当在Access中处理功能区定制时最合理的开始是在表中包含XML代码。
步骤1 使用表创建Access UI更改
(1)打开Access并创建一个新的数据库。
(2)在左侧的“表1”中单击右键,选择“设计视图”。
(3)当出现提示时,命名表名为USysRibbons。
(4)确保该表有下面三个字段:
ID(自动编号的字段,作为UI记录的索引值)
RibbonName(一个文本类型的字段)
RibbonXml(一个备注类型的字段)
(5)关闭该表,当出现提示时保存。
(技巧:以前缀“USys”命名表,例如本例中的USysRibbons,确保该表将在导航窗格中隐藏,除非在“导航选项”对话框中选中了“显示系统对象”。)
(6)打开USysRibbons表并在其中添加一条新记录。在RibbonName字段中输入一个有意义的名称(如本例中的MainRibbonUI),在RibbonXml字段中,粘贴下面的XML代码:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
<ribbon startFromScratch=”false”>
<tabs>
<tab id=”rxtabCustom”
label=”My Very Own Tab”
insertBeforeMso=”TabHomeAccess”>
<group idMso=”GroupRichText”>
</group>
<group idMso=”GroupRecords”>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
此时,表类似下图:

(7)保存该表,然后关闭并重新打开数据为文件。重新打开后,在“Access选项”中,选择“当前数据库”选项,在“功能区和工具栏选项”中,在“功能区名称”下拉列表中将找到一个选项选择自定义功能区UI,如本例中的MainRibbonUI,如下图所示。

(8)单击“确定”后,将出现必需关闭该文件才能使更改生效的提示,单击“是”。重新打开数据库文件后,自定义UI应该已装载,如下图。

可以看出,上述方式必须经过许多步骤且要关闭并重新打开文件几次后,才能显示最后定制的功能区。
如果需要测试许多不同的UI并在它们之间切换,一种更好的方式是使用VBA来执行。虽然要花费时间编写VBA代码,但一旦编写好代码后,就能够重复使用这些代码。(本书的后面将讨论这个问题)
Access UsysRibbons警告
主要是备注的字符数量限制。
Access UI定制的其他技术
(1)在表中存储XML(前面已看到过)
(2)从外部文件中读取XML
(3)在另一个Access数据库中存储XML
(4)链接到包含XML的Excel工作表
此外,如果遇到字符限制问题并确定要在USysRibbons表中存储XML代码,也可以使用VBA。

ApemanChen:
我已经脱离朋友们太久了,现在回来,希望你还能够认出我
徐家涛,英文名ApemanChen,男,山东人,03年起一直在北京,现在混迹互联网,筹备自己的创业项目
我的博客 http://www.fromhere.cn
16 04月 2008, 6:21 pm我发起的公益项目——爱心创意基金 http://www.idealove.org