私の質問は、コントロール ソース プロパティと afterupdate イベントが発生順序に関してどのように関連しているのかということです。どちらが最初に発生しますか? テキストボックスに入力したばかりのデータを保存するかどうかをユーザーに確認するメッセージボックスが必要です.テキストボックスには、コントロールソースプロパティがいくつかのフィールドに設定されています.ユーザーがアクションをキャンセルした場合、入力したテキストは保存されません. msgbox をテキストボックスの OnChange イベントに入れたら、ユーザーにデータ入力の確認を求めるのは時期尚早ではないでしょうか? 注: コントロール ソースは日付型のフィールドです。
質問する
103 次
1 に答える
1
ControlSource は、実際には Change、BeforeUpdate、または AfterUpdate イベントに直接関連していません。
使用する必要があるイベントは、BeforeUpdate イベントです。
Private Sub txtFirstName_BeforeUpdate(Cancel as Integer)
If MsgBox("Are you sure you want to save this data?", vbYesNo, "Um...") = vbNo Then
Cancel = True
End If
End Sub
ほとんどの場合、フォームの BeforeUpdate イベントを使用して物事を検証する方が、コントロールの BeforeUpdate イベントで行うよりも優れていることを付け加えたいと思います。Form の BeforeUpdate イベントは、上記のコードと同じように機能します。
また、検証ルーチン中に MsgBox を使用することは、ほとんどの人が行う方法ですが、実際には優れた設計手法とは見なされていません。入力したデータが有効でないことをユーザーが認識できるように、検証メッセージを出力し、サウンドを再生するために使用できるテキスト ボックスまたはラベルを用意することをお勧めします。
于 2012-05-02T10:29:19.507 に答える