0

每天有大约 5000 条记录上传到 tblRecordsCurrent,在接下来几天的某个时间点,当这些记录处理完毕后,需要将它们移动到 tblRecordsHistorical。每条记录都有一个外键DataSetID,将其与上传的日期/时间联系起来(父表)。

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

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

有任何想法吗?

4

1 回答 1

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 "
于 2012-07-16T10:26:36.347 回答