Ответ 1
Я забыл добавить ссылку на "Microsoft ActiveX Data Objects 2.5 Library":
Инструменты > Ссылки > Установите флажок перед "Microsoft ActiveX Data Objects 2.5 Library"
Я получаю ошибку времени компиляции "Определенные пользователем типы, не определенные" в этой строке:
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
Я забыл добавить ссылку на "Microsoft ActiveX Data Objects 2.5 Library":
Инструменты > Ссылки > Установите флажок перед "Microsoft ActiveX Data Objects 2.5 Library"
Вы можете использовать последнее связывание:
Dim cn As Object
проблема исчезнет. VBA автоматически сделает ссылку, когда выполняется оператор Set cn = CreateObject("ADODB.Connection")
.
Я попробовал добавить Microsoft ActiveX Data Objects 2.5 и 2.8 библиотеку, но это не сработало. Но когда я попытался создать новый объект, как показано ниже, он работал.
Set cn = CreateObject("ADODB.Connection")