このブログで言いたいことは、
ACCESSで同僚をびっくりさせようです。
目次
入力漏れ防止のためにフィールドに条件式を設定
こんにちは。伊川(@IkawaNaosuke)です。
今回は、入力漏れ防止のために、VBAで、条件式を設定したいと思います。
ExcelとACCESSを比較したときに、Excelに絶対に軍配が上がります。
それだけExcelは市民権を得ているんですね。
その人達に、ACCESSって、すごいと思わせるためには、何か、手品のようなものが必要です。
現在、私で、ACCESSのコンサルをしています。
生徒さんも、ACCESSを受け入れてくれなくて、困っているようです。
今回紹介することは、もちろんExcelでもできます。
しかし、ACCESSを利用してもらうために、少し、驚かせてみましょう。
このブログはこんな人にお勧め
- データ入力ついて、入力防止をしたい人
- ACCESSより、Exelのほうが便利と思っている人
- 条件式をVBAで設定したい人
このブログを、読み終わるころには・・・・
VBAで条件式を設定することができます。手動でやると、通常は、フィールドの数の分だけ設定をしなければなりません。このコードの利点は、フォームのフィールド全部に条件式を設定できます。
また、フォームで、データ入力に慣れていない人には、効果があるコードだと思います。
FormatConditions
条件式を設定するプロパティです。
これを使うことで、フォーム全体に条件式を設定します。
たとえ、フィールドが100個あっても平気です。
このFormatConditionsは、Excelでも利用できます。
今回は、ACCESSで使用してみます。
FormatConditions 作業手順 その1 入力フォームを作成する
このような感じになります。
入力対象のフィールドに移動すると、フィールドのバックの色が緑になり、文字が黒になる条件式が軌道します。
FormatConditions 作業手順 その2 完成のコード
FormatConditions 作業手順 その3 色の指定
vbBlack ,vbGreen で色を指定しています。
色の指定に関しては、上記の表を参照してください。
Optional myFontColor As Long = vbBlack
このように記載しています。
Optionalを付けた宣言した引数は、Functionプロシージャを呼び出す際に省略できます。
ただし、Optionalを付けた引数以降の引数にもすべてOptionalを付けなければなりません。
FormatConditions 作業手順 その4 すべてのフィールドを適用するには?
For Each ctl In myForm.Controlsで、すべてのフィールドに適用させます。
これも、以前に何度か、動画でも、ブログでも紹介しています。
そして、最後に、記載したコードを、フォームをロードする際に呼び出します。
FormatConditions 作業手順 その5 雑談
各箇所に、acとついています。
このacってなに?ってずーっと思っていました。
なにせ、師匠がいないので、ひたすら、写経をしていましたから。
acはACCESSの略ではないか?
このようなことが最近ネットで調べて分かりました。
どうでもいいことなのですが、初心者の時は、なにもわからないでコードをコピーしていました。
こんな感じだなと思っていました。
最初は、細かい点を気にしないことですね。
ここがポイント
何度も言っていますが、データベースの最大の敵は入力漏れです。もちろん、VBAや、ACCESSの機能で入力漏れを防止するほうが確実です。
しかし、エンドユーザーを考えて、遊び心がないと、受け入れは難しいかもしれません。
ACCESSの最大の敵は、ACCESSを利用したことがない人です。
この抵抗勢力と戦うためには、ACCESSは、Excelと同じように細工ができるということを教えてあげてください。
まとめ
ACCESSのフォーム上で作動させるコードは、短くて、カンタンです。
VBAを勉強している人は、ACCESSから勉強するのがいいかもしれません。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No207です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。