Private Sub 更新日時_BeforeUpdate(Cancel As Integer)
Me![更新日時] = Now()
End Subこの式では、「更新日時」というテキストボックス(フォームの一部)が変更された場合だけの設定になっています。
フォームとテキストボックスを同じものと考えておられるようですが、
- フォームは「フォーム全体」のこと
- テキストボックスは入力する白い部分のそれぞれ
を指しています。
これでは、同じフォーム内の他のテキストボックスを変更しても、何にも起きません。
解決法1
Private Sub 更新日時_BeforeUpdate(Cancel As Integer)
Me![更新日時] = Now()
End Sub
の赤い更新日時の部分だけ([更新日時]はそのままか、[ ]を外すかする)を
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me!更新日時 = Now()
End Sub
にする
解決法2
最初からやり直して(この記述を消して)、フォーム全体に更新前処理を設定すれば、うまくいきます。
- フォームを開いて、デザインビューをクリック
- 開いたフォームの中を一切クリックしないで(クリックした部分の変更になりますので)、
- そのフォームのタイトルバーを右クリックして、プロパティを
- または、ツールバーにある
(プロパティ)をクリック
- 更新前処理のイペントプロシージャーを使って、次のように記述
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me!更新日時 = Now()
End Sub |