アクセス必須項目の未入力チェックでメッセージボックスを表示

アクセス担当のまみです。

メッセージボックスって何がやりたいかによって使い方を変えることができるんです。

「登録されました」とか「エクスポートされました」とか情報を表示させるだけのメッセージボックスや、「入力されてませんよ」って表示されて入力されるまで進めなかったり、「どっちにしますか?」ってメッセージボックス。

「どっちにしますか」ってメッセージボックスだとそのあとの処理が変わってきますね。

今回表示させたいなと思っているメッセージボックスは、必須項目が入力されていないと表示されて、条件を満たさないとそこから先に進めないようにするメッセージボックスです。

 

Contents

現在のプログラムの確認

 

説明のために「宛名印刷」ファイルを使用します。同じファイルを使用する方が理解しやすいので、お時間ありましたらぜひ下記の記事から作成してみてくださいね!

アクセスVBAでフォームにボタンを配置しよう

2018年9月18日
 
 
 
まずは「宛名印刷」ファイルを開き、現在の動きを確かめておきましょう。
 
 
何らかの原因で動かなくると、どこから動かなくなったのかがわからないと、どこを修正したらいいのかわからないんです。
 
 
作業をする前に動作確認をしておくと、この時までは動いていたってわかるので、その状態に戻せばいいんですね。
 
 
こまめなバックアップと、動作確認の習慣をつけると良いですよ!
 
 
 

では「F_データ入力」を「フォームビュー」で開きましょう。

何も入力していないのに「登録」ボタンを押す人はいないかもしれませんが、押してみてください。

データが何もないのに「登録されました」って・・・

しかもテーブルに何もないレコードが登録されてしまいます!

その意味では「登録されました」って正しいのかも?

 

「T_住所録」テーブルを開いて確認してみてください。

私は何度も登録ボタン押しちゃったので、赤枠のように何もないデータがたくさん・・・

 

(はてな君)
空欄で登録押してみたことなかったから気が付かなかったよ

 

(あいちゃん)
今回のメッセージボックスを表示させることで空欄で登録されることはなくなるよ!
 

必須項目にメッセージボックスを表示

 
 
「F_データ入力」フォームの入力項目の中で、必須項目にしたい項目は、「氏名」「郵便番号」「印刷要否」の3つです。
 
 
「しめい」「住所1」は、それぞれ「氏名」「郵便番号」が入力されれば、表示されるので、必須にしなくてもOKです。
 
 
 
ではまず、「tx氏名」が空欄だった場合に、メッセージボックスが表示されるようにしてみましょう。
 
 
 
 
 
 
①「作成」タブを左クリックして、②を左クリックで、Visual Basicのコードの画面を表示しましょう。
 
 
 
 
 
赤枠に下記のコードを入力します。
 
 
'    必須項目のメッセージボックス
    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

 

【Access】 Nz関数で空白を上手に扱う方法

2018年11月22日

 

まとめ

 

必須項目のチェックって難しそうって思っていたかと思います。

やってみたら意外と簡単だった!面白い!って思ってもらえていたらいいな!

 

スポンサーリンク