• ベストアンサー

必ず入力する項目を作りたいのですが。

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

質問者が選んだベストアンサー

  • ベストアンサー
noname#49904
noname#49904
回答No.6

検証で手間取っていて遅くなりました。申し訳有りません。  IF文の1行目を下記に変えてください。  If IsNull([日付])Then 以上で動作いたしました。                 tihit

ichiro-ichiro
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (5)

noname#49904
noname#49904
回答No.5

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

すると、全ての回答が全文表示されます。
noname#49904
noname#49904
回答No.4

 例の「閉じる」ボタンを作られて、実行時にエラー、または動いてくれない場合、ボタンのプロパティでボタン名が"閉じる"になっていますか?プロシージャ内容とボタンの名前が一致していなければ動いてくれません。それとIf文には区切りにピリオドはいりません。MSGBOXの””やカンマは半角で入れていますか?  メニューからデバッグをクリックするとエラーの行が示されますので、それを返してください。

ichiro-ichiro
質問者

補足

 たびたび本当にすいません。 まず、実行させると素直に閉じてしまいます。 内容はtihitさんのものをコピーして使っていますし、 自分で入力しても変わりませんでした。 名前も確認しました。デバッグの方法もよくわかりませんでした。  最初のプロシージャ入力から間違っているのでしょうか。 その他の問題があるのでしょうか。

すると、全ての回答が全文表示されます。
noname#49904
noname#49904
回答No.3

 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文を入れる行は同じです。

ichiro-ichiro
質問者

補足

 早速のアドバイスありがとうございます。私がしたいことは おおまかその通りであり、理想は最初の日付の欄を入力しないまま 次の欄に移動しようとしたときにメッセージを出したいのです。  これは先ほどのアドバイスの応用でできそうだと思っていたところ、 tihitさんのいう「閉じる」もできませんでした。ボタンのプロパティの クリック時にコピーしたのですがやり方がおかしいのでしょうか。 たびたび申し訳ありませんがまたよろしくお願いします。

すると、全ての回答が全文表示されます。
noname#49904
noname#49904
回答No.2

入力完了し、次へ進む(ボタン操作などの)前のイベントプロシージャへ、 If [日付] = "" then Msgbox "日付を空白にすることはできません",0,"日付入力エラー" [日付].Setfocus End if と、書き込むと日付入力が済むまでメッセージがくりかえされて進めなくなり、日付欄にフォーカスが設定されます。

ichiro-ichiro
質問者

補足

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

すると、全ての回答が全文表示されます。
  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.1

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

参考URL:
http://www.accessclub.jp/,http://www.mahoutsukaino.com/
ichiro-ichiro
質問者

補足

 ありがとうございます。ですが、その方法ですと 空欄でもOKになりますよね。テーブルの値要求だと 決まったエラーメッセージがでますし…。 必ず入力&自作エラーメッセージはできませんでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A