有人可以发布一个代码片段,介绍如何从Excel 2007创建对Microsoft DAO 3.6对象库的引用吗?
我收集我需要使用CreateObject方法,但我无法在网上找到任何关于正确引用DAO 3.6的正确参数。
我需要延迟绑定,因为我无法使用该文件在每台PC上手动设置引用。
非常感谢
答案 0 :(得分:0)
了解DAO的最佳位置是微软的开发者网络。有很多documentation on the subject。
VBA支持三种数据访问技术。 DAO, ADO and RDO。在这些Microsoft中,建议您使用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")
答案 1 :(得分: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")