onLoad时将参数传递给功能区

时间:2015-04-20 20:23:33

标签: xml ms-access ribbon

我想要两个版本的功能区。一个用于开发人员,一个用于普通用户。对于开发人员版本,自定义组将添加到现有功能区,可以通过

完成
<ribbon startFromScratch="false">

对于普通用户,自定义组现有功能区将不可用,可以通过

完成
<ribbon startFromScratch="true">

我可以通过USysRibbons表中的两个记录来实现它,并在表单OnLoad时加载传送记录。 我可以只将一个记录传递给XML并使用一些逻辑行来设置它吗?

类似的东西:

如果Developer = true则

<ribbon startFromScratch="false">

否则

<ribbon startFromScratch="true">

如果

结束

1 个答案:

答案 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