【ACCESS VBA】コピペしかさせない 個人情報の誤登録を無くせ
YoTubeでも解説しています。是非ご覧ください。
世間様では、右クリック禁止、コピペ禁止等のコードはよく見かけるのですが、
コピペしかさせないというコードは、なかなか見かけないですね。
コピペしかさせない 個人情報の誤登録を無くせ
こんにちは。伊川(@naonaoke)です。
また、新しく会社でシステムを作成することになりました。
個人情報の誤登録は、結構ありがちなミスです。
このご時世、情報の取り扱いには、気を付けなければなりません。
できるだけ正確にではありません。
絶対に正確にです。
郵便物が、他人に届くと、本当に困ってしまいます。
私の会社の場合は、WEB上に個人情報を、管理すシステムがあります。
その情報を、手入力されると、絶対に、入力ミスがあります。
確率的には、1,000件に1件あるか、無いかです。
しかし、目的は、撲滅です。
絶対にあってはならないミスなのです。
このブログはこんな人にお勧め
個人情報登録のミスをなくしたい人
ACCESSのVBAを勉強している人
VBAでキーボードの操作をしたい人
このブログを、読み終わるころには・・・・
今回のコードは、とてもカンタンです。
少しコードが長くなりますが、その辺は、Function等で短くすることができると思います。
Functionよりも、個人情報誤登録防止に重点を置きました。
VBAでキーボードを操作する
VBAを記載して、空を飛ぶこことはできません。
しかし、Excelという媒体を利用して、ある程度なんでもできるのが、すごいところです。
VBA初心者の頃は、キーボードを、VBAで操作できるなんで、思ってもいませんでした。
しかし、勉強していくと、できるようになるもんですね。
ではコードを解説します。
VBAでキーボードを操作する 作業手順 その1 コピペしかさせないコード
まず、コピペしかさせたくないテキストボックスを選択して、キークリック時に、イベントが発生するようにします。
記載するのは、下記のコードです。
VBAで、キーボードを、操作する場合は、色々な方法があるのですが、今回は、KeyCodeを利用します。
これだけで完成です。
この、コードを仕込むと、貼り付け、つまり、Ctrl+V以外の操作は、受け付けません。
めでたし、めでたし
VBAでキーボードを操作する 作業手順 その2 不評が続出
もし、間違えて、貼り付けたらそうすんだ!
そのような、不平がたくさん来ました。
いや、ごもっとも!
システムを作成するときは、エンドユーザーのことを考えましょう。
しかし、貼り付けるデータを間違える時点で、緊張感がないですけどね。
VBAでキーボードを操作する 作業手順 その3 コードを修正する
KeyCode=8は、BackSpaceキーを意味します。
KeyCode=13は、Enterキーを意味します。
これで、完璧です。
つまり、Ctrl+V、BackSpace、Enter以外の操作はできません。
VBAでキーボードを操作する 作業手順 その4 個人情報を貼り付ける
今回は、昭和46年1月26日という、データから、0126という値を、取り出します。
テキスト0の更新後処理に下記のコードを仕込みます。
WEB上で、コピーをすると、余計なスペース、改行コードが、入ります。
したがって、Trim関数、Peplace関数、Nz関数を利用して、値を整形します。
Enterキーを、押します。
0126を、抽出できました。
以前は、4桁の文字列でなければ、登録できないようにしていました。
しかし、結果的には、4桁以外は、登録させないといっても、欲しいのは、正確な値なので、桁数で制限をするのは、無駄でした。
余談 Nullの使い方が不正ですの対処方法
上記のコードに関しては、Nz関数があるかないかです。
なぜ、このエラーが発生するかというと、String型の初期値は、””なのです。
Nullは、カンタンといと、どのデータ型にも属さないと言えば、カンタンかもしれません。厳密には、違いますけどね。
だから、テキスト0が、Nullになった場合、テキスト0は、string型なので、Nullの使い方が不正です。となります。
このエラーを回避するために、Nz関数を利用して、Nullを””に変更します。
また、変数を利用しているときは、String型ではなく、Variat型へ、変更することで、回避できます。
これで本当に完璧になります。
iif関数を利用して、条件判定をするよりも、Nz関数を利用したほうが、カンタンですね。
ここがポイント
今回は、コピペ以外させないというコードを紹介しました。
別に意地悪をしているわけではありません。
正確性を保持するためのものです。
なんでも、入力できるのは、処理スピードが、向上します。
しかし、データベースは、なんと言っても、正確性が要求されます。
処理スピードが、向上しなくても、開発側は、正確性の重点を置くべきです。
まとめ
今回は、データベースの正確性を保つものです。
入力で制限を付けることで、入力側にも、緊張感が生まれます。
正確なデータベースを、保ちましょう。
今回も最後まで読んでいただきありがとうございました。
ファイル販売
私のホームページでも販売しています。
このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。
10,000件超えてから、面倒なので、カウントしていないです。
勉強したい方、会社の実務で利用したい方にお勧めです。
はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。
まして、ネットのコードは、作動するとは限りません。
料金は、200円です。
よろしくお願いします。
今回のサンプルファイルは、No278です。
ここから先は
¥ 200
よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。