Попытка подключиться к серверу Oracle DB с использованием VBA - PullRequest
0 голосов
/ 13 марта 2020

Как видно из названия, я пытаюсь подключиться к oracle БД для скрипта vba.

Я использовал эту статью здесь о том, как это сделать: https://blogs.perficient.com/2015/12/17/connectcompare-databases-excel-macro/

У меня просто очень базовый c код для подключения, и я получаю сообщение об ошибке "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

Мой код:

Private Sub CommandButton1_Click()
    Dim dbConnection As ADODB.Connection
    Dim recordSet As ADODB.recordSet
    Set dbConnection = New ADODB.Connection
    Set recordSet = New ADODB.recordSet
    conString = "Driver = {Microsoft ODBC for Oracle};DBQ=####;Uid=<####>;Pwd=<####>;"
    dbConnection.Open (conString)

End Sub

One Я не уверен, что именно DBQ. Я установил в DBQ имя интересующей меня базы данных. Не уверен, правильно ли я устанавливаю этот параметр.

Спасибо, и вся помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 13 марта 2020

Первый вопрос: установили ли вы Oracle Client на своем компьютере?

В соответствии со строкой подключения вы используете драйвер Microsoft ODBC for Oracle. Строка подключения должна быть такой:

Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

Обратите внимание, строка подключения немного отличается от драйвера Oracle ODB C, см. Драйвер ODB C Microsoft против ODB C Драйвер Oracle

Второй вопрос: Ваш Excel 32-разрядный или 64-разрядный?

Клиент Oracle и драйвер ODB C должны иметь ту же архитектуру (т.е. 32-разрядную или 64-разрядную), что и ваш Excel. Древний Microsoft ODBC for Oracle драйвер существует только для 32-битных. Если ваш Excel является 64-битным, то вы должны использовать драйвер Oracle ODB C.

Еще одно примечание, стандартный клиент Oracle Instant не включает драйвер ODB C, у вас есть загрузить и установить «Пакет ODB C» из Oracle Мгновенные загрузки клиента

0 голосов
/ 13 марта 2020

Существует комментарий выше для использования этого формата, который я считаю правильным "DSN = {MyDataSource}; UID = {MyUserID}; PWD = {MyPassword}; SERVER = {MyOracleServer}"

Из Документация Microsoft и здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...