【问题标题】:Connect MS Access to R via ODBC Driver通过 ODBC 驱动程序将 MS Access 连接到 R
【发布时间】:2019-05-08 17:23:37
【问题描述】:

我无法成功将 MS Access 连接到 R。在读取堆栈溢出时的其他线程时,我遵循了使用 32 位 Access、将 Rstudio 更改为 32 位并使用 microsoft Access odbc 驱动程序的建议。我不知道该怎么做...

我使用了以下说明:

  • 从 Windows 开始菜单打开 ODBC 数据源(32 位)
  • 在 System DSN 选项卡下,添加驱动程序 Microsoft Access Driver (*.mdb, *.accdb),将驱动程序命名为 MS Access Driver,点击“确定”
  • 在 Rstudio 中,在工具下,选择全局选项,将 R 版本更改为:[Default] [32-bit] C:\Program Files\R\R-3.5.1
  • 在 Rstudio 中,编写以下脚本:

库(RODBC)

Data <- odbcDriverConnect("Driver={MS Access Driver}; DBQ=C:/Users/Owner/Desktop/Database1.accdb"

我收到的警告信息如下:

警告信息: 1:在 odbcDriverConnect("Driver={MS Access Driver};DBQ=C:/Users/Owner/Desktop/Database1.accdb") 中: [RODBC] 错误:状态 IM002,代码 0,消息 [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序

2:在 odbcDriverConnect("Driver={MS Access Driver2};DBQ=C:/Users/Owner/Desktop/Database1.accdb") 中: ODBC 连接失败

请,任何帮助将不胜感激。我无法仅从其他 R 到 Access 连接线程中收集到足够的信息。

【问题讨论】:

  • 您确定驱动程序名称与预期名称之一匹配吗?如果你运行odbc::odbcListDrivers(),你会看到类似"Microsoft Access Driver (*.mdb, *.accdb)" 的东西吗?我认为这应该在连接字符串的Driver={...} 部分中使用,顺便说一句。
  • 边咆哮:这真的让我很生气,我无法在 Windows 上安装 64 位 MSAccess odbc 驱动程序,而不会完全杀死 MSOffice 的 32 位安装。他们使它成为不可能(或至少不可能)的事实令人沮丧。 (当然,他们的整个 ODBC 堆栈也存在自我注入的数据严重漏洞,自 10 年前首次报告以来一直没有得到修复。)
  • 哇!我欣喜若狂,也为事情这么简单而感到尴尬。非常感谢您的帮助!
  • 这实际上是我第一次使用 Access。我主要使用 SQL Server 和 MySQL。然而,这看起来确实很奇怪,而且非常令人沮丧。
  • 相信我,如果这是您通过 ODBC 使用 MSAccess 进行数据传输时遇到的最困难的问题,那么您算幸运。有一次,我可以选择坚持使用它并尝试在 Access 或 B 计划中工作。我选择了 B 计划,其中包括将表格导出到 Excel 并从那里进行复制/粘贴。我真的讨厌这种类型的解决方案,但正确的方法行不通。

标签: r ms-access odbc 32-bit


【解决方案1】:

我就是这样做的。

library(RODBC)

# for 32 bit windows
# Connect to Access db
channel <- odbcConnectAccess("C:/path_to_db/Northwind.mdb")

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多