使用 64 位 Windows 从 R 查询 MS Access 数据库

Query MS Access DB from R with 64-bit Windows

有人让我创建一个 Shiny UI 以允许他们从使用 MS Office 2010 创建的 Microsoft Access 数据库中读取和写入。

我正在按照 this 指南使用 RODBC 连接到 Access DB 并且 - 虽然我可以在 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")

我在 RODBC 中使用 odbcConnectAccess2007,并且在使用 64 位 windows 时连接到 Access 数据库没有任何问题。但是,您应该检查软件包手册 (link to pdf) 以确保您的计算机上安装了适当的驱动程序。一旦您拥有合适的驱动程序,您就可以开始了!