- ベストアンサー
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 上記のようすると大変なので 配列のように扱う方法は、ないでしょうか? 宜しくお願いします
- みんなの回答 (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)で良いと思います。
その他の回答 (2)
- how-do-you-do
- ベストアンサー率56% (59/104)
間違えました ×Me.Controls("test" & i).text = rs.Fields("data" & i).Value ↓ ○Me.Controls("text" & i).text = rs.Fields("data" & i).Value 「text」プロパティ?「Value」プロパティ使用したほうが良いような...
- how-do-you-do
- ベストアンサー率56% (59/104)
Dim i As Integer For i = 1 To 100 Step 1 Me.Controls("test" & i).text = rs.Fields("data" & i).Value Next こんな感じですかね
お礼
時間が無いのに、はまってましたぁ(T.T) ありがとうございます。