#035 For〜Nextでのフィールドやコントロールの参照をシンプルに VBA

VBAを使ってテーブルのフィールド値を参照したりフォームのコントロールのプロパティ値を参照したりする場合、その方法にはいくつかの記述方法があります。例えばフィールド値の場合、次の4つの方法ではいずれも同じ値が返されます(ここで、変数rstはRecordsetオブジェクト、フィールド名は"data"、"data"は一番先頭のフィールドとします)。
  1. rst!data
  2. rst("data")
  3. rst![data]
  4. rst(0)
一般に1番目の記述方法が最も処理が速いとはされていますが、複数の似たような名前の、特に連番となっているようなフィールドやコントロールをFor〜Nextなどのループで参照する場合には、2番目の記述方法を使うことによってコードの量を相当減らすことができます。

例えば、フィールド名が"1日"、"2日"、"3日"、・・・・・・、"30日"、"31日"とある場合、
Debug.Print rst!1日
Debug.Print rst!2日
Debug.Print rst!3日
       ・・・・
       ・・・・
&Debug.Print rst!30日
Debug.Print rst!31日
ではなく、
For dd = 1 To 31
  Debug.Print rst(dd & "日")
Next dd
とすることができます。

このように、同じ値を得るにもその記述方法のいくつかのバリエーションを知っておくことによって、ある場面では大きなメリットとなりますので、ぜひ参考にしてみて下さい。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved