アクセス担当のまみです。
メッセージボックスって何がやりたいかによって使い方を変えることができるんです。
「登録されました」とか「エクスポートされました」とか情報を表示させるだけのメッセージボックスや、「入力されてませんよ」って表示されて入力されるまで進めなかったり、「どっちにしますか?」ってメッセージボックス。
「どっちにしますか」ってメッセージボックスだとそのあとの処理が変わってきますね。
今回表示させたいなと思っているメッセージボックスは、必須項目が入力されていないと表示されて、条件を満たさないとそこから先に進めないようにするメッセージボックスです。
Contents
現在のプログラムの確認
説明のために「宛名印刷」ファイルを使用します。同じファイルを使用する方が理解しやすいので、お時間ありましたらぜひ下記の記事から作成してみてくださいね!
では「F_データ入力」を「フォームビュー」で開きましょう。
何も入力していないのに「登録」ボタンを押す人はいないかもしれませんが、押してみてください。
データが何もないのに「登録されました」って・・・
しかもテーブルに何もないレコードが登録されてしまいます!
その意味では「登録されました」って正しいのかも?
「T_住所録」テーブルを開いて確認してみてください。
私は何度も登録ボタン押しちゃったので、赤枠のように何もないデータがたくさん・・・
必須項目にメッセージボックスを表示
' 必須項目のメッセージボックス If Me.tx氏名 = "" Then MsgBox "氏名が入力されていません" Exit Sub Else End If
「tx氏名」が空欄だった時には「氏名が入力されていません。」ってメッセージボックスを表示させて終了させてね、そうじゃなかったらそのまま処理を続けてねって意味です。
条件に当てはまった場合、Exit Subって書くことで、その後の処理はされずにここで終了します。
「btn登録」ボタンがクリックされた時の処理を「Private Sub btn登録_Click()」と「End Sub」の間に入力するんです。「Exit Sub」って「Sub」の処理を抜けてくださいねって意味です。
言っていること伝わってますでしょうか?
わかりずらかったら質問してくださいね。表現方法を考えてみますので。
では、確認してみましょう。
「F_データ入力」フォームで、データを入力して「登録」ボタンを左クリック!
あっ氏名は空欄にしてくださいね、氏名が空欄だったらって条件を入れたので。
うまく動いたでしょうか?
[quads id=2]大丈夫そうなら、「郵便番号」「印刷要否」もメッセージが出るようにしておきましょう。
赤枠に下記のコードを入力します。
If Me.tx郵便番号 = "" Then MsgBox "郵便番号が入力されていません" Exit Sub Else End If If Me.cmb印刷要否 = "" Then MsgBox "印刷要否が選択されていません" Exit Sub Else End If
コードをコピーされたい場合は下記の記事を参考にしてください。
動作確認
3つの必須項目が空欄の場合にメッセージボックスが表示されるようになったので、空欄で登録されるってことはなくなりました。
あとは、思った通りに動いてくれるか、色々試してみてくださいね。
色々試してみたら、何か修正箇所が見つかるかも?
今回はここまでにしますので、「F_データ入力」は変更を保存して終了させておいてください。
※Nullと””の扱いでこのままではエラーがでることがあります。色々試したところ、Nz関数を使うことでエラーが出ないことがわかりましたので、追記させていただきます。
Nz(Me.tx氏名) = “”とすることで、エラーが出ないので、他の必須項目についてもNz関数を使用してみてください。
' 必須項目のメッセージボックス If Nz(Me.tx氏名) = "" Then MsgBox "氏名が入力されていません" Exit Sub Else End If If Nz(Me.tx郵便番号) = "" Then MsgBox "郵便番号が入力されていません" Exit Sub Else End If If Nz(Me.cmb印刷要否) = "" Then MsgBox "印刷要否が選択されていません" Exit Sub Else End If
まとめ
必須項目のチェックって難しそうって思っていたかと思います。
やってみたら意外と簡単だった!面白い!って思ってもらえていたらいいな!