Microsoft Access テーブルが最後に変更された (挿入または更新された) 時期を検出する方法を知っている人はいますか? ADO COM 経由で OLEDB を使用してアクセス データベースとプログラムで通信し、特定のテーブルへの変更を検出する方法を探していました。それらの変更が何であるかを知る必要はありません。変更が行われたということだけです。
4 に答える
テーブル内のデータが変更されたかどうかを検出する唯一の方法は、テーブルに対してクエリを実行することです。
各行の最終更新日時を示すDATETIME
namedなどのタイプの列をテーブルに追加する必要があります。またはごとにその列に更新された値を書き込む必要があるようにしLastUpdatedDate
ます。また、現在の日付スタンプまたは現在の日付/タイムスタンプをデフォルトにするように列を設定します。次に、検証ルールまたは制約を追加して、たとえば、各およびで列が実際に更新されるようにします。NOT NULL
DATETIME
INSERT
UPDATE
DATE()
NOW()
CHECK
CHECK (LastUpdatedDate = NOW())
UPDATE
INSERT
最後に、MAX(LastUpdatedDate)
クエリを実行すると、必要なものが得られます。
テーブルにアクセスするたびに「手動で」列に書き込むことなしに方法はありません。
他の人が指摘しているように、自分でコーディングせずに変更を追跡する方法はありません。
ACC2000 に簡単な例があります: フォームの変更記録の監査証跡を作成する方法 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q197592
監査証跡 - レコード レベルでの変更のログ: http://allenbrowne.com/AppAudit.html この記事では、フォームとサブフォームの編集、挿入、および削除について説明します。
モジュール: 変更履歴を維持する http://www.mvps.org/access/modules/mdl0021.htm 履歴テーブル ルーチンは、1 つまたは複数のテーブルのフィールドに加えられた変更を追跡する履歴レコードを書き込むように設計されています。
テーブルにタイムスタンプ列を実装し、データの変更中に値を更新する必要があります。