フォームにおいてレコードの編集操作が行われるたびに、その日時をレコードごとにテーブルに保存しておく方法です。
テーブルのフィールドデザインにおいて「既定値」としてNow関数などが指定されている場合、新規レコードが追加されると自動的にその日時を保存できます。しかしレコードの更新操作に関しては、フォーム上のプログラムを使ってそれを記録してやる必要があります。
次の例では、フォームの更新前処理イベントを利用して、フォームのレコードソースに含まれる「最終更新日時」フィールドの値を現在日時に更新しています。
Private Sub Form_BeforeUpdate(Cancel As Integer)
'フォームの更新前処理
'最終更新日時を更新
[最終更新日時] = Now()
End Sub
ここでのポイントは、更新後処理イベントではなく更新前処理イベントを使うことです。更新後処理イベントで同様の操作をするとレコード移動ができなくなってしまいます。また当然のことながら、フォームのレコードソースとなるテーブルあるいはクエリ上に「最・
I更新日時」という名前のフィールドがある必要があります。ただしそれを必ずしもフォーム上にコントロールとして配置する必要はありません。 |