「テーブル1」というテーブルの「データ」というフィールドにA~Jまで10個データが格納されていたとします。
このデータを変数 DATA01~DATA10 にそれぞれ格納したいと思っています。

下記ソースでは、レコードの終端までループしても、DATA01に「テーブル1」の1レコード目の値、"A"しか格納できませんが、これをDATA02に"B",DATA03に"C"・・・と順々に格納するにはどうしたら良いのでしょうか?

それぞれの変数に応じた命令を一つ一つ書くのではなく、Countの値に応じて命令そのものを変化させて行いたいと思っています。他の言語ではわかるのですが、VBではどうするのかわかりません。
ご指導程お願い致します。

Private Sub テスト_Click()
  Set DB = CurrentDb
  Set RS = DB.OpenRecordset("テーブル1")
  Count = 1
  Do Until RS.EOF
   DATA01 = RS!データ
   RS.MoveNext
   Count = Count + 1
  Loop  
End Sub

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんにちは。

itohhといいます。

配列にするのではいけないのでしょうか?

Dim Data(10) As String

Count = 0
Do Until RS.EOF
 DATA(Count) = RS!データ
 RS.MoveNext
 Count = Count + 1
Loop

配列がダメなときは。

Count = 1
Do Until RS.EOF
 Select Case Count
 Case 1
  DATA01 = RS!データ
 Case 2
  DATA02 = RS!データ
  :
  :
  :
 End Select
 RS.MoveNext
 Count = Count + 1
Loop

では、如何でしょうか?
    • good
    • 0
この回答へのお礼

すばやいご回答ありがとうございます!!!
配列を使った方法があるとは知りませんでした!
あの、ついでにお聞きしてよろしいでしょうか?
例としてあげましたのは、変数に読みこむフィールドを「データ」に固定し、レコードを順々に変えていましたが、今度はレコードは固定で、フィールドを変化させたいのです データ1、データ2、データ3と複数フィールドがあったとして、それを変数に順々に入れていきたいのです。それをCaseなどを使わないで変化させるにはどうすれば良いのでしょうか?
ソースまで例示して頂かなくても、ヒントとなるキーワードを教えて頂ければどうにかなるかもしれません。
よろしくお願いします。m(_ _)m

お礼日時:2002/02/15 13:50

こんにちは。

itohhといいます。

う~ん、たぶん出来ないと思います。
今まで、そういう特殊なことは、VBでやったことがないですねぇ。

お力になれず、申し訳ありません。
    • good
    • 0
この回答へのお礼

いえ。大変助かりました。今までのどにつっかかっていたものはとれたような爽快感です。なお、アドバイスにしたがって試してみたところ、望んでいたことができました。
本当にありがとうございました。

お礼日時:2002/02/15 17:40

こんにちは。

itohhといいます。

select データ1, データ2, データ3 from テーブル1
という形でデータ検索した場合、
RS!データ1
RS!データ2
RS!データ3
と使用することが多いと思いますが、
RS.Fields(0)  <--データ1という意味
RS.Fields(1)
RS.Fields(2)
としても参照できます。

ですから、0~2のインデックスのところをCountにして見てください。

詳しいことは、MSDNライブラリの「ADO APIリファレンス」「Field オブジェクト」
を参照してください。

この回答への補足

ありがとうございます!まだ試していませんが、おそらく上手く行くと思います。本当にありがとうございます。
ところで、本当に度々申し訳ないのですが、
私が以前覚えた他の言語では

通常 

MsgBox(DATA)

・・・と書くところを、

COMMAND "Msg" & "Box(DATA)"

としても同じ動作をするというような便利な関数がありました。(上記はあくまで例でCOMMANDは架空の関数です)
VBにはそういった関数(上記の例でいうとCOMMAND)はないのでしょうか?
あるか、ないか、それだけでも結構です。

質問はこれで最後にしますので
よろしくお願いしますm(_ _)m

補足日時:2002/02/15 15:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報