任何人都可以發佈關於如何從Excel 2007創建對Microsoft DAO 3.6對象庫的引用的片段嗎?Excel VBA後期綁定Microsoft DAO 3.6對象庫
我收集我需要使用CreateObject方法,但是我無法找到任何關於正確參數來引用DAO 3.6的任何內容。
我需要延遲綁定,因爲我將無法使用該文件在每臺PC上手動設置引用。
非常感謝
任何人都可以發佈關於如何從Excel 2007創建對Microsoft DAO 3.6對象庫的引用的片段嗎?Excel VBA後期綁定Microsoft DAO 3.6對象庫
我收集我需要使用CreateObject方法,但是我無法找到任何關於正確參數來引用DAO 3.6的任何內容。
我需要延遲綁定,因爲我將無法使用該文件在每臺PC上手動設置引用。
非常感謝
這是學習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")
對於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")
您是否嘗試通過vba添加引用?http://stackoverflow.com/questions/9879825/how-to-add-a-reference-programmatically –