• 締切済み

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つ目のテーブルとユニオンクエリをクエリデザインビューに取り込み 店コードで結合 >出荷日 販売店名 販売店コード 商品コード  数量  到着予定日 を取り出すクエリを作成します。 出荷日と到着予定日はクエリの式フィールドとして作成すればいいでしょう 出荷日と到着予定日がいろいろの場合は上のクエリをテーブル作成クエリに変えて 一度テーブルに落としそのテーブルに入力してやることになります

関連するQ&A

  • ACCESS テーブルのRENAME

    お力お貸し下さい!! Aテーブル(作成日5/5)商品コード・作成日・数量 Bテーブル(作成日5/6)〃 Cテーブル(作成日5/7)〃 と、3つのテーブルがあります。 クエリで商品テーブルと3つのテーブルを結び、日々の数量の変化を表にしたいと思っています。 DoCmd.Renameを使い、 BテーブルをAテーブルへ CテーブルをBテーブルへ 最新の情報をCテーブル(テーブル作成クエリ)とし、 商品と結んだクエリをデザインで開いたら、 Aテーブルが2つ(一つはリンクなし) Bテーブルが2つ(〃)と、開けないものになってしまいました。 (FROM句で~Aテーブルを繰り返すことは出来ません)とエラー。 きっと、テーブル名を変えた段階で、クエリに反映してくれている?せいだと思いますが(手動でやってもそうなので) なにか良い方法は無いでしょうか? アイデアが浮かばず、また技術が伴わず困っています。。

  • アクセスについて

     *テーブルB    *テーブルA      店番←------販売店番号       店名       商品番号                 販売金額    *テーブルC             商品番号----→商品番号            詳細       商品名            販売日      手数料 リレションシップをしております。 クエリA 店名-商品番号-販売金額-商品名-詳細-手数料金額-販売日 といったクエリをつくりました。 ---------OKウェーブさんからの回答--------------- 「商品」テーブルに 店名 - 商品 - 金額 A店 - 宝石 - 1000 B店 - 時計 - 2000 A店 - 宝石 - 3000 B店 - バック - 4000 ・・・ と格納されているとします で、これらを集計する為に使用するものは、選択クエリ(集計)を使用します 下記にクエリのSQL文を記述します SELECT 商品.店名, Sum(IIf([商品名]="宝石",[金額],0)) AS 宝石合計, Sum(IIf([商品名]="その他",[金額],0)) AS その他合計, Sum(商品.金額) AS 合計, Sum(IIf([商品名]="バック",[金額],IIf([商品名]="時計",[金額],0))) AS 合計A, Sum(IIf([商品名]="その他",[金額],IIf([商品名]="宝石",[金額],0))) AS 合計B FROM 商品 GROUP BY 商品.店名 ORDER BY 商品.店名; ------------------------------------------------- どこの画面でSQL文を記述すえばよろしいのでしょうか。 どこかわかりやすいHPはないでしょうか お願いします。

  • ACCESSのクエリに行番号をつける

    Microsoft ACCESS 2003で、簡単な以下の様なクエリを作っています。 (1) 元のテーブル  売上年月日/販売先顧客名/商品名/数量/価格 (2) 売上年月毎価格集計クエリ  売上年月(グルーピング)/商品名(グルーピング)/数量(集計)/価格(集計)  このクエリが、以下の様に出るとします。  例1)  2009/09 商品A 50 25,000  2009/09 商品B 20 12,000  2009/09 商品C 33 45,000  ・  ・  2009/10 商品A 50 25,000  2009/10 商品B 20 12,000  ・  ・  このクエリの先頭に、以下例2の様に、年月毎にブレークする「行番号」をつけたいのですが、どの様にすればいいか見当がつきません。  行番号をつけられる(かつ、特定の条件でブレークして、行番号を"1"から振り直す)様な関数、関数が無ければやり方等、わかる人がおられたらお助け下さい。  よろしくお願いします。  例2)  1,2009/09 商品A 50 25,000  2,2009/09 商品B 20 12,000  3,2009/09 商品C 33 45,000  ・  ・  1,2009/10 商品A 50 25,000  2,2009/10 商品B 20 12,000  ・  ・

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • クエリで2つずつ取り出す方法について

    毎度お世話になっております。 WindowsXP、Access2003を使用しております。 以下のテーブル1があります。 [テーブル1] CODE   日付  A    20080101  A    20080102  A    20080103  B    20080101  C    20080101  C    20080103  C    20080104 CODEごとに、日付の若いものから2行ずつ、 1つしかないものは1行のみ抽出したいのです。 [希望する結果] CODE   日付  A    20080101  A    20080102  B    20080101  C    20080101  C    20080103 これはクエリで可能なのでしょうか。 ご教授よろしくお願いします。

  • エクセル vbaでの相談です

    エクセルでの質問です。 販売管理表を作りたいと思います。 sheet1を商品マスター表とし、下記の見出しがあって A1 JANコード(上一桁4からの番号で13桁) B1 商品コード (14桁) C1 商品名 D1 価格 以下A2行以降、A1行の見出しを元に商品詳細があるとします。 sheet2の下記のA1行を見出しとし、A2行から販売実績をユーザーフォームを使って入力していきたいと思います。 A1 JANコード B1 商品コード C1 商品名 D1 価格 E1 販売番号 フォームを作成し、入力窓に JAN、商品コードのいずれかを入力すると、他の入力窓にsheet1の商品マスター表から該当する商品名、価格を自動入力し登録ボタンを押すと、sheet2の該当セルに反映されるということはできますでしょうか? そして異なる商品のまとめ買いの件数も知りたいので、フォーム上で複数アイテム登録できるようにし、販売番号で件数を管理したいのですが、そちらも可能でしょうか? 販売番号も自動で通し番号が入るようにしたいです。わかりにくい文章で申し訳ありません。ご教授の程、よろしくお願い致します。

  • ExcelVBAで二つのデータを比較して違う場合は別シートへ

    こんばんは! Sheet1「元データ」    A   B    C   D   コード 商品  店名  納入日   5 0360 メロン  D店 4/1 1 0001 みかん  A店  3/1  6 0112 きんかん  Sheet2「最新データ」   A   B    C   D コード 商品  店名  納入日  1 0001 みかん  A店  3/1 5 0360 メロン  D店 2/1 6 0112 きんかん  11/2 とデータがあるときに、納入日が元データと最新データで異なっている場合は、Sheet3へデータを写したいばあいは、どの様にすればよいのでしょうか?

  • アクセスのクエリについて

    アクセスのクエリにおいて   店コード、店名  変更日付  備考 1     A店  2004/1/1   2      B店  2004/2/1 3      C店  2004/5/1 1      A店  2005/12/17 2      B店  2005/11/1 3      C店  2005/10/1 上記のようなクエリで店名A店B店C店それぞれの最新の日付を抽出したいのですがわかりません。 ご回答よろしくお願い致します。

  • エクセル フィルタオプションでの抽出

    使用しているデータベースから、必要な項目列と行のみ抽出し、いくつかの別ファイルに引用したいと思っています。 抽出元のマスターデータベースは下記のような形式で、   |A   |B   |C   |D   |E   |…S程度   |出荷先 |日付  |コード |商品名 |単価  | ____________________________ 1 |A社  |4/5 |商品由来|AAA |3000| ・ ・ 5 |B社  |4/5 |同上  |BBB |2800| ・ ・ 28|A社  |4/6 |同上  |CCC |1500| ・ ・ 45|C社  |4/6 |同上  |AAA |2950| 上記簡素化してありますが、出荷先と日づけごとに 複数の商品や単価の行が入る形になります。 抽出先は、 1)特定の縦列のみすべて引用したいものが複数  (A表:ABE列の表・B表:ACDE列の表など)  (今後抽出したい列が変わる可能性あり) 2)特定の列のうち、特定の行を指定して引用したいもの の、2種類があります。 マスターは日々増えてゆきますが、抽出先の列項目は固定のため、 作業用の列を行を追加し、作業行用部分で抽出表の列を指定 作業列用で行を指定、のように出来ないでしょうか(下記)      |A   |B   |C   |D   |E   | 作業行列 |出荷先 |日付  |コード |商品名 |単価  |   行用→|AB  |A   |B   |B   |AB     ↓列用 ____________________________   |1 |A社  |4/5 |商品由来|AAA |3000|   |・   |・ 1 |5 |B社  |4/5 |同上  |BBB |2800| 1 |・ 1 |・   |28|A社  |4/6 |同上  |CCC |1500| 実作業を行うのはエクセル超初心者の方になるので、 範囲指定等をかけなおしたり、動作不備の対応が難しい状態です。 作成後は自身の手を離れてしまうので、 極力マクロやピボットテーブルを使わず、関数で指定をかけ、 ファイルをアクティブにした時自動更新出来るような案はないでしょうか。 ややこしくてすみません。 考えすぎて複雑にしてしまっている気もしますが、どうぞお力をお貸し下さい。 宜しくお願いします。

  • アクセスのクエリでの抽出方法

    お世話になります。 アクセスについて教えてください。 うまく質問できないんですが… 出荷元と運搬先は、それぞれ別にテーブルを作っています。 出荷元 → 運搬先    抽出 ---------------------------------- A    →   B      必要 B    →   A      必要 C    →   B      不要 出荷元か運搬先に A が含まれている物は、すべて抽出 このようなレポートが欲しいので クエリでの抽出方法を教えてください。 お願いします。  

専門家に質問してみよう