编译器错误:未定义用户定义的类型

Par*_*att 26 excel vba excel-vba

我在这一行得到了编译时错误"用户定义的类型未定义":

Dim cn As ADODB.Connection
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?

码:

Sub test()

    Dim cn As ADODB.Connection

    'Not the best way to get the name, just convenient for notes

    strFile = Workbooks(1).FullName
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
    Set cn = CreateObject("ADODB.Connection")
    'For this to work, you must create a DSN and use the name in place of

    'DSNName

    'strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " & "Select AnyField As NameOfMySQLField FROM [Sheet1$];"
     strSQL = "SELECT F1 FROM [Sheet1$];"
     cn.Execute strSQL
End Sub
Run Code Online (Sandbox Code Playgroud)

Par*_*att 50

我忘了添加对"Microsoft ActiveX Data Objects 2.5 Library"的引用:此引用是必需的early binding.

如何获得该参考:

工具>参考>选中"Microsoft ActiveX Data Objects 2.5 Library"前面的复选框

其他有效的库包括:

Microsoft ActiveX数据对象2.6库

Microsoft ActiveX数据对象2.7库

Microsoft ActiveX数据对象2.8库

Microsoft ActiveX数据对象6.1库


Jea*_*ett 13

您可以使用后期绑定:

Dim cn As Object
Run Code Online (Sandbox Code Playgroud)

会让问题消失.Set cn = CreateObject("ADODB.Connection")执行语句时,VBA将自动生成引用.


归档时间:

查看次数:

81317 次

最近记录:

7 年,2 月 前