一個相當直接的方法是創建一個與您的主表格(Access,Copy > Structure Only
)具有相同結構的[ArchiveTable]表格,然後將[ArchivedOn]日期/時間列添加到[ArchiveTable]中。
當你得到一個新的Excel表,您可以將它導入訪問(例如,通過在VBA DoCmd.TransferSpreadsheet
),然後做這樣的事情:
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
這太好了。特別感謝VBA的想法,也將探索這一點! – pedram