【发布时间】: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 <- dbConnect(drv = odbc::odbc(), .connection_string = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=M:/path/to/mydatabase/my.database.accdb")