Ошибка компилятора: определенные пользователем типы не определены

Я получаю ошибку времени компиляции "Определенные пользователем типы, не определенные" в этой строке:

Dim cn As ADODB.Connection

Что может быть неправильным?

код:

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

Ответы

Ответ 1

Я забыл добавить ссылку на "Microsoft ActiveX Data Objects 2.5 Library":

Инструменты > Ссылки > Установите флажок перед "Microsoft ActiveX Data Objects 2.5 Library"

Ответ 2

Вы можете использовать последнее связывание:

Dim cn As Object

проблема исчезнет. VBA автоматически сделает ссылку, когда выполняется оператор Set cn = CreateObject("ADODB.Connection").

Ответ 3

Я попробовал добавить Microsoft ActiveX Data Objects 2.5 и 2.8 библиотеку, но это не сработало. Но когда я попытался создать новый объект, как показано ниже, он работал.

Set cn = CreateObject("ADODB.Connection")