|
みほ さん こんにちは
方法は無いわけではありませんが、あまり良い方法とはいえません。
記述されているソースを見る限り、未入力の場合に元の値に戻す処理
だと思います。
最終的に画面を終了する際にと仰っていますが、どの程度のデータを
登録や更新されるのか分かりませんが、ご存知のとおりDBは1レコード
単位の処理となると思います。
したがって、画面終了タイミングは、1レコード分の入力を終えた後
ということになります。
これで、通常運用が可能かどうかは不明ですが、1レコード単位で
あれば、面倒ですが、コントロールは非連結にし、フォーム起動時
もしくは、検索処理時にデータをテーブルより抽出し各コントロール
にセットされる方が良いかと思います。
上記は、あくまで私がそう思うことですので、仕様的にはどの方法が
良いのかは、ご自分で判断してください。
以下に、現状UPされている処理を纏めて行う方法を記載します。
フォームの「エラー時」イベントで以下のコードを記述します。
Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 3314 Then
Response = acDataErrContinue
Me.ActiveControl.Undo
Exit Sub
End If
End Sub
DataErr引数は、未入力のエラーコードです。
Response = acDataErrContinueはメッセージを出力しないコードです。
|
|