特定于数据库的自定义功能区未加载

时间:2014-09-03 10:04:31

标签: ms-access-2010 ribbon

我一直在尝试使用指南here为数据库创建自定义功能区。

我有我的功能区的XML(这里为了方便阅读而格式化),其中包含自定义标签MyDatabase

<mso:cmd app="Access" dt="0" />
<mso:customUI xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
    <mso:ribbon>
        <mso:qat/>
        <mso:tabs>
            <mso:tab id="mso_c5.55CD83" label="MyDatabase">
                <mso:group id="mso_c6.55CD83" label="Sort &amp;&amp; Filter" imageMso="FilterByResource">
                    <mso:control idQ="mso:FiltersMenu" visible="true"/>
                    <mso:control idQ="mso:SortUp" size="small" visible="true"/>
                    <mso:control idQ="mso:SortDown" size="small" visible="true"/>
                    <mso:control idQ="mso:SortRemoveAllSorts" visible="true"/>
                    <mso:control idQ="mso:SortSelectionMenu" visible="true"/>
                    <mso:control idQ="mso:FilterToggleFilter" visible="true"/>
                </mso:group>
                <mso:group id="mso_c7.570112" label="Find" autoScale="true">
                    <mso:control idQ="mso:FindDialog" visible="true"/>
                    <mso:control idQ="mso:GoToMenuAccess" visible="true"/>
                </mso:group>
                <mso:group id="mso_c8.57A030" label="Clipboard" autoScale="true">
                    <mso:control idQ="mso:Copy" visible="true"/>
                </mso:group>
            </mso:tab>
        </mso:tabs>
    </mso:ribbon>
</mso:customUI>

并按照描述创建了USysRibbons表,并将功能区添加到其中。我已经开始设置功能区以显示此数据库(File - &gt; Options - &gt; Current Database - &gt; Ribbon and Toolbar Options - &gt; { {1}})。

但是,在重新启动数据库时,我的自定义功能区不会显示(尽管仍在Ribbon Name: MyDatabase标签中选中)。而是加载标准功能区(不带我的选项卡)。知道为什么吗?

  

注意:这需要是特定于此数据库的功能区,它将出现在任何加载它的计算机上。不是仅在此Access实例上显示在所有数据库上的功能区(这是Current Database按钮提供的功能)

1 个答案:

答案 0 :(得分:7)

解决了 - 这里需要注意几点:

  1. 启用UI错误 - 这将告诉您无法加载功能区的原因。转到File - &gt; Options - &gt; Client Settings - &gt; General - &gt; Show add-in user interface errors,有助于调试。否则它会完全无声地失败。

  2. 我在问题中发布的XML是导出自定义功能区时 Access自身生成的XML。不幸的是,这个USysRibbons方法似乎不喜欢它自己的XML风格(哦, Microsoft )。相反,它必须按照here所述的格式规定 - 基本上删除<mso:cmd app="Access" dt="0" />,删除所有mso:代码前缀,并将属性idQ="mso:xxxx"更改为idMso="xxxx"。这是最终适合我的XML:

    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
        <ribbon startFromScratch="true"> 
            <tabs> 
                <tab id="MyDatabase" label="My Database"> 
                    <group id="SortFilter" label="Sort &amp;&amp; Filter"> 
                        <control idMso="FiltersMenu" visible="true"/> 
                        <control idMso="SortUp" visible="true"/> 
                        <control idMso="SortDown" visible="true"/> 
                        <control idMso="SortRemoveAllSorts" visible="true"/> 
                        <control idMso="SortSelectionMenu" visible="true"/> 
                        <control idMso="FilterToggleFilter" visible="true"/> 
                    </group > 
                </tab> 
            </tabs> 
        </ribbon> 
    </customUI>
    
  3. 修改

    数字1(见上文)的设置在德语版本中如下所示:

    Setting to turn on the display of UI errors