正確なデータベースを作成するには、正確なデータ入力が必要です。
特に携帯電話番号の桁数等、11桁にも関わらず、10桁で入力してくる輩を撲滅します。
目次
正確なデータベースを作成するには?
こんにちは。伊川(@naonaoke)です。
今回は、標準モジュールを利用して、正しい入力を促進する内容です。
以前の私は、正しい桁数を入力させるために、更新前処理を利用していました。
If Me.携帯電話_1 = “無” Then Exit Sub
If Len(Me!携帯電話_1) = 11 Then Exit Sub
MsgBox “携帯は11桁です。”
Cancel = True
このようなコードです。
しかし、この制限を設けるのに、フィールドが1個ならまだしも、10個も、20個もある場合は、現実的ではありません。
この状況を打破しなければ、正しいデータベースが作成できません。
この状況を標準モジュールに、数行のコードを仕込むことで解決できます。
このブログはこんな人にお勧め
- ACCESSの入力フォームに入力制限を設けている人
- ACCESSで正しいデータベースが欲しい人
- いつも適当に処理する人いて、ブツブツ言いながら、データベースをリカバリしている人
このブログを、読み終わるころには・・・・
ほんの少しの細工で、あなたのデータベースは、見違えるように、正確になります。
標準モジュールとFor eachの組合せ
素朴な疑問でした。
ACCESSで、ループはどのように使うのだろうか?
For~Nextは、数字が、変数として、回転(ループ)します。
しかし、ACCESSは、フィールドとして独立しています。
その、フィールドに対して、VBAでアクションを起こすコードは理解できました。
しかし、一括処理ということに関しては、さっぱり、想像がつきませんでした。
でも、ワイルドカードと、For eachが解決します。
以前の記事で紹介しました。
この記事の応用となります。
標準モジュールとFor eachの組合せ 作業手順 その1 データベース確認
現在、このような入力フォームがあるとします。
生年月日は、4桁、つまり、mm/ddで入力したいとします。
例)0126
これは、私の誕生日です。
携帯電話は、11桁です。
これは、もう、普遍の原則です。
ちなみに、固定回線は、10桁です。
携帯電話を入力しろと言っているのに、固定回線を入力してくる輩がいます。
特に、電話番号の手入力は、危険です。
個人情報保護法を、読んだこともない輩が、やたら、情報漏洩と叫ぶこともあります。
そのような意味でも、ある程度、入力には制限を付けたほうが良いですね。
標準モジュールとFor eachの組合せ 作業手順 その2 4桁、または無以外入力させない
これもよく、同僚から言われるのですが、なぜ、規定値を無にするのかと?
これで一喝しています。
どうしてと思う人もいるかもしれませんが、空白があると、データ抽出が面倒なのです。
上の図のように、非連結のテキストボックスの名前を、txt4テキスト0 としています。
つまり、txtの後に4桁なので、4を挟んでいます。
これだけです。
後は、条件を書くだけです。
カンタンに言うと、文字数が、4文字、または、無でなければ、先に進めないと記載しています。
ただこれだけですね。
標準モジュールとFor eachの組合せ 作業手順 その3 11桁以外登録させない
先頭の条件を変更するだけです。
これで完了です。
標準モジュールとFor eachの組合せ 作業手順 その4 For eachをとことん使う
この状態で、テーブルに入力が完了した場合、なにもしなければ、上段の、生年月日、携帯電話の値は、変わりません。
これで、すべてのテキストボックスの値は、無になります。
これは、フォームモジュールに記載しています。
すべてのフォームに適用するわけではないからです。
当然、空白も撲滅します。
赤枠が、入力制限のコードを記載する場所になります。
つまり、標準モジュールから呼び出しています。
あ
ここがポイント
標準モジュール、クラスモジュールを利用すると、条件判定が少なくなりますね。
こんな便利な機能を、なぜ利用しなかったのか?、いや、できなかったのか?
単純に勉強不足なんですが、書籍にも書いていないので、仕方ないですね。
でも、このブログでは、実践的な技を紹介するのが、趣旨です。
是非、あなたも、コードを短くする喜びを覚えてください。
まとめ
今回は、以前紹介したコードの応用というか、使いまわしです。
入力制限を付けるフォームは、項目をまとめておくことで、コードの記載の量が、グーン減りますね。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No273です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。