Драйверы ODBC не найдены

Я хотел бы открыть базу данных Access 2007 года в R. Для этого я использую следующий код:

RIFSdatabase <- odbcConnectAccess2007(paste(db.dir, DB.filename, sep='/'))

При запуске в 32-битном R (R console или R studio) возвращается следующая ошибка:

Предупреждающие сообщения: 1: В odbcDriverConnect (con, ...): [RODBC] ОШИБКА: состояние IM002, код 0, сообщение [Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено и не указан драйвер по умолчанию

2: В odbcDriverConnect (con, ...): сбой подключения ODBC

При запуске в 64-битном R (консоль R или Rstudio) возвращается следующая ошибка:

Предупреждающие сообщения: 1: В odbcDriverConnect (con, ...): [RODBC] ОШИБКА: состояние IM003, код 160, сообщение Указанный драйвер не может быть загружен из-за системной ошибки 126: указанный модуль не может быть найден. (Драйвер Microsoft Access (* .mdb, * .accdb), C: \ Program Files \ Common Files \ Microsoft Shared \ OFFICE16 \ ACEODBC.DLL). 2: В odbcDriverConnect (con, ...): сбой подключения ODBC

Драйверы базы данных MS Access (* .mdb, * accdb) указаны как User DSN, но ... если я нажму кнопку "Настроить", я получаю сообщение об ошибке:

«Не удалось загрузить процедуры установки драйвера ODBC для драйвера Microsoft Access (* mdb, * accdb), код системной ошибки 126: указанный модуль не найден. (C: \ Program Files \ Common Files \ Microsoft Shared \ OFFICE16 \ ACEODBC.DLL)

Как исправить эту ошибку подключения?

Я не использовал свои ODBC драйверы на этом компьютере ни для чего другого - возможно, из-за этих ошибок они не установлены (несмотря на то, что они указаны как User DSN)?

Меня не волнует, запускаю ли я R в 32 или 64 битах.


person Alicia Ritzenthaler    schedule 04.01.2017    source источник
comment
Вы ремонтировали офис? Возможно, в вашей установке есть некоторые проблемы, которые необходимо исправить. Кроме того, если у вас установлен 32-битный офис, вам необходимо запустить 32-битный R, чтобы использовать драйверы ODBC. Если интересно, здесь есть работа: stackoverflow.com/a/39962110/3242130   -  person manotheshark    schedule 04.01.2017
comment
С помощью RODBC запустите команду odbcDataSources(), чтобы увидеть все доступные источники ODBC. Также попробуйте универсальный метод подключения, а не метод 2007 года: odbcDriverConnect('Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Path\\To\\Database\\File.accdb')   -  person Parfait    schedule 04.01.2017
comment
@Parfait - Когда я запускаю команду obdcDataSources (), я вижу в списке драйвер Microsoft Access для базы данных MS Access (.mdb, * .accdb). Используя команду odbcDriverConnect ('Driver = {Microsoft Access Driver ( .mdb, .accdb)}; DBQ = x: /PATHWAY.accdb'), я получаю сообщение об ошибке OdbcDriverConnect (Driver = {Microsoft Access Драйвер ( .mdb, * .accdb)}; DBQ = x: /surface/UOP/01_Data/BCSA_PRP_Group/BCSA_Database_GUI/BCSA_ExternalAccess.accdb): [RODBC] ОШИБКА: состояние IM002, код 0, сообщение [Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено, и драйвер по умолчанию не указан   -  person Alicia Ritzenthaler    schedule 04.01.2017
comment
Проверьте, действительно ли ваш звонок похож на ваш пост с отсутствующей звездочкой перед .mdb? Следует читать odbcDriverConnect('Driver={Microsoft Access Driver (*.mdb, *.accdb)};..   -  person Parfait    schedule 04.01.2017
comment
* присутствует при запуске в R (просто перезапустите, чтобы подтвердить ... та же ошибка)   -  person Alicia Ritzenthaler    schedule 05.01.2017
comment
Попробуйте загрузить механизм доступа с набором компонентов для Обмен данными.   -  person Parfait    schedule 05.01.2017
comment
Привет, @Parfait, последний комментарий отлично работает для меня. У меня была точно такая же проблема, и после загрузки движка Access код R работал отлично. Алисия - вы попробовали это предложение - оно сработало для вас?   -  person Alan Chalk    schedule 11.07.2017


Ответы (1)


Выполнение поиска в Google с вашим кодом ошибки показало следующий ответ на сообщение с той же ошибкой в ​​Microsoft:

Вам нужно пойти в

C: \ Windows \ SysWOW64 \ obdcad32.exe

это загрузит 32-битный менеджер odbc, который необходим для создания DSN с 32-битными драйверами.

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_access-mso_other/microsoft-access-driver-mdb-accdb-system-error/def76bd8-ffc6-44ec-a3e4-47a839b1314e

person manotheshark    schedule 04.01.2017