使用64位Windows查询来自R的MS Access DB

时间:2016-03-22 17:03:44

标签: r ms-access-2010 rodbc

有人让我创建一个Shiny UI,允许他们从使用MS Office 2010创建的Microsoft Access数据库进行读写。

我正在关注this指南以使用RODBC连接到Access数据库并且 - 虽然我可以在Access中打开此数据库 - 但我从R中收到以下错误:

> channel <- odbcConnectAccess("AD_Users.accdb")
Error in odbcConnectAccess("AD_Users.accdb") : `
  odbcConnectAccess is only usable with 32-bit Windows

所以,我找到了this解决方案并尝试了一下:

> channel <- odbcDriverConnect("AD_Users.accdb")
Warning messages:
1: In odbcDriverConnect("AD_Users.accdb") :
  [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In odbcDriverConnect("AD_Users.accdb") :
  [RODBC] ERROR: state 01S00, code 0, message [Microsoft][ODBC Driver Manager] Invalid connection string attribute
3: In odbcDriverConnect("AD_Users.accdb") : ODBC connection failed
> channel <- odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=AD_Users.accdb")
Warning messages:
1: In odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=AD_Users.accdb") :
  [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=AD_Users.accdb") :
  ODBC connection failed
> 

但正如你所看到的,有一些非常严重的警告。它似乎不起作用。

还有其他解决办法吗?

当我收到这些警告时,我正在使用32位R,即使它们是警告而不是技术错误,数据库连接也不成功。

更新

这似乎建立了一个成功的连接,虽然我无法从中查询数据:

channel <- odbcConnectDbase("AD_Users.accdb")

1 个答案:

答案 0 :(得分:3)

我在odbcConnectAccess2007中使用RODBC,并且在使用64位窗口时不会在连接到Access数据库时遇到任何问题。但是,您应该查看软件包手册(link to pdf)以确保您的计算机上安装了相应的驱动程序。一旦你有了合适的司机,你就应该好好去吧!