Мне поручено модифицировать некоторый код VBA, чтобы переключиться с использования ODBC-соединения на использование соединения OLEDB, чтобы мы могли просто ввести имя пользователя и пароль в подпрограмму.Переключение с ODBC на OLEDB и получение «Object Required»
Я, конечно, не испытывал этого, но мне кажется, что мне удалось получить правильную строку соединения для нового соединения OLEDB.
Я протестировал строку подключения в автономной тестовой подпрограмме, и она отлично работала.
Я пытаюсь заменить предыдущие строки соединения ODBC в коде, но я начинаю «Ошибка выполнения„424“Требуется объект»
Вот к югу я в настоящее время пытается получить работать:
Sub getdata()
Dim tableName As String
Dim tableRecords As New ADODB.Recordset
Dim Cnxn2 As ADODB.Connection
tableName = "TABLE_NAME"
Set Cnxn2 = New ADODB.Connection
'Old Connection String Using ODBC
'Cnxn2.ConnectionString = "Data Source='DATASOURCE';" '& "Integrated Security = SSPI;"
'New Connection String Using OLEDB
Cnxn2.ConnectionString = "Provider=sqloledb;Data Source=SERVER\INSTANCE;User ID=USER;Password=PASSWORD;"
Cnxn2.ConnectionTimeout = 30
Cnxn2.Open
tableRecords.Open tableName, Cnxn2, adUseClient, adLockOptimistic, adCmdTable
With tableRecords
ReturnData.Range("A1").CopyFromRecordset tableRecords(10)
.Close
End With
Cnxn2.Close
Set Cnxn2 = Nothing
Set tableRecords = Nothing
End Sub
ошибка подсветки строки с указанием «ReturnData.Range (» A1") CopyFromRecordset tableRecords (1)
Почему я получаю объект, необходимый ошибки, когда я только изменил строку подключения. ?
Примечание: в коде в другом месте был очень похожий элемент, и я просто удалил «ReturnData.» Из ранее упомянутой строки и, похоже, начал работать. Если я это сделаю, я получаю следующее: Ошибка времени выполнения «430»: класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс
Любая помощь в том, почему переключение на OLEDB является нарушением этого подкласса.
Когда я изменить его таким образом я начинаю снова получаю ошибку автоматизации. Ошибка времени выполнения «430»: класс не поддерживает автоматизацию или не поддерживает ожидаемый интерфейс. – JaReg
вы используете его в excel? Является ли он стандартным модулем или модулем класса? – Sam
Также есть ли у вас какие-либо ссылки в VBA, которые отсутствуют или для определенного файла? – Sam