连接 MS Access 数据库至 R

4
我想用DBI包将MS Access数据库连接到R中。 我尝试了以下代码:
library(DBI)
 con <- dbConnect(odbc::odbc(), "BASE_MEPSA")

我遇到了这个错误:

Error: nanodbc/nanodbc.cpp:950: HY024: [Microsoft][ODBC Microsoft Access Driver] "(Unknown)"

但使用RODBC时没有问题。

library(RODBC)
base1 <- odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/IPS/Desktop/divers/dt/stateduc_R/BASE_MEPSA.mdb")

我该如何使用DBI包将MS Access连接到R?

2个回答

3

"BASE_MEPSA"是数据源名称(DSN)的名称吗?您应该在ODBC数据源管理员中创建它。如果是这样,我总是可以成功连接:

library(DBI) 
cn <- dbConnect(odbc::odbc(), dsn="BASE_MEPSA")

此外,您需要确保使用相同的架构。这意味着,如果您的Access版本为x32,则应使用x32版本的R、Access和ODBC数据源管理器。您必须在R的全局设置中更改此设置,因为默认设置是x64。

同时,请尝试使用您用于RODBC的文件路径。

cn <- dbConnect(odbc::odbc(), DBQ="C:/Users/IPS/Desktop/divers/dt/stateduc_R/BASE_MEPSA.mdb")

1
这是最终的工作:库(DBI) con <- dbConnect(odbc::odbc(), .connection_string = "Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=C:/Users/IPS/Desktop/divers/dt/stateduc_R/BASE_MEPSA.mdb;") - Roland Samati

1
library(RODBC) 
mdbConnect<-odbcConnectAccess("D:/SampleDB1/sampleDB1.mdb")


# Load RODBC package
library(RODBC)

# Connect to Access db
# for 32-bit windows
channel <- odbcConnectAccess("C:/your_path/Database1.accdb")

# Get data
data <- sqlQuery(channel , paste ("select * from Table1"))



#load package
library("RODBC") 

# for 64-bit windows
#connect database.
db<-file.path("C:/Users/Excel/Desktop/Coding/Microsoft Access/Split_and_Transpose.accdb") 

#internal RODBC function
channel<-odbcConnectAccess2007(db) 

#read particular table from Access database file.
dataSetName<-sqlFetch(channel,"Table1") 

#do not forget this, otherwise you lock access database from editing.
close(channel) 

这是一个很好的资源。

https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接