1

トランザクション データ用の Web サイトの Excel ダンプから供給される Access データベースを構築しています。これらのトランザクションにはすべて一意の識別子がありますが、トランザクションが処理されるとステータスが変化します。

以前は、毎週の Excel ダンプを保持し、ステータスの変化を分析する必要がある場合は掘り下げていました。私たちの「マスター」データ シートは、最新のダンプから実行された 40,000 行の Excel ファイルでした。つまり、古いステータス データが失われました。このすべての情報が保存されているバックエンド データベース (存在する場合) にはアクセスできず、Excel で生成されたレポートのみが保存されます。

データを Access に移行していますが、特定のトランザクションが通過する可能性のあるさまざまな段階をキャプチャするためのオプションは何ですか?

4

1 に答える 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 に答える