• 締切済み

AccessVBA

Accessのシステムを作っています。 Excelファイルを取り込みたいのですが、中身は表形式になっています。 この表を取り込みそのままテーブルにします。 これと取り込み表のA3から最終行までのキーとなるコードをいれた別テーブルの作成。 次にのテーブルを元に、 A1クエリ(一行目だけを取り込んで店名)とB1クエリ(取り込み表の2行目以下最終行商品)を作成する。 2つのクエリと1つのテーブルを元に、 形を変えた表をCSVファイルにして作成したいと思っています。 どのように、コードを書いたらいいのでしょうか? 教えて下さい。 1.元の取り込み表 販売店名        a店   b店  c店 商品コード/店コード  a0111 b0112  c0113 a301z 1 1 b501z 2 3 c101z 4 5 2.出力したい結果 出荷日 販売店名 販売店コード 商品コード  数量  到着予定日 12/1   a店    a0111  a301z 1 12/5 12/1   a店    a0111  c101z 4 12/5 12/1   b店    b0112  b501z 2 12/5 12/1   b店    b0112  c101z 5 12/5 12/1   c店    c0113  a301z 1 12/5 12/1   c店    c0113  b501z 3 12/5 出荷日・到着予定日は、出力後に手入力します。 以上となります。 宜しくお願い致します。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

Accessに取り込んで使えるようなテーブルにするためには Excelの表は[リスト]と呼ばれる形に整形されていなければなりません アップされた表ですと1行目に販売店名、2行目が店コード3行目以下が数量ですから これをそのまま取り込んでも使い物になりません このままの表でいくのなら2つに分けて取り込みましょう 1つ目 1行目と2行目の店名と店コードだけをコピーし縦横を入れ替えて貼り付け項目名をつけます 店コード 店名 a0111   a店      b0112   b店 c0113   c店 2つ目 2行目以下の店コード商品コード数量 商品コード   a0111  b0112  c0113 a301z       1        1 b501z           2    3 c101z       4    5 2つ目はこれでもまだAccess(データベース)で使える形になっていないので Accessに取り込んでから ユニオンクエリを使ってデータベースで使える形のテーブルに組み替えます select "a0111" as 店コード,商品コード,a0111 as 数量 from 2つ目のテーブル union all select "b0112" as 店コード,商品コード,b0112 as 数量 from 2つ目のテーブル union all select "c0113" as 店コード,商品コード,c0113 as 数量 from 2つ目のテーブル 以上で準備完了です 出荷日と到着予定日が全て同じなら出力したい形のものはクエリで作れます 1つ目のテーブルとユニオンクエリをクエリデザインビューに取り込み 店コードで結合 >出荷日 販売店名 販売店コード 商品コード  数量  到着予定日 を取り出すクエリを作成します。 出荷日と到着予定日はクエリの式フィールドとして作成すればいいでしょう 出荷日と到着予定日がいろいろの場合は上のクエリをテーブル作成クエリに変えて 一度テーブルに落としそのテーブルに入力してやることになります