我想要两个版本的功能区。一个用于开发人员,一个用于普通用户。对于开发人员版本,自定义组将添加到现有功能区,可以通过
完成<ribbon startFromScratch="false">
对于普通用户,自定义组现有功能区将不可用,可以通过
完成<ribbon startFromScratch="true">
我可以通过USysRibbons表中的两个记录来实现它,并在表单OnLoad时加载传送记录。 我可以只将一个记录传递给XML并使用一些逻辑行来设置它吗?
类似的东西:
如果Developer = true则
<ribbon startFromScratch="false">
否则
<ribbon startFromScratch="true">
如果
结束答案 0 :(得分:1)
我不认为你可以通过使用USysRibbons表的内置逻辑来实现这一点。 您可以使用另一个表(或只是重命名)来存储Ribbon XML,而不是使用USysRibbons。然后编写一个VBA过程,从您自己的表中加载XML,并调用Application.LoadCustomUI方法将XML用作功能区。在该过程中,您可以以任何您喜欢的方式处理和修改功能区XML。 必须由AutoExec宏调用该过程才能在启动时将功能区放置到位。
在你的情况下,你可以使用类似这样的代码:
yourRibbonXML = ... ' ( load xml from your table into yourRibbonXML )
If Developer = True then
yourRibbonXML = Replace(yourRibbonXML, "startFromScratch=""true""", "startFromScratch=""false""")
End if
Application.LoadCustomUI "yourRibbonName", yourRibbonXML
有关详细说明,请参阅此链接: http://www.accessribbon.de/en/?Access_-_Ribbons:Load_Ribbons_Into_The_Database:..._Using_Any_User_Table