• ベストアンサー

accessでデータをフォームに代入したい

accessでデータを作成済のフォームへ代入していきたいんですが VBAで作成した方がいいでしょうか? データ一覧は DBtb 番号   名称  ・・・・ 123    A   ・・・  215    B   ・・・ 1420    C   ・・・ ・     ・ ・     ・ ・     ・ 表フォーム (別フォーム) 番号 名称  番号 名称  番号 名称  番号 名称    ・  ・   ・  ・   ・  ・   ・  ・ 横に移動して、次の段にいくようにしたいのですが・・・ 選択クエリで抽出までしてるんですが どなたかおしえてください。

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.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     ・・・・ また、特定の行を指定して、データを表示させることも可能だと思います。 

siri1217
質問者

お礼

どうもありがとうございます。 無事に完成しました。2パターンの処理方法が結果的にできました。 またよろしくお願いします。

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

何を目的にこんなことをしたいのかが理解できませんが、 DBtbにあと三つくらいフィールドを足して、 まずひとつに連番をいれ、 もうひとつに行数番号をいれ (連番DIV行数) 最後のひとつに列数番号をいれ (連番MOD行数) それを元に別テーブルをつくる。 というのはどうでしょう。

siri1217
質問者

補足

アドバイスありがとうございます。 データを横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で別の作業も行ってて正直パニックってます。お手数ですがアドバイスいただけませんか?

