将 MS Access 数据库连接到 R
Connect MS Access database to R
我想使用 DBI 包将 MS Access 数据库连接到 R。
我试试这个:
library(DBI)
con <- dbConnect(odbc::odbc(), "BASE_MEPSA")
我有这个错误
Error: nanodbc/nanodbc.cpp:950: HY024: [Microsoft][Pilote ODBC Microsoft Access] « (Inconnu) »
但是使用 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?
"BASE_MEPSA" 是数据源名称 (DSN) 的名称吗?您可以在 ODBC 数据源管理器中创建它。如果是这样,我总是可以成功连接:
library(DBI)
cn <- dbConnect(odbc::odbc(), dsn="BASE_MEPSA")
此外,您需要确保您使用的是相同的体系结构。这意味着如果您的 Access 版本是 x32,则您应该使用 x32 版本的 R、Access 和 ODBC Data Source Admin。您必须在 R 的全局设置中更改此设置,因为默认设置为 x64。
也尝试使用您用于 RODBC 的文件路径。
cn <- dbConnect(odbc::odbc(), DBQ="C:/Users/IPS/Desktop/divers/dt/stateduc_R/BASE_MEPSA.mdb")
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
我想使用 DBI 包将 MS Access 数据库连接到 R。 我试试这个:
library(DBI)
con <- dbConnect(odbc::odbc(), "BASE_MEPSA")
我有这个错误
Error: nanodbc/nanodbc.cpp:950: HY024: [Microsoft][Pilote ODBC Microsoft Access] « (Inconnu) »
但是使用 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?
"BASE_MEPSA" 是数据源名称 (DSN) 的名称吗?您可以在 ODBC 数据源管理器中创建它。如果是这样,我总是可以成功连接:
library(DBI)
cn <- dbConnect(odbc::odbc(), dsn="BASE_MEPSA")
此外,您需要确保您使用的是相同的体系结构。这意味着如果您的 Access 版本是 x32,则您应该使用 x32 版本的 R、Access 和 ODBC Data Source Admin。您必须在 R 的全局设置中更改此设置,因为默认设置为 x64。
也尝试使用您用于 RODBC 的文件路径。
cn <- dbConnect(odbc::odbc(), DBQ="C:/Users/IPS/Desktop/divers/dt/stateduc_R/BASE_MEPSA.mdb")
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