2016-02-26 61 views
0

任何人都可以發佈關於如何從Excel 2007創建對Microsoft DAO 3.6對象庫的引用的片段嗎?Excel VBA後期綁定Microsoft DAO 3.6對象庫

我收集我需要使用CreateObject方法,但是我無法找到任何關於正確參數來引用DAO 3.6的任何內容。

我需要延遲綁定,因爲我將無法使用該文件在每臺PC上手動設置引用。

非常感謝

+0

您是否嘗試通過vba添加引用?http://stackoverflow.com/questions/9879825/how-to-add-a-reference-programmatically –

回答

0

這是學習DAO最好的地方是微軟的開發者網絡。有很多documentation on the subject

VBA支持三種數據訪問技術。 DAO, ADO and RDO。這些微軟建議您使用ADO,三者中的較新者。

我一直在嘗試編寫一個後期綁定的Excel DAO示例,但我遇到了一些麻煩。我只能得到早期界定的方法。

Sub ExampleEarly() 
    Dim DB As DAO.database 
    Dim RS As DAO.Recordset 


    ' Connect to Excel spreadsheet and read from tab called VA. 
    Set DB = OpenDatabase("C:\Example\ExcelFile.xls", False, True, "Excel 8.0;HDR=Yes") 
    Set RS = DB.OpenRecordset("SELECT * FROM [VA$]") 

'Close the recordset 
    RS.Close  
    DB.Close 
    Set RS = Nothing  
    Set DB = Nothing 
End Sub 

ADO可以後期綁定,如下所示:

Dim cn As Object 
Dim rs AS Object 

Set cn = CreateObject("ADODB.Connection") 
Set rs= CreateObject("ADODB.Recordset") 
0

對於DAO後期綁定。如果您在代碼中使用ADO,則未完全測試兼容性,但它在我的項目中運行良好。

Dim db As Object 'late binding without reference, seems to work, but might cause trouble, not tested 
Dim tbl As Object 

Dim dbe As Object 
Set dbe = CreateObject("DAO.DBEngine.120") 'depends on win version! 


Set db = dbe.OpenDatabase(file) 
Set tbl = db.TableDefs("CAPEX")