RODBC 和访问 - 加载数据

Posted

技术标签:

【中文标题】RODBC 和访问 - 加载数据【英文标题】:RODBC and Access - Loading data 【发布时间】:2011-03-28 02:08:47 【问题描述】:

我正在尝试将一些数据从 Access 数据库加载到 R 中。我能找到的所有说明都说使用 odbcConnectAccess("file.mdb") 但我似乎无法加载此功能。是否已被替换或重命名?还有另一种方法可以做到这一点吗?我已经用 library("RODBC") 加载了 RODBC,但仍然没有运气。

谢谢!

【问题讨论】:

你在哪个平台上?我认为 RODBC 需要某种类型的驱动程序来连接 Access 数据库。这些可能在 Windows 之外可用,也可能不可用。 【参考方案1】:

这是我的会话的样子。你的看起来像吗?

library(RODBC)
setwd("C:/Users/Farrel/Documents/Working")
channel<-odbcConnectAccess("RRPre.mdb")
uniquehuman<-sqlFetch(channel, "AgeGenderofUniqueHumans")

它在我的系统上完美运行。 Window 7,2007年左右的Microsoft Access。不知道你对Access数据库的熟练程度。我用了几年,发现只要我是唯一的用户,它就可以正常工作。当我尝试复制数据库或共享数据库或让同事向其中添加数据时,它变得不可行。我已尽我所能不再使用它。如果您有一个持续的使用场景,那么我想您必须让 odbcConnectAccess 工作。但是,如果它是一次性的,那么只需从 Access 导出为更传统的数据格式,例如 csv 表。

【讨论】:

@Farrell 感谢您的回复。这里有一个更大的问题是我使用的是 Mac 并且没有通过 ODBC 连接器。【参考方案2】:

如果您在 Mac 上使用,我发现使用 Actual Technologies 驱动程序连接到 Access 数据库是成功的。如果您已经设置了 ODBC 连接,使用 Windows 上的 ODBC 源管理器或 Mac 上的 ODBC 管理器,剩下的就相当简单了。

library(RODBC)
# Open up channel to database supplying name of ODBC connection and user name

data.ch<-odbcConnect("ODBC_Connection_name",uid="user_name") 

还有一个选项可以在 odbcConnect 中提供密码,但我已经设置了包含密码的连接。

sqlTables(data.ch) # Query the connection for all tables

# Fetch all data from a table called "Table_name" or use standard SQL statements
 df<-sqlFetch(data.ch,"Table_name") 

【讨论】:

以上是关于RODBC 和访问 - 加载数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 docker、rbase 和 RODBC 连接到 sql server 时出错

R tryCatch RODBC函数问题

当我使用库 (RODBC) 时,出现错误消息警报“无法加载 odbcji32.dll”

R语言︱ 数据库SQL-R连接与SQL语句执行(RODBCsqldf包)

R语言︱ 数据库SQL-R连接与SQL语句执行(RODBCsqldf包)

防止访问在某些情况下阻止 ODBC 查询