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

ACCESSを使っています。
フォームで、[日付]の欄を必ず入力するようにしたいのです。
空欄のときには自分で作ったエラーメッセージを出したいのです。

決められたエラーメッセージは出るのですが…。
よい方法があったらお願いします。

A 回答 (6件)

テーブルかフォームのプロパティで指定します


フォームで説明します。
項目を右クリック→プロパティ→データ→エラーメッセージ
参考になれば幸いです
http://www.accessclub.jp/
http://www.mahoutsukaino.com/
参考になりそうなのを見繕いました

参考URL:http://www.accessclub.jp/,http://www.mahoutsukaino.com/

この回答への補足

 ありがとうございます。ですが、その方法ですと
空欄でもOKになりますよね。テーブルの値要求だと
決まったエラーメッセージがでますし…。

必ず入力&自作エラーメッセージはできませんでしょうか。

補足日時:2002/04/01 18:50
    • good
    • 0

入力完了し、次へ進む(ボタン操作などの)前のイベントプロシージャへ、



If [日付] = "" then
Msgbox "日付を空白にすることはできません",0,"日付入力エラー"
[日付].Setfocus
End if

と、書き込むと日付入力が済むまでメッセージがくりかえされて進めなくなり、日付欄にフォーカスが設定されます。

この回答への補足

 ありがとうございます。まさに待ち望んでいた答えなのですが、
うまく使用することができません。詳しい使い方を教えていただけると
助かるのですが。イベントプロシージャがよくわからないのです。
初心者で申し訳ありません。よろしくお願いします。

補足日時:2002/04/02 17:48
    • good
    • 0

 ichiro-ichiroさんがどんな使用をされているかが不明のため的確な回答が出来ません。


 回答は、次の画面を想定したものに対するプロシージャです。
フォームは単票形式の入力用画面があり、ボタンコントロールが、「次の入力」,「閉じる」などを使っているとした場合に、そのボタンのイベントプロシージャが有るわけです。
 例えば、「閉じる」ボタンがあり、プロシージャ内容が次のような場合、

Private Sub 閉じる_Click()
DoCmd.Close
End Sub

となります。これを

Private Sub 閉じる_Click()
   If [日付] = "" then
Msgbox "日付を空白にすることはできません",0,"日付入力エラー"
[日付].Setfocus
   End if
DoCmd.Close
End Sub

のようにIf文を入れると、日付入力がされるまで次へ進めなくなり、閉じることも出来ません。
ボタンが複数有る場合も,If文を入れる行は同じです。

この回答への補足

 早速のアドバイスありがとうございます。私がしたいことは
おおまかその通りであり、理想は最初の日付の欄を入力しないまま
次の欄に移動しようとしたときにメッセージを出したいのです。

 これは先ほどのアドバイスの応用でできそうだと思っていたところ、
tihitさんのいう「閉じる」もできませんでした。ボタンのプロパティの
クリック時にコピーしたのですがやり方がおかしいのでしょうか。
たびたび申し訳ありませんがまたよろしくお願いします。

補足日時:2002/04/02 20:43
    • good
    • 0

 例の「閉じる」ボタンを作られて、実行時にエラー、または動いてくれない場合、ボタンのプロパティでボタン名が"閉じる"になっていますか?プロシージャ内容とボタンの名前が一致していなければ動いてくれません。

それとIf文には区切りにピリオドはいりません。MSGBOXの””やカンマは半角で入れていますか?
 メニューからデバッグをクリックするとエラーの行が示されますので、それを返してください。

この回答への補足

 たびたび本当にすいません。
まず、実行させると素直に閉じてしまいます。
内容はtihitさんのものをコピーして使っていますし、
自分で入力しても変わりませんでした。
名前も確認しました。デバッグの方法もよくわかりませんでした。

 最初のプロシージャ入力から間違っているのでしょうか。
その他の問題があるのでしょうか。

補足日時:2002/04/02 23:03
    • good
    • 0

 おはようございます。

ichiro-ichiroさんにお答えしたものは、検証はしていませんので、きょう、一度検証し、今夜にでも再回答いたしますので、しばらくおまちください。
    • good
    • 0

検証で手間取っていて遅くなりました。

申し訳有りません。
 IF文の1行目を下記に変えてください。

 If IsNull([日付])Then

以上で動作いたしました。
                tihit
    • good
    • 0
この回答へのお礼

何度もありがとうございました。ちゃんとできました。
これからも勉強していきたいと思っています。
本当に助かりました。

お礼日時:2002/04/11 12:01

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