r - 使用 R 从数据帧获取数据到 MS-access DB 目标表

标签 r ms-access

我在 R 中创建了数据帧。我使用下面的代码连接到 Access 数据库。
我能够将所有数据从 Access 数据库中提取到 R。

我在 Access 中有 3 个表,如 A 、 B 、 C

在 R 中创建相同的数据框,如 A、B、C

如何将 A、B、C 的 R 数据框从 R 移动到 Access DB 目标表 A、B、C?

在 R studio 中使用 R 编码。?

请帮忙解决这个问题,这对我来说很重要。

con <- odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};
                          DBQ=C:/Users/chintan/Desktop/Published.accdb")

# Get data
Pub <- sqlQuery(con, "select * from certifications
                      Where [Business Group]='EG'
                      AND FY='FY15'")

最佳答案

请看 RODBC手动的。有多种方法可以将数据框附加到 Access 表。当然,请确保数据框列按名称和数据类型与表列对齐。

sqlUpdate (写入或更新 ODBC 数据库中的表)

sqlSave(con, pub, AccessTablename, append = FALSE, rownames = FALSE)

sqlUpdate(con, pub, Accesstablename)

sqlQuery (向 ODBC 数据库提交 SQL 查询,并检索结果)
# APPEND QUERY
sql <- paste0("INSERT INTO AccessTableName(col1, col2, col3) 
               VALUES('", pub$col1 ,"','", pub$col2, "','",pub$col3, "')")

appendRecords <- lapply(sql, function(x) sqlQuery(con, x))


# UPDATE QUERY
sql <- paste0("UPDATE AccessTableName 
                  SET col1 = '", pub$col1 ,"'
                      col2 = '", pub$col2 ,"'
                      col3 = '", pub$col3 ,"'")

appendRecords <- lapply(sql, function(x) sqlQuery(con, x))

您甚至可以使用 RDCOMClient 镜像 VBA通过打开 Access 应用程序对象(具有 DoCmd 属性)并运行 DoCmd.TransferText 将数据帧导出到 csv方法。
library(RDCOMClient)

# OUTPUT R DATA FRAME TO CSV
rdfpath = 'C:\\Path\\To\\R\\DataFrame\\Output.csv'
write.csv(pub, rdfpath, row.names=FALSE)

# LAUNCH ACCESS APP
strDbName = 'C:\\Path\\To\\Database\\File.accdb'
oApp = COMCreate("Access.Application")
oApp$OpenCurrentDatabase(strDbName)

# IMPORT CSV DATA TO TABLE
acImportDelim  <- 0
importObj = oApp[["DoCmd"]]
importObj$TransferText(acImportDelim, "", "AccessTableName", rdfpath, TRUE)

importObj$CloseDatabase
importObj <- NULL
oApp <- NULL

关于r - 使用 R 从数据帧获取数据到 MS-access DB 目标表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001509/

相关文章:

ms-access - 为什么在宏运行完毕后从 VBA 打开 Access 实例时会退出?

mysql - 如何使用 RODBC 将数据帧添加到 mysql 表

r - 条形图最后一部分的绘图线

r - 如何在 R 包 JuliaConnectoR 中传递 Julia 类型

ms-access - Access 2013 - 无法打开使用以前版本的应用程序创建的数据库

asp.net - 将 SQL 数据库导出到 Access - ASP.NET

R代码生成带前缀的唯一ID?

r - 探索数据时,箱形图不会与 Rattle 中的其他图表共享页面

SQL Access 记录 "Allow multiple value"

ms-access - 文本框为空问题