- ベストアンサー
accessでデータをフォームに代入したい
accessでデータを作成済のフォームへ代入していきたいんですが VBAで作成した方がいいでしょうか? データ一覧は DBtb 番号 名称 ・・・・ 123 A ・・・ 215 B ・・・ 1420 C ・・・ ・ ・ ・ ・ ・ ・ 表フォーム (別フォーム) 番号 名称 番号 名称 番号 名称 番号 名称 ・ ・ ・ ・ ・ ・ ・ ・ 横に移動して、次の段にいくようにしたいのですが・・・ 選択クエリで抽出までしてるんですが どなたかおしえてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(DAOを使ったことがないのでなんですが) http://www.accessclub.jp/bbs3/0040/superbeg16270.html この辺を読んでみて、コントロール配列(まがい)について理解してください。 これを使うことによって、以下のような処理を行えば for intCt = 0 to a step 2 Me.Controls("テキスト" & intCt ).Value = tb![番号] Me.Controls("テキスト" & intCt+1 ).Value = tb![名称] tb.movenext next intCt フォーム上のコントロール(テキストボックス)に表示をさせることはできると思います。 (データの数とかコントロールの名前とかは詳しく考えていませんので適宜処理してください。) そもそもの問題はアクセスをエクセルのように使おうとしていることにあると思います。 私がこの処理をしなくてはいけない理由があったらこのように処理します。 元々のテーブルに列を加えるか、新規のテーブルを作るかはどちらでもかまいませんが、 下のようなテーブルを作ることによって、 連番 行数 列数 番号 名称・・・・ 1 1 1 123 A 2 1 2 215 B 3 1 3 1420 C 4 1 4 365 D 5 2 1 1244 E ・・・・・ これができたら、 DAOやADOでこのようなテーブルにデータを入れても良いですし、 クエリによってこのようなテーブルにしていくこともできます。 行数 番号1 名称1 番号2 名称2 番号3 名称3 番号4 名称4 1 123 A 215 B 1420 C 365 D 2 1244 E ・・・・ 3 ・・・・ また、特定の行を指定して、データを表示させることも可能だと思います。
その他の回答 (1)
- ShowMeHow
- ベストアンサー率28% (1424/5027)
何を目的にこんなことをしたいのかが理解できませんが、 DBtbにあと三つくらいフィールドを足して、 まずひとつに連番をいれ、 もうひとつに行数番号をいれ (連番DIV行数) 最後のひとつに列数番号をいれ (連番MOD行数) それを元に別テーブルをつくる。 というのはどうでしょう。
補足
アドバイスありがとうございます。 データを横4、縦20ほどの表(フォーム)に上から右に4つ続いて下にいきまた横にと順番にいれていくフォームを作成中なんです。データから呼び出して表示させるのです。 現在、フォームを開いた時点での、イベントとして、VBAを作成中です。データをセットして、表示させればいいんですが、以前データを書き換えたりのVBAを作成してるんですが、なかなか、うまくいきません・・・ Dim db As DAO.Database Dim tb As DAO.Recordset Set db=CurrentDb Set tb=db.OpenRecordset("OOtb",dbOpenDynaset) Dim kazu As Integer kazu=Dcount("番号","OOtb") 回数=kazu/4 For 移動 1 To 回数 Step 1 tb.MoveNext For 呼び出し=1 To 4 step tb.Addnew tb![番号]=Forms![表].[1] tb!MoveNext Next 呼び出し Next 移動 Forms![表].Requery End Sub なかなか、思い浮かびません。エクセルVBAで別の作業も行ってて正直パニックってます。お手数ですがアドバイスいただけませんか?
お礼
どうもありがとうございます。 無事に完成しました。2パターンの処理方法が結果的にできました。 またよろしくお願いします。