gpt4 book ai didi

vba - Access 2010 自定义功能区

转载 作者:行者123 更新时间:2023-12-05 08:00:55 26 4
gpt4 key购买 nike

我有一个调用 vba 命令的自定义功能区。当它出现时,我收到错误消息

Microsoft Access cannot run the macro or callback function [FUNCTION OR SUB]

其中 [FUNCTION OR SUB] 是我调用的函数或子名称。

生成上述消息的代码示例是:

Public Function OnButtonPress2(ctl As IRibbonControl)

MsgBox "OnButtonPress2"

End Function

在功能区的 XML 文件中调用 OnButtonPress2 作为按钮

onAction="OnButtonPress2

以上适用于宏,因此它可能不是功能区的 xml

======== 版本 2我使用如下所示的 XML 和模块创建了一个新的简单测试数据库:

各自的结果是:

Macro1 - 工作正常(它有一个弹出消息)

CommandOnAction2 - msgbox“编译此函数时出错”

OnButtonPress2 - msgbox“Microsoft Access 无法运行宏或回调函数‘OnButtonPress2’

在“Public gobjRibn As IRibbonUI”这一行,IRibbonUI 没有自动完成让我相信需要添加一个引用

XML(功能区名称为 NewRibbon 并设置为在启动时打开)

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="tab1" label="Your Custom Tab">

<group id="group1" label="Your Custom Group">
<button id="SampleButton" label="Macro1" onAction="Macro1" />
<button id="SampleButton2" label="CommandOnAction2" onAction="=CommandOnAction2()" />
<button id="SampleButton3" label="OnButtonPress2" onAction="OnButtonPress2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

模块(名称为 modRibbon)

Option Compare Database

Public gobjRibn As IRibbonUI

Public Function CommandOnAction2(ByVal ctl As IRibbonControl)
MsgBox "Function CommandOnAction2"
End Function

Public Sub OnButtonPress2(ByVal ctl As IRibbonControl)
MsgBox " Sub OnButtonPress2"
End Sub

最佳答案

我能够在 Access 2010 中重现您的问题,并且通过将 Function 更改为如下所示的 Sub 让您的示例正常工作:

Public Sub OnButtonPress2(ByVal control_ As IRibbonControl)
MsgBox "OnButtonPress2"
End Sub

顺便说一句,在搜索有关此问题的信息时,我偶然发现了另一个论坛中的帖子 here .在其中,Albert D. Kallal 讨论了使用 onAction="=MyPublicFunctionName()" 作为回调的替代方法;也许您会发现这在某些情况下很有用。

关于vba - Access 2010 自定义功能区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16525297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com