有人让我创建一个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")
答案 0 :(得分:3)
我在odbcConnectAccess2007
中使用RODBC
,并且在使用64位窗口时不会在连接到Access数据库时遇到任何问题。但是,您应该查看软件包手册(link to pdf)以确保您的计算机上安装了相应的驱动程序。一旦你有了合适的司机,你就应该好好去吧!