2015-09-11 43 views
1

我想從Excel VBA中引用一個開放的Access文件。我只是無法設置它。參考打開Access數據庫

Dim Ac As Access.Application 
Set Ac = ??? 

Ac.DoCmd.OpenForm "Blah" 

我該如何代替???來引用打開的數據庫?

+0

您可以使用'GetObject的()' - 看看成 –

+0

'昏暗的交流作爲Object' 'Set AC = GetObject(「 .accdb」,「Access.Application」)' 'AC.DoCmd.OpenForm「」'打開一個新的Access窗口,但它打開窗體...(一切大於/小於符號實際上並不是我在代碼中使用的。 – icebird76

回答

2

使用GetObject(pathname, class)Tim suggested

Set Ac = GetObject(, "Access.Application") ' no value for pathname argument 
Ac.DoCmd.OpenForm "Blah" 

如果你有一個以上的訪問會話打開,使用它你要引用的數據庫文件的完整路徑...

Set Ac = GetObject("C:\share\Access\Database2.accdb") ' give it pathname 

你可以使用後期綁定,而不是Dim Ac As Access.Application並避免需要設置對Access類型庫的引用。隨着後期綁定,你可以聲明這樣的變量,GetObject仍將合作......

Dim Ac As Object 
+0

This Works!Thanks that so much!我嘗試使用路徑名,但是打開了另一個Access窗口,這不是我想要的。工作! – icebird76

+0

我看到你對@Tim和inves的回覆更進一步。 'GetObject(「C:\ share \ Access \ Database2.accdb」,「Access.Application」)給了我一個新的Access會話。但給'GetObject'只有這兩個參數中的一個沒有創建一個新的會話。 – HansUp

+0

當我沒有第二個參數並且只有文件路徑時,它給出了關於它不是有效數據庫或其他東西的錯誤,但是我沒有在文件路徑中結尾的.accdb,因此可能有些事情要做用它。 – icebird76

相關問題