Я использую сценарий VBA, который использовал для подключения к базе данных Oracle через 32-разрядную версию Excel, но теперь использую 64-разрядную версию Excel.
код VBA:
Установите cn1 = Новое ADODB.Connection
Set rs1 = Новый ADODB.Recordset
cn1.ConnectionString = "Драйвер = {Microsoft ODBC для Oracle}; Сервер = BR1P1; Uid = BR1USER; Pwd = myPass"
cn1.Open
rs1.Open Query, cn1
Когда я выполняю «cn1.open», я получаю эту ошибку:
«Ошибка во время выполнения» - 214746 ... [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию "
Затем я попытался решить, добавив новый источник данных:
Администратор источника данных ODBC (64-разрядная версия)> DSN файла> нажмите Добавить ...> из списка, который я выбрал: Oracle em OraClient11g_home1 («Oracle em» означает «Oracle for», моя ОС на португальском языке)> Далее> перейдите к файл: «C: \ Windows \ System32 \ odbcad32.exe»> Далее> Готово
В этом случае система выдаст мне имя драйвера: «Oracle em OracleClient11g_home1»
После этого он запросит имя службы, имя пользователя и пароль. Я сообщаю Имя сервера в соответствии с моим TNSNAMES.ORA
Вернуться к VBA Я изменил код в соответствии с именем драйвера:
cn1.ConnectionString = "Driver = {Oracle em OracleClient11g_home1}"
Теперь, когда выполнить «cn1.Open» в VBA, я получаю это новое сообщение об ошибке:
«Ошибка времени выполнения» - 214746 ... [Oracle] [ODBC] ORA-12560: TNS: ошибка адаптера протокола "
Мой файл TNSNAMES.ORA выглядит так:
BR1P1 = (ОПИСАНИЕ = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = myhost.com) (PORT = 1575))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BR1P1)))
Ну, я просто застрял на этом. Пожалуйста, я ценю любую помощь в этом.
После того, как я сменил свой MS Office на 64-битную версию, это становится болью.