2013-05-13 66 views
2

我有一個自定義功能區,它調用vba命令。如果是這樣,我得到錯誤信息訪問2010自定義功能區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 

OnButtonPress2被稱爲帶材的XML文件中一個按鈕作爲

onAction="OnButtonPress2

上述工作對於宏,所以它可能不是該功能區的xml

========版本2 我已經創建了與XML和模塊的新簡單的測試分貝如下圖所示:

每個的結果是:

宏1 - 工作正常(它有一個彈出消息)

CommandOnAction2 - MSGBOX 「有一個錯誤編譯此功能」

OnButtonPress2 - MSGBOX「Microsoft Access不能運行宏或回調函數‘OnButtonPress2’

就行了‘公共gobjRibn作爲IRibbonUI’,IRibbonUI不autocomplet Ë導致我相信這是一個需要添加

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 

回答

0

我能夠重新您的問題在Access 2010中,我得到了你的榜樣,通過改變FunctionSub工作是看起來是這樣的:

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

BTW,而尋找對這個問題我在另一個論壇here偶然發現了一個帖子信息。其中,Albert D. Kallal討論了使用onAction="=MyPublicFunctionName()"作爲回調的替代方案;也許你會發現在某些情況下很有用。

+0

Gord,謝謝你,我仍然有同樣的問題,我已經在==== VERSION 2下面添加了一個新的例子,並帶有結果。一個可能非常關鍵的問題是,在公開聲明中的IRibbonUI不會在'Public gobjRibn As'後自動完成 - 我可能有一個缺失的引用,但不知道它應該是什麼。 – user1737050 2013-05-14 18:47:00

+0

您需要引用MSO.DLL。例如,在具有32位Office 2010(= Office 14)的64位計算機上:C:\ Program Files(x86)\ Common Files \ Microsoft Shared \ OFFICE14 \ MSO.DLL – Dror 2016-03-11 17:06:49