2010-05-25 77 views
1

從Excel中,我需要打開Access數據庫並運行其中一個數據庫的宏。打開Access數據庫並從Excel運行其中的一個宏

我使用Excel和Access 2007年。這是我在Excel代碼:

Sub accessMacro() 

    Dim appAccess As New Access.Application 

    Set appAccess = Access.Application 

    appAccess.OpenCurrentDatabase "C:\blah.mdb" 

    appAccess.Visible = True 

    appAccess.DoCmd.RunMacro "RunQueries.RunQueries" 
    appAccess.CloseCurrentDatabase 

End Sub 

在Access數據庫中,有一個名爲在模塊名爲RunQueries RunQueries程序。每次我跑,我得到了以下錯誤:

Runtime error '2485': 

Microsoft Access Office can't find the object 'RunQueries.' 

我也曾嘗試:

appAccess.DoCmd.RunMacro "RunQueries" 

,我也得到了同樣的錯誤消息。任何想法如何做到這一點?順便說一句,我可以長談一下爲什麼我需要這樣做,但讓我只是說我已經反對它,我必須這樣做(這意味着,我必須使用Excel作爲一個打開幾個Access dbs並運行它們的宏的前端)。

+0

這個問題等待被關閉:-) – 2014-12-17 08:21:39

回答

4

這個語法怎麼樣?
appAccess.run "RunQueries.RunQueries"

順便說一句,我總是避免命名像過程一樣的模塊。這是在尋找麻煩。

+0

我想這一點,並沒有奏效。然後,我嘗試更改模塊的名稱,以使其與過程名稱不同,並且它仍然不起作用。錯誤是: 運行時錯誤:'2517' Microsoft Office Access找不到過程'RunQueries'。 – oob 2010-05-26 20:23:35

+0

那個錯誤味精是一個進步......我測試了我給你的語法。它應該替換你的例子中的... runmacro行。 您是否公開程序?你在模塊級沒有Option Private嗎? – 2010-05-26 21:04:56

+0

oh和 設置appAccess = Access.Application 是沒有必要的,除非您刪除上面一行中的「New」。 – 2010-05-26 21:06:50

3
Sub accessMacro() 

    Dim appAccess As Access.Application 

    Set appAccess = New Access.Application 

    appAccess.OpenCurrentDatabase "C:\blah.mdb" 

    appAccess.Visible = True 

    appAccess.DoCmd.RunMacro "Macro Name" '<-- As it appears in the Macro Group in the Access Interface. 
    appAccess.CloseCurrentDatabase 

End Sub 
1

如何:

appAccess.Modules.Application.Run "macro_name" 

宏名不需要模塊名稱爲我工作。

0

嘗試此,

子accessMacro()

昏暗appAccess

集appAccess =的CreateObject( 「Access.Application」)

appAccess.OpenCurrentDatabase「C:\ blah.mdb 「

appAccess.Visible = True

appAccess.DoCmd.RunMacro 「RunQueries.RunQueries」

appAccess.CloseCurrentDatabase

末次

+1

請爲清晰起見添加一個代碼塊,並簡要說明此代碼的功能。 – 2017-12-04 06:49:26

相關問題