プロが教えるわが家の防犯対策術!

フォームに表データとしてある、特定のフィールドのデータ(レコード数:1からN個)を新規に作成した配列A(I)に取り込みたいのですが、フィールドの繰り返しと配列A(I)の繰り返し方がわかりません。教えてください。

A 回答 (2件)

ダサイ例ですが、


フォームのコントロール名が特定の規則に従っているのなら、

コントロール名がHoge1~HogeNだった場合

Dim lngI As Long
Dim lngMyArray(N) as Long

For lngI = 1 To N
lngMyArray(lngI) = Me("Hoge" & LngI)
Next

フォームのコントロール名がバラバラなら、

Dim lngI As Long
Dim lngMyArray(N) as Long
Dim strControlName as String

For lngI = 1 To N
Select Case lngI
Case 1
strControlName = "Momotaro" '<-コントロールの名前
Case 2
strControlName = "Saru"
Case 3
strControlName = "Inu"
Case 4
strControlName = "Kiji"
      ・
      ・
      ・
Case N
strControlName = "Oni"
End Select

lngMyArray(lngI) = Me(strControlName)
Next
    • good
    • 0

ゴメンナサイ。


レコードが1~Nでしたね。

Dim lngMyArray() As Long ' <-データが数値の場合です。
Dim rstMySet As Recordset
Dim lngRecCount As Long
Dim lngI As Long

lngRecCount = Dcount("Hoge","MyTable")
ReDim lngMyArray(ingIRecCount)

Set rstMyset = CurrentDb.OpenRecordset("MyTable")

lngI = 1
Do Until rstMySet.EOF
lngMyArray(lngI) = rstMySet!Hoge
lngI = lngI + 1
rstMySet.MoveNext
Loop

rstMySet.Close

ちなみにDAOですから、ADOだとセッティングが多少異なります。
    • good
    • 0

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

関連するカテゴリからQ&Aを探す