「テーブル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
No.1ベストアンサー
- 回答日時:
こんにちは。
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
では、如何でしょうか?
すばやいご回答ありがとうございます!!!
配列を使った方法があるとは知りませんでした!
あの、ついでにお聞きしてよろしいでしょうか?
例としてあげましたのは、変数に読みこむフィールドを「データ」に固定し、レコードを順々に変えていましたが、今度はレコードは固定で、フィールドを変化させたいのです データ1、データ2、データ3と複数フィールドがあったとして、それを変数に順々に入れていきたいのです。それをCaseなどを使わないで変化させるにはどうすれば良いのでしょうか?
ソースまで例示して頂かなくても、ヒントとなるキーワードを教えて頂ければどうにかなるかもしれません。
よろしくお願いします。m(_ _)m
No.3
- 回答日時:
こんにちは。
itohhといいます。う~ん、たぶん出来ないと思います。
今まで、そういう特殊なことは、VBでやったことがないですねぇ。
お力になれず、申し訳ありません。
いえ。大変助かりました。今までのどにつっかかっていたものはとれたような爽快感です。なお、アドバイスにしたがって試してみたところ、望んでいたことができました。
本当にありがとうございました。
No.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 オブジェクト」
を参照してください。
この回答への補足
ありがとうございます!まだ試していませんが、おそらく上手く行くと思います。本当にありがとうございます。
ところで、本当に度々申し訳ないのですが、
私が以前覚えた他の言語では
通常
MsgBox(DATA)
・・・と書くところを、
COMMAND "Msg" & "Box(DATA)"
としても同じ動作をするというような便利な関数がありました。(上記はあくまで例でCOMMANDは架空の関数です)
VBにはそういった関数(上記の例でいうとCOMMAND)はないのでしょうか?
あるか、ないか、それだけでも結構です。
質問はこれで最後にしますので
よろしくお願いしますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのマクロでワードのテキス...
-
教えて下さい
-
プログラミング python pandas ...
-
【エクセル】測定時間がバラバ...
-
VBA 毎日取得するデータを順番...
-
配列でデータが入っている要素...
-
LoadPictureしたイメージデータ...
-
ADOを使用してExcelデータをAcc...
-
30Gも使えるはずなのに全然ネッ...
-
シリアル通信でのデータ受信
-
[エクセル]データの個数が2番目...
-
文字の上下反転処理
-
C#でヒストグラムの作り方
-
Matlab:plotで特定の値だけをプ...
-
ActiveReportについて
-
ディベートに関して質問です。...
-
[VBA] CountIfに変数を使いたい
-
エクセルについて
-
MATLAB:データの総数を数えるに...
-
テーブル2列目に2番目のデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
Excelのマクロでワードのテキス...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
VBAを使ってOutlookメール本文...
-
Accessで該当データにフラグを...
-
合計3TBのデータのハッシュ値を...
-
シーケンサにパソコンからアク...
-
S9タイプからXタイプにデータ...
-
カンマからスラッシュに
-
VBAでシートからコンボボックス...
-
VBA 毎日取得するデータを順番...
-
ビットシフトについて
-
ユーザーフォームのテキストボ...
-
EXCELVBAでSQLserverからデータ...
-
特定のデータの抽出方法を教え...
おすすめ情報