2013-07-01 24 views
1

我寫了一些sql查詢,一些子程序並保存了一些導入。從宏設計中調用函數訪問

現在我試圖使用Access中的宏設計來提供一個運行按鈕,它將按順序運行這些對象。

但是我沒有看到任何運行sun程序的命令,我可以看到OpenVisualBasicModule和Runcode。

OpenVisualBaicModule只打開我的子程序,而運行代碼只是要求一個函數。

我創建了一個函數,其中包含所有的子過程調用。但是,這不工作,而個別所有的人工作。

任何建議該怎麼做。

+0

使用'RunCode'並讓Function過程調用子過程應該可以工作。放置一個MsgBox作爲函數的第一行來測試它是否運行。否則,請發佈函數的完整代碼以及您在宏的「函數名」參數中使用的文本。 –

回答

0

由於您已經在使用代碼,宏似乎沒有必要。在屬性頁按鈕,找到的OnClick行和輸入有:

=YourFunctionName() 

(這也必須是一個函數,而不是一個子過程,這是訪問的特殊性)

在您的功能中,您可以使用DoCmd來調用您當前宏中使用的任何宏操作。拋出一個MsgBox作爲函數的第一行來檢查它是否正在運行。

與宏相比,您可能不太熟悉代碼,但是您可以添加好的評論,逐步執行和調試代碼,使用明智的錯誤處理 - 遠比使用宏更容易宏。

3

確保您的VBA代碼放置在一個函數(不是一個SUB,這將無法正常工作)。 創建功能,如:

Function DoSomething() 
    'Do your stuff 
End Function 

或者,如果你想執行一個子,只需創建一個調用你的子,喜歡的功能:

Function DoSomething() 
    Call YourSub() 
End Function 

宏設計中,添加了「RunCode」動作(宏命令>運行代碼)並調用你的函數:

DoSomething() 

而瞧,你就完成了。