Клиент Oracle и сетевые компоненты не найдены - Excel VBA

Я пытаюсь подключиться к базе данных Oracle через Excel. Я установил Instant Client от Oracle на свой компьютер, но получаю это сообщение, когда запускаю этот код:

Sub testing()


    Dim myConn As Connection: Set myConn = New Connection
    Dim mySet As Recordset: Set mySet = New Recordset
    Dim CONNSTRING As String
    CONNSTRING = "Driver={Microsoft ODBC for Oracle}; " & _
                "CONNECTSTRING=(DESCRIPTION=" & _
                "(ADDRESS=(PROTOCOL=TCP)" & _
                "(HOST=xxxxxx.xxx.xxxxxxxxxxx.com)(PORT=1524))" & _
                "(CONNECT_DATA=(SERVICE_NAME=dev))); uid=xxxxxxx; pwd=xxxxxxxxxxx;"

    myConn.Open CONNSTRING
    mySet.Open "SELECT * FROM apps.ap_invoice_lines_interface", myConn, adOpenStatic, adLockBatchOptimistic, adCmdTable

    Sheet1.Range("A1").CopyFromRecordset mySet

    mySet.Close
    myConn.Close

End Sub

Я получаю сообщение

Клиентские и сетевые компоненты Oracle (tm) не найдены. Эти компоненты поставляются корпорацией Oracle и являются частью установки клиентского программного обеспечения Oracle версии 7.3 (или выше). Вы не сможете использовать этот драйвер, пока эти компоненты не будут установлены.


person jDave1984    schedule 29.09.2016    source источник
comment
Глупый вопрос, а вы перезагружали компьютер после установки необходимого клиента Oracle? Спрашиваю, потому что у меня была эта проблема, и вот как я ее решил. Однако после решения проблемы у вас, вероятно, возникнет проблема с conn после SELECT. Там должно быть myConn   -  person Victor Moraes    schedule 29.09.2016
comment
Я еще не перезагружался, и большое спасибо за эту ловушку! Поменяю на myConn   -  person jDave1984    schedule 29.09.2016
comment
В таком случае это был правильный вопрос, хе-хе. Сообщите нам результат   -  person Victor Moraes    schedule 29.09.2016
comment
Я только что перезагрузился, и у меня все еще то же сообщение   -  person jDave1984    schedule 29.09.2016
comment
Ваш Excel 32-битный или 64-битный? Ваш установленный клиент Oracle 32-разрядный или 64-разрядный? Они должны совпадать, и именно по этой причине я видел эту ошибку.   -  person EdStevens    schedule 29.09.2016
comment
У меня 32-битный Excel, но я, по общему признанию, установил 64-битную, потому что у меня 64-битная ОС. Я также получу 32-битную версию и дам вам знать   -  person jDave1984    schedule 29.09.2016
comment
УСПЕХ. Эд и Виктор - боги среди людей   -  person jDave1984    schedule 29.09.2016
comment
@EdStevens - Я действительно рекомендую вам опубликовать это как официальный ответ. Я думаю, что это очень распространенная проблема, поскольку большинство экземпляров Office 32-разрядные. У нас часто возникает такая же проблема с настройкой ODBC. Это потенциально могло бы помочь многим будущим скрытням, если бы было более очевидным, что это решение.   -  person Hambone    schedule 30.09.2016


Ответы (2)


Я часто вижу эту ошибку, когда наша группа поддержки настольных компьютеров устанавливает неправильный клиент Oracle. Если ваше приложение (в данном случае Excel) 32-битное, вам также необходимо использовать 32-битный ODBC и 32-битный клиент Oracle. Не имеет значения, что у вас 64-битная ОС или оборудование. Важно приложение. И кажется, что большинство установок MS Office 32-битные, даже если они установлены в 64-битной Windows.

person EdStevens    schedule 30.09.2016
comment
В очередной раз благодарим за помощь! - person jDave1984; 30.09.2016
comment
Отличный ответ. У меня установлены как 32-битные, так и 64-битные клиенты Oracle, но я все равно получаю эту ошибку. Следует ли удалить 64-разрядную версию? - person Satej Koli; 25.01.2020

В моем случае проект консоли в Visual Studio отмечен флажком Prefer 32 bit в его свойствах.

Нажмите Alt + Enter и откройте раздел Build.

Я снял галочку, и приложение заработало отлично.

Кстати: я установил 64-битный клиент Oracle.

введите описание изображения здесь

person Leniel Maccaferri    schedule 05.09.2018