每天〜5000条记录被上传到tblRecordsCurrent,在接下来的几天内,当这些记录被处理后,它们需要被移动到tblRecordsHistorical。每条记录都有一个外键DataSetID
,将其与上传的日期/时间相关联(父表)。
如何在vba中将tblRecordsCurrent的单个DataSet从tblRecordsCurrent插入到tblRecordsHistorical中。我无法插入所有列,因为两个表都包含持久列。
我不能把整个INSERT INTO tblRecordsHistorical A, B, C, D, E, F...
放在一起,因为访问vba太长了。
有什么想法吗?
答案 0 :(得分:3)
如果将查询保存在Access数据库中,则可以通过以下方式在VBA中执行:
DoCmd.OpenQuery "yourQueryName", acViewNormal, acEdit
或者
CurrentDb.OpenRecordset("yourQueryName")
或者
CurrentDb.Execute "qryAddLoginfoRow"
这使您可以在不将查询存储在VBA代码中的情况下执行查询。但您也可以通过VBA
中的查询执行此操作:
INSERT INTO tblRecordsHistorical (col1, col2...)
SELECT col1, col2...
FROM tblRecordsCurrent
编辑:
您可以通过将字符串连接在一起来创建长SQL字符串:
SQLString = "INSERT INTO tblRecordsHistorical (col1, col2...) " & _
" SELECT ... " & _
" FROM tblRecordsCurrent "