【问题标题】:Connect MS Access database to R将 MS Access 数据库连接到 R
【发布时间】:2018-01-30 15:32:04
【问题描述】:

我想用 DBI 包将 MS Access 数据库连接到 R。 我试试这个:

library(DBI) con <- dbConnect(odbc::odbc(), "BASE_MEPSA")

我有这个错误

错误: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?

【问题讨论】:

    标签: r ms-access odbc r-dbi nanodbc


    【解决方案1】:

    “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")
    

    【讨论】:

    • 这项工作最终完成:library(DBI) con
    【解决方案2】:
    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 2013-02-12
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多