関連するQ&A

  • アクセスのフォームに連番を表示するには?

    アクセス2000のフォームにおいて あるクエリーで作成した一覧に連番を つけたいのですが、どのような方法がありますか? フォームの中で抽出作業も行うので抽出の度に連番を ふり直したいのです。 レポートでは、簡単に『=1』入れて出来るのですが このようなことをフォームでしたいのです。

  • Accessのフォームのことで・・・

    Accessでフォームを作成したいのですが、 表形式で作成すると 問題番号 解答 1     A 2     B 3     A 4     C 5     A 6     C 上記のようなフォームは作成できるのですが、 問題番号 1 2 3 4 5 6 解答    A  B  A  C A  C と言うような、横並びのデータにしたいのですが、良い方法はないでしょうか? 今は、問題番号1を抽出してフォームを単票で作成し、また、問題番号2を抽出して、単票で作成し、それを問数分作成し、サブフォームとして、それぞれを並べて作成しているのですが、問数が25あり、もっといい方法あればと思い質問させて頂いています。 よろしくお願い致します。 (Accessのバージョンは2000~2003までOKです)

  • MS Access2000のフォームの表示方法について教えてください。

    図1、データが5000件位の製品テーブルがあります。 図1項目名の番号に対する名称等は別のテーブルにあります。 図1(テーブル) ----------------------------------------------------------  製品番号 | 予算番号 | 新製品番号 | ・・・ | ・・・ ----------------------------------------------------------  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310010 | 3230015 |  ・・・   | ・・・ | ・・・ ・      ・          ・      ・ テーブル図1を使ってクエリ又はフォームで、「材質番号」という項目を追加して図2のような感じでフォームを作成したいのです。 材質番号という項目はベースとなる図1テープル、図1クエリには無く、別テーブルになっています。 図2(フォーム) --------------------------------------- |製品番号|(製品名称テーブルより製品名) | --------------------------------------- --------------------------------------- |予算番号|(予算名称テーブルより予算名称)| --------------------------------------- ---------------------------------------- |材質番号|(材質名称テーブルより材質名称)| ---------------------------------------- なお、作成するフォームは各番号と名称を使用してのデータ検索のみで、入力はしません。 ちょっと質問がややこしくなってしまいましたので、簡単にやりたいことを言いますと、製品フォームにまったく関係の無い材質テーブルの材質番号を、製品フォームに表示させて、検索、閲覧したいということなのです。 Accessもですが、VB&VBA等初心者ですので、できれば使用しない方法がありましたらよろしくお願いいたします。

  • ACCESS フォームに自動連番をふる

    Accessでテーブル→クエリ→フォームと作成し、フォームから特定条件を指定して データを抽出しました。 その抽出したデータに自動連番をつける方法を教えてください。

  • Accessのフォームで・・・

    今日、職場で質問をされたのですが・・・。Accessのクエリでフォームを参照してデータを抽出すると言うのは可能でしょうか?または、Between演算子をフォームのテキストボックスに入力し、データを抽出することは可能でしょうか。

  • access 登録したデータを修正するフォーム

     accessで、データを登録するフォームを作成しました。次にそのデータを修正をするフォームを作成しようとしましたが、うまくいきません。 私の考えた修正方法例 1、「検索フォーム」を作成し、「登録ID」を入力させる。 2、クエリを利用し「登録ID」で抽出する。 3、クエリで得た修正対象のデータを「修正フォーム」に表示させる。 しかしこの方法では、「修正フォーム」を”閉じる”事と”修正(上書き)”が同時になってしまいます。(「修正フォーム」を開いて、間違えた入力をしてしまった場合、後戻りができない。) どのような手順で登録したデータの修正を行えばよいのでしょうか?

  • ACCESSのデータをEXCELに・・・

    Access97を使用しています。 ほぼ初心者に近いです。 会社で請求書のシステムを作成中です。 パラメータクエリを使用して例えば始まり「02/10/15」終り「02/12/15」と入力すればその期間の請求書データを抽出できるようになっています。 テーブルを増やしたくないのでそのパラメータクエリを使用して抽出したデータをExcelにエクスポートしたいのですが・・・いろいろ調べてみましたがわかりません。(モジュールに関数を作って、フォーム上でコマンドボタンを作成しそれをクリックすれば関数が動いてエクスポートと同時にExcelのファイルが出来上がるようにしたくて試みているのですが。) VBAでもかまいませんので出来る方法がありましたら教えてください。 よろしくお願いします。

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • アクセスフォームについて教えて下さい。

    アクセスフォームについて教えて下さい。 テーブル T_設備 設備管理No. 状態ID(フィールドプロパティ→コンボボックス) 分類ID(フィールドプロパティ→コンボボックス) 設備名 (その他項目あり) T_状態 ID  001  稼動中 002  停止中 T_分類 ID 001  専用機 002  マシニング T_設備、T_状態、T_分類はリレーションシップを組んでいます。 クエリ T_設備を元にクエリを作成 Q_設備 (全データを表示) 稼動中の設備を抽出 Q_稼働設備 停止中の設備を抽出 Q_停止設備 フォーム Q_稼働設備を元にフォームを作成 F_稼働設備一覧(表形式) Q_稼働設備を元にフォームを作成 F_稼働詳細(単票形式) 表形式のフォーム(F_稼働設備一覧)にコマンドボタン(コマンド1)を作成、 OPENFORMメソッドでクリックした行のデータを表示させるようにしました。 (単票形式のF_稼働詳細でデータの詳細を確認したい) Private Sub コマンド1_Click() DoCmd.OpenForm "F_設備詳細" Forms!F_設備詳細!設備管理No. = Forms!F_稼働設備一覧!設備管理No. End Sub しかし、コンボボックスの内容を変更(稼動中から停止中へ)し、フォームを閉じ、 再度F_稼働設備一覧を開くと、データがQ_停止設備へ移動しておらず、 コンボボックスも稼動中に戻ってしまっています。 コマンド1ボタンからではなく、直接F_設備詳細を開き、コンボボックスの停止中を 選択した場合は、データはQ_停止設備へ移動します。 OpenFormメソッドの記入に問題があるのでしょうか? 色々と試しましたが、解決できませんでした。 よろしくお願いいたします。   

  • アクセス2000VBA ADO パラメータクエリについて

    アクセス2000VBA ADO パラメータクエリについて フォーム1で得たデータをモジュールで定義した[hensu](String)に代入して、クエリ1(選択クエリ)の抽出条件として[hensu]を使用して、それによって得たデータをフォーム1で使用したいです。 フォーム1で[hensu]をパラメータクエリ?として定義するような文章(プログラム)が必要なだと思いますが、その例文(プログラム)を教えてください。 シロウト用に分かりやすくお願いします。

専門家に質問してみよう