OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

命令を変数に応じて変化させるには?

  • すぐに回答を!
  • 質問No.218260
  • 閲覧数38
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 92% (51/55)

「テーブル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
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル12

ベストアンサー率 45% (210/459)

こんにちは。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

では、如何でしょうか?
お礼コメント
neo_gigantes

お礼率 92% (51/55)

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

その他の回答 (全2件)

  • 回答No.2
レベル12

ベストアンサー率 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のインデッ ...続きを読む
こんにちは。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 オブジェクト」
を参照してください。
補足コメント
neo_gigantes

お礼率 92% (51/55)

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

通常 

MsgBox(DATA)

・・・と書くところを、

COMMAND "Msg" & "Box(DATA)"

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

質問はこれで最後にしますので
よろしくお願いしますm(_ _)m
投稿日時 - 2002-02-15 15:12:31


  • 回答No.3
レベル12

ベストアンサー率 45% (210/459)

こんにちは。itohhといいます。 う~ん、たぶん出来ないと思います。 今まで、そういう特殊なことは、VBでやったことがないですねぇ。 お力になれず、申し訳ありません。 ...続きを読む
こんにちは。itohhといいます。

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

お力になれず、申し訳ありません。
お礼コメント
neo_gigantes

お礼率 92% (51/55)

いえ。大変助かりました。今までのどにつっかかっていたものはとれたような爽快感です。なお、アドバイスにしたがって試してみたところ、望んでいたことができました。
本当にありがとうございました。
投稿日時 - 2002-02-15 17:40:45
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