一种相当直接的方法是创建一个与主表(在 Access 中Copy > Structure Only
)具有相同结构的 [ArchiveTable] 表,然后将 [ArchivedOn] 日期/时间列添加到 [ArchiveTable]。
当你得到一个新的 Excel 表时,你可以将它导入 Access(例如,通过DoCmd.TransferSpreadsheet
VBA),然后执行以下操作:
INSERT INTO ArchveTable (fieldname, fieldname, ..., ArchivedOn)
SELECT fieldname, fieldname, ..., Now() AS ArchivedOn FROM MainTable
WHERE MainTable.TransactionID IN (SELECT TransactionID FROM ImportTable)
...然后对 [ArchiveTable] 中的数据进行一些“健全性检查”,以确保在继续之前复制所有内容...
DELETE FROM MainTable
WHERE MainTable.TransactionID IN (SELECT TransactionID FROM ImportTable)
INSERT INTO MainTable (fieldname, fieldname, ...)
SELECT fieldname, fieldname, ... FROM ImportTable