- ベストアンサー
ACCESSの変数で
超初心者です。お世話になります。 VBAの変数について教えて下さい。 例えば変数1~変数10まであるとします。 そこに氏名1~氏名20までを代入します。 そのとき、一つずつしていると、効率が悪いので、 For Next を使いたいと思います。 For 繰り返し = 1 to 10 で、変数の数字の部分を繰り返しで増やしていこうと思ったのですが、 "変数"と"繰り返し"のくっつけ方がどうも上手くできません。 どのようにしたらよいのでしょうか? あと、このように、Me.○○の部分も変数と変数をくっつけたいのですが、無謀でしょうか? わかりにくい説明で申し訳ありませんが、よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
配列ですね。具体的にはこんな感じでコーディングします。 ****************************************************** Option Base 1 ' 既定の配列のインデックス番号を 1 に設定します。 Function aaaa() Dim namae(20) As String '名前を配列変数に宣言する Dim I As Integer 'ループカウンタ For I = 1 To 20 namae(I) = I & "さん" 'とりあえず1.2.3....に「さん」を付けて名前という事にしときましょう Next For I = 1 To 20 Debug.Print namae(I) 'デバックウインドに結果を表示することにしときます。CTRL+Gで確認できます。 Next End Function ****************************************************** ちなみにMe.○○についてはコントロール配列を使用するのですが、VBでは出来ますが、Accessでは使えなかったように思います。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
>例えば変数1~変数10まであるとします。 そこに氏名1~氏名20(10の誤り?)までを代入します。 --->普通はこうはしません。 多分言いたいとは Sub test01() Name = Array("山田", "山川", "大田", "岸田") For i = 0 To 3 MsgBox Name(i) Next i End Sub 上記がヒントになるのではと推測します。 Accessのテーブルに既に名前フィールドがあるのなら(模式コードは) (オープン処理) For i=1 to 10 (レコードを1つ読む) name(i)=テーブル名!名前 (レコード)MoveNext next i
お礼
以前もお世話になりましたね。ありがとうございます。 ACCESSを始めたばかりで分からない事ばっかりです(^^ゞ 今後ともよろしくお願いします。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 変数の場合は、No.1の人が言うように配列を使います。 Me.○○ というのはフォーム上のコントロールのことですね。 フォーム上のコントロールは、 Me.Controls(コントロール名) という風に指定出来ます。 ループの変数iを付けるなら、 Me.Controls("氏名" & i) という感じになります。
お礼
いつも、わかりやすい説明をありがとうございますm(__)m コントロール、指定できました。 ありがとうございました。 これからもよろしくお願いします(^^ゞ
- yoshisuke
- ベストアンサー率65% (19/29)
こういった時、私は「配列」を良く使いますよ。 詳しくはHELPを見てみてください。
お礼
配列ですね。 1つ勉強になりました。 ありがとうございました。
お礼
とてもわかりやすい説明で、助かりました。 ありがとうございました。うまくできました(^o^) 何しろ、超初心者なもので(^^ゞ これからもよろしくお願いします。