Select Caseステートメントを使って、入力漏れのチェックを行う

こんにちはmasalifeです。

今回は入力フォームで項目の入力漏れがないかをチェックする機能を作ってみたいと思います。

具体的に作る機能は次のイメージです。

*クリックすると拡大表示します。

登録ボタンをクリックすると、入力漏れがあるかないかでメッセージの内容を変える機能です。

このような入力漏れチェック機能の作り方は色々ありますが、

今回はSelect Caseステートメントを使って作ってみます。

Select Caseステートメントは値に応じて処理を分岐させる場合に使用する、条件分岐処理において使用頻度が高いステートメントです。

実際に機能を作りながら感覚を掴んでください。

*方法(VBAコード)のみを知りたい方は【目次2:登録用のコマンドボタンにVBAを記述する】のみを読んでください。

・Select Caseステートメント

・IsNull関数

・If~Elseステートメント

入力フォームを準備する

入力をするテキストボックスと登録用のコマンドボタンがある次のようなフォームを作成してください。

テキストボックスではなく、コンボボックスでも動作には問題ありません。

登録用のコマンドボタンにVBAを記述する

登録ボタンに入力漏れチェック機能をVBAで設定します。

ボタンのプロパティシートを出して、

【イベント】タブのクリック時の 【…】 アイコンをクリックします。


【コードビルダー】を選択し、【OK】ボタンをクリックします。

VBE画面が起動します。


VBE画面に次のコードを記述します。

*txt〇〇の部分は準備したフォームのコントロール名に変更してください。


これで完成です。

入力漏れの項目によってメッセージが切り替わり、

すべて入力されていたら、「登録しました。」のメッセージが出ます。

MsgBox “登録しました。”の部分をGoToRecord(レコードの移動)を使って、次のレコードに移動させるなどすればより実用的になるので、色々と試してみてください。

VBAの内容を考える

入力が漏れているか漏れていないかの判定フラグを代入する変数を設定

入力項目ごとに入力項目が漏れているか漏れていないかを判定し、それに対応するフラグを代入する変数を設定しています。

入力が漏れていた場合は✖、入力が漏れていない場合は〇を代入します。

そのため、変数の型は文字列を入れるString型としています。

入力が漏れているか漏れていないかを判定しフラグを変数に代入

入力項目ごとに、IfステートメントとIsNull関数を使って入力漏れを判定し、判定フラグ(〇,✖)をそれぞれのcheck変数に代入しています。

最後に次のSelect Caseステートメントの条件式とするためのhantei変数にそれぞれのcheck変数をくっつけた文字列を代入しています。

*すべての項目に入力漏れがない場合は、hanteiには”〇〇〇”が代入されます。


IsNull関数について、なじみのない方はこちらの記事で解説していますので、ぜひ参考にしてみてください。

関連記事

こんにちはmasalifeです。   Accessの力を最大限に発揮させるためには、関数の知識が必要不可欠です。 僕が多くのシステム構築をしてきた経験から、 この関数は覚えといた方がいい というものを順に紹介していきたいと思います。   今[…]

Select Caseステートメントを使用し、変数hanteiの値によって処理を分岐

変数hanteiをSelect Caseステートメントの条件式にして処理を分岐させています。

hanteiの値と処理の分岐をまとめると次のとおりです。

hanteiの値入力漏れ項目処理(出すメッセージの内容)
“〇〇〇”なし登録しました。
“✖〇〇”会員名会員名が入力されていません。
“✖✖〇”会員名
パスワード
会員名・パスワードが入力されていません。
“✖✖✖”会員名
パスワード
再確認パスワード
会員名・パスワード・再確認パスワードが入力されていません。
“〇✖✖”パスワード
再確認パスワード
パスワード・再確認パスワードが入力されていません。
“〇〇✖”再確認パスワード再確認パスワードが入力されていません。
“〇✖〇”パスワードパスワードが入力されていません。
“✖〇✖”会員名
再確認パスワード
会員名・再確認パスワードが入力されていません。


Select Caseステートメントについては、こちらの記事で細かく解説していますので、参考にしながらVBAの内容を読み取ってみてください。

関連記事

こんにちはmasalifeです。 今回は条件分岐の処理に使用するSelect Caseステートメントを紹介します。 条件分岐といえばIfステートメントを思い浮かべる方が多いと思いますが、 IfステートメントよりS[…]

さいごに

思ったより簡単と感じていただけたでしょうか。

もちろん、バリバリのプログラマーの方であればもっと汎用性のあるプログラムを組まれると思います。

ただ、Accessの最大のメリットはプログラムを熟知していなくてもITに詳しくなくても、真似をすれば現場で即戦力となる機能を簡単に構築できる事だと思います。

ぜひ、入力フォームを作った際は入力漏れチェックを機能を実装してみてください。

これからもAccessを簡単に感じてもらえるような記事を書いていきたいと思っております。

最後まで読んでいただきありがとうございました。

>共に勉強しましょう!!

共に勉強しましょう!!



Accessの学習で悩んでいる方の相談に乗っています。
興味のある方は「Accessの勉強でお悩みの方へ」の記事を確認いただき、下部の【お問い合わせ】から連絡ください。