- ベストアンサー
命令を変数に応じて変化させるには?
- テーブル1のデータフィールドに格納されているデータを変数に格納したいが、ループの終端まで同じ値しか格納できない。
- 変数に応じた命令を一つ一つ書くのではなく、Countの値に応じて命令を変化させたい。
- VBでの対処方法についてのご指導をお願いします。
- みんなの回答 (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 では、如何でしょうか?
その他の回答 (2)
- itohh
- ベストアンサー率45% (210/459)
こんにちは。itohhといいます。 う~ん、たぶん出来ないと思います。 今まで、そういう特殊なことは、VBでやったことがないですねぇ。 お力になれず、申し訳ありません。
お礼
いえ。大変助かりました。今までのどにつっかかっていたものはとれたような爽快感です。なお、アドバイスにしたがって試してみたところ、望んでいたことができました。 本当にありがとうございました。
- itohh
- ベストアンサー率45% (210/459)
こんにちは。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
お礼
すばやいご回答ありがとうございます!!! 配列を使った方法があるとは知りませんでした! あの、ついでにお聞きしてよろしいでしょうか? 例としてあげましたのは、変数に読みこむフィールドを「データ」に固定し、レコードを順々に変えていましたが、今度はレコードは固定で、フィールドを変化させたいのです データ1、データ2、データ3と複数フィールドがあったとして、それを変数に順々に入れていきたいのです。それをCaseなどを使わないで変化させるにはどうすれば良いのでしょうか? ソースまで例示して頂かなくても、ヒントとなるキーワードを教えて頂ければどうにかなるかもしれません。 よろしくお願いします。m(_ _)m