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>
此时,表类似下图:
CustomAccess1
(7)保存该表,然后关闭并重新打开数据为文件。重新打开后,在“Access选项”中,选择“当前数据库”选项,在“功能区和工具栏选项”中,在“功能区名称”下拉列表中将找到一个选项选择自定义功能区UI,如本例中的MainRibbonUI,如下图所示。
CustomAccess2
(8)单击“确定”后,将出现必需关闭该文件才能使更改生效的提示,单击“是”。重新打开数据库文件后,自定义UI应该已装载,如下图。
CustomAccess3
可以看出,上述方式必须经过许多步骤且要关闭并重新打开文件几次后,才能显示最后定制的功能区。
如果需要测试许多不同的UI并在它们之间切换,一种更好的方式是使用VBA来执行。虽然要花费时间编写VBA代码,但一旦编写好代码后,就能够重复使用这些代码。(本书的后面将讨论这个问题)
Access UsysRibbons警告
主要是备注的字符数量限制。
Access UI定制的其他技术
(1)在表中存储XML(前面已看到过)
(2)从外部文件中读取XML
(3)在另一个Access数据库中存储XML
(4)链接到包含XML的Excel工作表
此外,如果遇到字符限制问题并确定要在USysRibbons表中存储XML代码,也可以使用VBA。


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

1条评论

  1. ApemanChen:

    我已经脱离朋友们太久了,现在回来,希望你还能够认出我 :D

    徐家涛,英文名ApemanChen,男,山东人,03年起一直在北京,现在混迹互联网,筹备自己的创业项目

    我的博客 http://www.fromhere.cn
    我发起的公益项目——爱心创意基金 http://www.idealove.org

发表评论