【发布时间】: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 并从那里进行复制/粘贴。我真的讨厌这种类型的解决方案,但正确的方法行不通。