当自定义 UI XML 文件用于在 Access 中添加多个自定义功能区选项卡时,只要关闭表单,选定的功能区选项卡就会变回第一个自定义选项卡。
我们以编程方式从 VBA 加载自定义功能区。我创建了一个重现问题的 accdb。该文件夹还包括一个包含功能区定义的 XML 文件。它必须与 .accdb 文件位于同一目录中。
这个问题很容易证明:
- 打开数据库 RibbonTest.accdb,
- 切换到 Tab2 并使用功能区上的按钮打开 Form2,然后
- 关闭 Form2。
请注意,Tab1 现在处于活动状态。
当然,在这个小例子 db 中,这个问题似乎很小。但是,我们有一个非常大的项目,其中包含许多自定义选项卡,每个选项卡都包含许多组和按钮。我们的用户确实感到非常沮丧,因为他们每次关闭表单时都会在功能区上丢失自己的位置。
我们研究了一种解决方法,我们以编程方式存储选定的选项卡并在我们认为需要时恢复它。然而,事实证明很难可靠地做到这一点。(没有像这样自动化功能区的 Office API,但这篇文章有所帮助。)
有没有其他人遇到过这个问题?您是否找到了防止选项卡自动更改的方法?
编辑:似乎这个问题是在 Office 2010 SP1中实施的修复程序中引入的。(对不起,没有链接:不要认为我可以有两个以上。) RTM 版本中不存在该问题。SP1 的修复列表包括:“当用户返回到该对象时,Access 不会激活或返回用户到先前打开的数据库对象的正确功能区选项卡。” 似乎他们已尝试修复 Form.RibbonName 属性(支持上下文功能区)的使用,但在此过程中破坏了默认功能区。