#425 レコードの最終更新日時を記録するには? フォーム、VBA

フォームにおいてレコードの編集操作が行われるたびに、その日時をレコードごとにテーブルに保存しておく方法です。
テーブルのフィールドデザインにおいて「既定値」としてNow関数などが指定されている場合、新規レコードが追加されると自動的にその日時を保存できます。しかしレコードの更新操作に関しては、フォーム上のプログラムを使ってそれを記録してやる必要があります。

次の例では、フォームの更新前処理イベントを利用して、フォームのレコードソースに含まれる「最終更新日時」フィールドの値を現在日時に更新しています。

Private Sub Form_BeforeUpdate(Cancel As Integer)
'フォームの更新前処理

  '最終更新日時を更新
  [最終更新日時] = Now()

End Sub


ここでのポイントは、更新後処理イベントではなく更新前処理イベントを使うことです。更新後処理イベントで同様の操作をするとレコード移動ができなくなってしまいます。また当然のことながら、フォームのレコードソースとなるテーブルあるいはクエリ上に「最・ I更新日時」という名前のフィールドがある必要があります。ただしそれを必ずしもフォーム上にコントロールとして配置する必要はありません。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved