• ベストアンサー

VBAでフィールドを配列読み

OS Windows2000 ACCESS 2000 レコードが、住所、名前、DATA1・・・・DATA100 のような時 Set ws = DBEngine.Workspaces(0) Set db = ws.Databases(0) Set qd = db.CreateQueryDef("", Sql) Set rs = qd.OpenRecordset() DATA1~DATA100を取得するのに me.text1.text = rs!data1 me.text2.text = rs!data2 . . me.text100.text = rs!data100 上記のようすると大変なので 配列のように扱う方法は、ないでしょうか? 宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

DATA1・・・DATA100は質問上こういう連番付きな名前にしてあるだけかな~と思ったのですが違いますか? >レコードが、住所、名前、DATA1・・・・DATA100 で「SELECT *」でとって来たと仮定すると、 rs.Fields(0) : 住所 rs.Fields(1) : 名前 rs.Fields(2) : DATA1 rs.Fields(3) : DATA2 ・・・ rs.Fileds(101): DATA100 と、数値で取れるみたいなので、 ループにはrs.Fields("DATA" & i) よりも rs.Fields(i+1)がよろしいかと思います。 もちろんDATA1・・・DATA100が実際の名前ならば、 rs.Fields("DATA" & i)で良いと思います。

boo3
質問者

お礼

時間が無いのに、はまってましたぁ(T.T) ありがとうございます。

その他の回答 (2)

回答No.2

間違えました ×Me.Controls("test" & i).text = rs.Fields("data" & i).Value ↓ ○Me.Controls("text" & i).text = rs.Fields("data" & i).Value 「text」プロパティ?「Value」プロパティ使用したほうが良いような...

回答No.1

Dim i As Integer For i = 1 To 100 Step 1   Me.Controls("test" & i).text = rs.Fields("data" & i).Value Next こんな感じですかね

関連するQ&A