3

多くのテーブルと何千ものレコードを含む Access データベースを使用しています。誰かがデータ、行、またはセルのみを変更した場合、どの特定の行またはセルが変更されたかを知る方法はありますか? Access データベース、任意のプロパティ、または任意のトリガーを使用する必要がありますか?

4

1 に答える 1

2

私は数年前にMSSQL DBで同様の問題を抱えていました.ACCESS(MDB)とSQL(MDF)データベースの両方がこれを本質的にサポートしていないことを思い出したようです. 私が間違っていなければ、次の原則を採用する必要があります。

1) トランザクション データは決して編集しないでください。変更された値を含む新しいレコードを含む履歴レコードのみを参照してください。3つの角度から撮りました:

  • 更新に関連する最新のレコードの record_id を保持する PrecursorRecId という列がありました。
  • 別の列が保持され、関連するすべてのレコードが、AuditTxnContext テーブルのキー Id 列である共通の値によってリンクされる Context_ID が保持されました。
  • レコードの TxnDate (かなり論理的)

2) マスター データ レコードも変更されませんでしたが、各レコードにはEffectiveFromDateとEffectiveToDateがあり、NULLのEffectiveToDateを持つレコードは現在と見なされていました。テーブルの機密性に応じて、MaterData レコードの作成には、監査エントリ レコードが付随していました。ここでも、EffectiveFromDate スタンプと自動的に一致しない RecordCreatedDateTime があります。

これは先に進むのに役立つかもしれませんが、既存のデータを支援することはあまりありません. また、あなたが何に取り組んでいるのかもよくわからないので、私の意見はかなり一般的です。それが何らかの形で役立つことを願っています。私が間違っている場合は、誰の意見も歓迎します。これが私たちの挑戦への取り組み方です。

まだ対処している場合は、もう少し教えてください。そうでない場合は、質問を閉じてください。

乾杯

マック

于 2012-04-20T15:18:39.740 に答える