1

我正在构建一个 Access 数据库,该数据库从网站的 Excel 转储中获取交易数据。这些交易都有一个唯一的标识符,但状态会随着交易的处理而改变。

以前,如果我们需要分析状态变化,我们会保留每周的 Excel 转储并进行挖掘。我们的“主”数据表是从最新转储运行的 40,000 行 Excel 文件,这意味着我们丢失了旧的状态数据。我无法访问存储所有这些信息的后端数据库(如果有的话?),只有 Excel 生成的报告。

现在我正在将我们的数据迁移到 Access 中,有哪些选项可以捕获特定事务可能经历的不同阶段?

4

1 回答 1

1

一种相当直接的方法是创建一个与主表(在 Access 中Copy > Structure Only)具有相同结构的 [ArchiveTable] 表,然后将 [ArchivedOn] 日期/时间列添加到 [ArchiveTable]。

当你得到一个新的 Excel 表时,你可以将它导入 Access(例如,通过DoCmd.TransferSpreadsheetVBA),然后执行以下操作:

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
于 2013-04-15T17:42:04.400 回答