Controlとワイルドカードで一括処理

こんにちは。伊川(@naonaoke)です。

今回は、ACCESSで、フィールドの一括処理の方法を紹介します。

以前にExcelで、ユーザーフォームの一括処理を紹介しました。

ループを利用して、一括処理をするコードです。

詳しくは下記の記事を参照してください。

For i = 1 To 10

Controls(“TextBox” & i).Value = Cells(i + 1, 1).Value

Next i

上がサンプルコードです。

Textbox1~Textbox10の数字の部分を、変数iに置き換えて、ループさせるやり方です。

今回は、このような処理をACCESSでどのように行うのかということを解説します。

このブログはこんな人にお勧め

今回のテーマ
  • ACCESSでフォームを作成したい人
  • ACCESSのフォームで処理効率を向上させたい人
  • ExcelのVBAをACCESSに応用させたい人

このブログを、読み終わるころには・・・・

ワイルドカードと、Controls コレクションの連係プレイに感動すると思います。知識は、断片的なものであってはならないのです。

これもある意味、ACCESSとExcelの連携なのかもしれません。

データベースの基本

私は、データベースは、基本的には、すべての項目にデータを入力するべきだと思います。

なぜかというと、データの抽出が楽だからです。

Nullなのが、空白なのか、という区別ができなくて、どれだけ苦労したことかわかりません。

我武者羅に入力するわけではありません。

基本、空白になる可能性のあるものは、何かの文字を入力しておくことをお勧めします。

Controlsとワイルドカード 作業手順 その1 データベース確認


社員名簿を作成します。

その項目の中に、趣味、特技などのフィールドがあると思います。

結構、この辺は、記載しない人が多いです。

その手間を省きます。

Controlsとワイルドカード 作業手順 その2 入力フォームを作成

入力フォームの作成に関しては、過去に紹介済ですので、割愛します。

もし、わからなければ、下記の記事を参考にしてください。

フォームヘッダー部分にVBAのコード仕込むのですが、その前に細工が必要です。

Controls コレクションを利用するために、一括処理をしたい、フィールドにフラグを付けます。


フィールドの名前を変更します。

趣味から、txt趣味に変更します。

同じく、特技をtxt特技へ変更します。

これで、細工をしたいフィールドにフラグを立てることができました。

あとは、VBAで処理をします。

Controlsとワイルドカード 作業手順 その3 VBAで処理

  • レコードの保存
  • 新しいでコードへ移動
  • 一括処理するフィールド

この順番で記載します。

このコードのすごいところは、特に無と入力したいフィールドが増えたとしても、

フィールドの名前に、txtをつけることで、同じ処理がされます。

Like “txt*”の記載方法が素晴らしいですね。

このブログを書いていて思いついたこと

以前、ブログで入力漏れを撲滅する場合のコードを紹介しました。

その時は、入力漏れを防止したいフィールドが20個ある場合は、20個分のコードが必要と記載しました。

しかし、それって間違いじゃね?と思いました。

入力漏れを防止したいフィールドにフラグを立てておけば、一括処理ができるのではないか?

なので、早速、コードを書いてみました。



ワイルドカードで、hiが先頭についているフィールドを対象にしました。


このように作動しました。

では、すべてのコードを合わせると下記のようになります。


入力漏れのコードのコメントは省略しています。

しかし、下のコードと比べてみるとやっていることは同じです。

ぜひ、参考にしてみてください。

データベースの天敵は、入力漏れです。

ここがポイント

ここがポイント
Function8.png
このブログを書いている途中で、入力漏れ防止のコードを一括処理できるのではないか?この仮説の元に、コードを記載したところ、作動しました。この仮説を立てるのが大切です。その仮説が、過去の知識、過去の疑問とつながったときの喜びは計り知れません。

動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

今回は、偶然に、一括処理のコードから入力漏れ防止のコードにつながりました。

みなさんも、過去に買った書籍などを、改めて確認したとき、思いもよらぬ発見があるかもしれません。

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

今回のサンプルファイルは、No194です。

サンプルファイルを購入希望の方はココをクリック
サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事