如何将记录(具有多个(但不是全部)列的特定行)从一个表追加到另一个表

时间:2012-07-16 10:18:16

标签: sql ms-access

每天〜5000条记录被上传到tblRecordsCurrent,在接下来的几天内,当这些记录被处理后,它们需要被移动到tblRecordsHistorical。每条记录都有一个外键DataSetID,将其与上传的日期/时间相关联(父表)。

如何在vba中将tblRecordsCurrent的单个DataSet从tblRecordsCurrent插入到tblRecordsHistorical中。我无法插入所有列,因为两个表都包含持久列。

我不能把整个INSERT INTO tblRecordsHistorical A, B, C, D, E, F...放在一起,因为访问vba太长了。

有什么想法吗?

1 个答案:

答案 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 "