使用64位Windows从R查询MS Access DB

Hac*_*k-R 1 r ms-access-2010 rodbc

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

我正在按照指南使用和连接至Access DB,RODBC尽管我可以在Access本身中打开此数据库,但我从R中收到以下错误:

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

因此,我找到了解决方案并尝试一下:

> 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
> 
Run Code Online (Sandbox Code Playgroud)

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

还有其他解决方法吗?

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

更新资料

这似乎建立了成功的连接,尽管到目前为止我一直无法从中查询数据:

channel <- odbcConnectDbase("AD_Users.accdb")
Run Code Online (Sandbox Code Playgroud)

mfi*_*ino 5

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