プロが教えるわが家の防犯対策術!

帳票形式のフォームでエラーチェックを行う場合、たとえば、

If Me!入金日 = "" then
Msgbox ("入金日が入力されていません")
Else
'登録処理・・・・

というように入力すると、現在フォーカスがある行しか
チェックしてくれません。
すべての行の入金日が入っているかをチェックする方法はないでしょうか。

A 回答 (2件)

「書式」「条件付き書式」では如何ですか?


こちらならテキストボックスに色を付けるなどの方法でチェックできます。
    • good
    • 0
この回答へのお礼

その方法はおもいつきませんでした。ありがとうございます。

お礼日時:2004/11/02 11:02

考え方の問題ですが、フォームではフォーカスは


必ず1カ所と決っているので一括処理は難しい
ですね。

以下のいずれかの方法をお勧めします
(1)フォームを閉じる前に全てのレコードを検索して
入金日に空白があれば警告する
(2)クエリーで入金日空白のレコードだけを抽出して
フォームで表示する

(1)の場合のコード例を書きます

Set dbs = CurrentDb
Set rr = dbs.OpenRecordset(rsname, dbOpenSnapshot)

Ok=0
rr.MoveFirst
Do Until rr.EOF

If IsNull(rr!入金日) Then
Ok=1
End If

rr.MoveNext
Loop

If Ok=1 then
msgbox("入金日が空白の行があります。")

空白が1行でもある場合
メッセージが表示されますがこのままではメッセージ表示後そのままフォームが閉じてしまいますので
改良してください。
    • good
    • 0
この回答へのお礼

なるほど。上から順々にチェックしていけばよかったんですね。この方法でうまくいきました。ありがとうございます。

お礼日時:2004/11/02 10:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!