I have created Data frames in R. I have connected to access DB using below code. I am able to extract all data from access db to R.
I have 3 tables in Access like A , B , C
Created same data frames in R like A, B, C
How to move the R data frames of A, B, C from R to Access DB Target Tables A,B,C?
Using R coding in R studio.?
Please help on this, this is important task for me.
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'")
Run Code Online (Sandbox Code Playgroud)
请查看RODBC手册。有多种方法可以将数据框附加到 Access 表。当然,请确保数据框列按名称和数据类型与表列对齐。
sqlUpdate (写入或更新 ODBC 数据库中的表)
sqlSave(con, pub, AccessTablename, append = FALSE, rownames = FALSE)
sqlUpdate(con, pub, Accesstablename)
Run Code Online (Sandbox Code Playgroud)
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))
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |