Excel VBA后期绑定Microsoft DAO 3.6对象库

时间:2016-02-26 09:18:42

标签: excel vba dao late-binding

有人可以发布一个代码片段,介绍如何从Excel 2007创建对Microsoft DAO 3.6对象库的引用吗?

我收集我需要使用CreateObject方法,但我无法在网上找到任何关于正确引用DAO 3.6的正确参数。

我需要延迟绑定,因为我无法使用该文件在每台PC上手动设置引用。

非常感谢

2 个答案:

答案 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")