将 R 连接到 MS Access 64 位 Windows

Posted

技术标签:

【中文标题】将 R 连接到 MS Access 64 位 Windows【英文标题】:Connect R to MS Access 64bit Windows 【发布时间】:2017-07-21 14:09:23 【问题描述】:

我正在尝试将 R 与 Windows 7 64 位机器上的 MS Access 数据库连接。

library(RODBC)
con <- odbcConnectAccess2007("M:/path/to/mydatabase/my.database.accdb")
# [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specifiedODBC connection failed

我也尝试使用https://www.connectionstrings.com/access/ 指定的连接字符串包odbc,但同样无法连接

library(DBI)
con <- dbConnect(drv = odbc::odbc(), dsn = "Microsoft Access Driver", driver = "Microsoft Access Driver (*.mdb, *.accdb)", database = "M:/path/to/mydatabase/my.database.accdb")
# Error: nanodbc/nanodbc.cpp:950: IM002: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 

我做错了什么?

【问题讨论】:

您可以使用我的AceOdbcCheck 脚本来测试您的机器是否安装了有效的Access“ACE”ODBC。如果您没有安装它,您可以下载驱动程序here。请注意,您需要与您正在运行的 R 版本相匹配的“位”(64 位或 32 位)。也就是说,如果您运行的是 32 位 R,那么即使您运行的是 64 位 Windows,您也需要 32 位驱动程序。 感谢@Gord Thompson。这就是问题所在。发布为答案,我会接受。不错的作品。对于任何感兴趣的人,使用library(DBI) 进行连接的正确字符串是contest &lt;- dbConnect(drv = odbc::odbc(), .connection_string = "Driver=Microsoft Access Driver (*.mdb, *.accdb); Dbq=M:/path/to/mydatabase/my.database.accdb") 【参考方案1】:

您可以使用我的AceOdbcCheck 脚本来测试您的机器是否安装了有效的Access "ACE" ODBC。如果您没有安装它,您可以下载驱动程序here。

请注意,Access ODBC 驱动程序的“位数”(64 位或 32 位)必须与您正在运行的 R 版本相匹配。也就是说,如果您运行的是 32 位 R,那么即使您运行的是 64 位 Windows,您也需要 32 位驱动程序。

【讨论】:

以上是关于将 R 连接到 MS Access 64 位 Windows的主要内容,如果未能解决你的问题,请参考以下文章

r 将MS Access数据库连接到Windows中的R(RStudio)

将 32 位 VB.Net 连接到 64 位 Access .ACCDB

从经典 ASP 连接到 MS Access 数据库

在 Windows 10 上通过 ODBC 连接到 Access 数据库时出现 IIS 500 错误

RODBC 包的替代方案,用于从 R 连接到 MS Access

MS Access 的 ODBC 驱动程序似乎丢失(Windows 64 位)