• 締切済み

Access クエリについて

Accessのクエリについて質問です。 やりたい作業は簡単にいうと、以下のとおりです。 (1)品物データマスタ(テーブル) 品番   品物名称 0001    りんご 0002    みかん 0003    ぶどう 続く (2)注文品(テーブル) 顧客番号  顧客名   品番   品物名称   注文数 5001     アサノ    0001    りんご      2 5001     アサノ    0003    ぶどう      1 5002     イトウ    0001    りんご      4 5002     イトウ    0002    みかん      3 つづく (3)作りたい一覧表(最後は一覧表をexcelに戻したいなと) 顧客毎に品物一覧表に注文数を反映させたい。 品物一覧表にはすべての品名が記載されており、該当品の横に注文数がくる。 *はじめはexcelでやれるかなと思ったのですが、Accessのほうがいいのかなと思い、挑戦しています。説明不足の点がありましたらご指摘ください。 よろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

質問は尻切れみたいでよく判らない。 まずアクセスのテーブルとクエリの役割がよくわかってないのでは。 アクセスは (1)根幹情報ーーーこの場合では 注文について 誰が 顧客 何を 品物 いくら 注文数 をテーブルに記録する (2)付帯情報ーわかりやすくするための対応情報 コードとー内容の対応が多い   顧客番号ー顧客名   品番ー品物名称 などを整理して考えること。 注文品テーブルはそういう意味ではそぎ落とした情報ではない。 テーブルは情報を結合して注文品テーブルのようなのはクエリで作ると考えること。 その際テーブル作成入力になくてはならない解説的名称(顧客名y品物名称など)の取り扱いは、入力原書などとの慣例で考慮しないとならない。 ー 注文データを、 顧客別ー品物別   にまとめたいということか。 注文データはどういう形式か書かないで質問して無いか。 最低ではコード(顧客番号と品番)と注文数量で良いのだが、冗長性(顧客名や品物名)を持たせる場合もある。 ーーー まずアクセスの本なりをよく読むこと。特にテーブルの作り方の部分を。 質問の回答からアクセスの学習を始めようというのは無為がある。

77panda
質問者

お礼

ご指摘ありがとうございました。 顧客情報管理や○○にあう条件を抽出するなど、簡単な部分は作業できるのですが、 今回自分が思い描いている表をつくるとなるとVBAを作成する際の考え方が勉強不足のため、 要点不足の質問になってしまったかと思います。 もう一度、入門書を読み直してみます。 ありがとうございましたm(_ _)m

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.4

>SQLのところにコピペすればよいのでしょうか? そうです。(Access2000では)クエリのSQLビューです。 テーブル名、項目名を正しく修正した後、実行してください。

77panda
質問者

お礼

ありがとうございます! さっそく試してみます(*^_^*)

回答No.3

1、Accessはデータを重複して記録しません。 テーブル:顧客マスター [顧客番号][顧客氏名] 5001_______アサノ 5002_______イトウ テーブル:品番データマスター [品番][品物名称] ____1__リンゴ ____2__みかん ____3__ぶどう テーブル:注文品 [注文番号][顧客_顧客番号][品物データ_品番][注文数] ________1___________5001________________1_______1 ________2___________5001________________3_______1 ________3___________5002________________1_______1 ________4___________5002________________2_______1 ________5___________5001________________1_______1 ________6___________5002________________1_______1 *列[注文番号]は、注文品を発生順に並べるために必要です。 *仮に、こういうシリアル番号がないと並びは保証されません。 質問の場合、<データを重複記録しない>のならば必要なテーブルは3つです。 少し、戸惑われるかも知れませんが、最初から原則は守られたがよいと思います。 2、注文品の顧客名と品物名称の表示はクエリの役割り。 SELECT  注文品.顧客_顧客番号,  顧客マスター.顧客氏名,  注文品.品物データ_品番,  品物データマスター.品物名称,  注文品.注文数 FROM  (注文品 LEFT JOIN 顧客マスター ON 注文品.顧客_顧客番号 = 顧客マスター.顧客番号)  LEFT JOIN  品物データマスター ON 注文品.品物データ_品番 = 品物データマスター.品番; これで図のように表示されます。 図が、SQLデータベースにおいて<データを重複記録しない>でもよい理由を示しています。 3、顧客毎の注文数合計もクエリの役割り。 SELECT DISTINCT  クエリ1.顧客_顧客番号,  クエリ1.顧客氏名,  クエリ1.品物データ_品番,  クエリ1.品物名称,  Sum(クエリ1.注文数) AS 注文数合計 FROM クエリ1  GROUP BY クエリ1.顧客_顧客番号, クエリ1.顧客氏名, クエリ1.品物データ_品番, クエリ1.品物名称  HAVING (((クエリ1.顧客_顧客番号)=5001))  ORDER BY クエリ1.品物データ_品番; これで図のように表示されます。 なお、全ての顧客を表示する場合は、HAVING節が不要です。 SELECT DISTINCT  クエリ1.顧客_顧客番号,  クエリ1.顧客氏名,  クエリ1.品物データ_品番,  クエリ1.品物名称,  Sum(クエリ1.注文数) AS 注文数合計 FROM クエリ1  GROUP BY クエリ1.顧客_顧客番号, クエリ1.顧客氏名, クエリ1.品物データ_品番, クエリ1.品物名称  ORDER BY クエリ1.顧客_顧客番号, クエリ1.品物データ_品番;

77panda
質問者

お礼

f_a_007様 ご回答ありがとうございます。 データベースの構造や考え方をまだ理解しきれておらず、お恥ずかしい限りです(-"-) さっそく試してみます。 ご丁寧な回答をいただきありがとうございました。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

こう言うことでしょうか。 SELECT B.顧客番号, B.品番, B.名称, C.注文数 FROM ( SELECT A.顧客番号, T_物品.品番, T_物品.名称 FROM T_物品, (SELECT 顧客番号 FROM T_注文品 GROUP BY 顧客番号) A ) B LEFT JOIN T_注文品 C ON B.顧客番号 = C.顧客番号 AND B.品番 = C.品番 ORDER BY B.顧客番号,B.品番 --- この場合、顧客テーブルがあればもっと簡単になります。 SELECT A.顧客番号, T_物品.品番, T_物品.名称 FROM T_物品, (SELECT 顧客番号 FROM T_注文品 GROUP BY 顧客番号) A ここで、顧客と品番のすべての組み合わせを求めていますので T_顧客 があれば SELECT * FROM T_物品, T_顧客 となります。 また、注文品テーブルに物品名称は不要です。 (物品テーブルより取得可能のため) 同様に、顧客テーブルを作れば、顧客名も不要です。

77panda
質問者

補足

o chi chi 様 ご回答ありがとうございます。 初心者すぎて、どこに上記の式をいれればよいのかご教示いただけますでしょうか? SQLのところにコピペすればよいのでしょうか?

  • yhc3594
  • ベストアンサー率27% (25/92)
回答No.1

概略   注文品(テーブル)から品番毎の加算値を参照されたいと言う事と推察致します。 例.   SELECT DISTINCTROW Sum(注文品.注文数) AS 合計注文数 FROM 注文品 GROUP BY   品番; で如何でしょうか?

77panda
質問者

補足

yhc3594様 ご回答ありががとうございます。 すみません、ほぼAccess初心者でして、どのタブを開いていって上記の式を入れればよいのでしょうか(>_<)?? お手数ですがご教示くださいませ(-"-)

関連するQ&A

  • Accessのクエリ

    Accessのクエリを作成しました。 クエリの結果例    日付        品物  2011/10/1   リンゴ 2011/10/3   みかん 2011/10/4   リンゴ 2011/10/5   バナナ 2011/10/6   みかん        ・        ・        ・ この結果をもとに、各品物のカウント数を計算したいのですが クエリ等どう使うと可能になるでしょうか。 Excelは出来る限り使いたくありません。 Access入門者ですので、可能な限り分かりやすくお願いします。

  • エクセル2000で・・

    品番 品名  単価  在庫数 1  リンゴ  120  1000 2  ミカン  100  1000 3  バナナ  80  1000 という表があるとします。 次に別シートに 品番 品名  単価  売れた数 2  ミカン  100  10 と、売れた分量を示す表があります。 そしてもう一つ別シートに 品番 品名  単価  在庫数 1  リンゴ  120  1000 2  ミカン  100  990 3  バナナ  80  1000 というシートがあり、一つ目のシートから二つ目のシートで売れた分の数を引いた数量を表す表があります。 二つ目の表を入力した際に、自動的に三つ目の表の在庫数が表示されるような関数はありますでしょうか?

  • エクセル関数で最新データだけを引く方法

    エクセル関数で、最新データだけを他のbookに転記する方法を教えてください。 たとえば、以下の表がbook1にあります。 品物ID   納品日 りんご_2   2008/1/1 みかん_2   2007/12/4 みかん_3   2008/3/1 なし_2   2008/4/6 なし_4    2008/10/2 なし_5   2008/10/3 ぶどう_2   2007/11/26 ぶどう_3   2007/12/4 ぶどう_4   2008/4/9 ぶどう_5   2008/6/6 ぶどう_6   2008/10/4 ぶどう_7   2008/11/30 ぶどう_8   2008/12/1 各品物の最新納品日の「品物ID」を、もう1つのbook2にある以下の表に転記したいです。 例えばなしの場合、最新納品日が2008/10/3で、その日の品物ID:なし_5をを、book2の「品物」列にある全ての「なし」に対し、book1の品物IDを転記します。 品物  品物ID なし  なし_5 なし  なし_5 りんご りんご りんご ぶどう ぶどう ぶどう ぶどう みかん みかん 同様に、ぶどうの場合は「ぶどう_8」、みかんの場合は「みかん_3」をそれぞれの品物に転記する、という関数を知りたいのです。。 vlookupやDMAXなど試してはみたものの、どうしても上手く行きません。エクセル初心者なので、分かりやすい方法がありましたら、よろしくお願いします。

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

    アクセス2000を使用しています。例題ですが、テーブル1に生産地、等級、品名、品種改良の有無。テーブル2に果物名、等級。これを等級で結合しています。果物名はりんご、みかん、ぶどう、すいか。等級は1から6までの設定で、テーブル1と2の等級の合致するもので抽出しますが、すいかだけは更に品種改良のありも条件としたいのですが・・・方法を教えてください。

  • エクセル のマクロで 複数の表を1つにまとめたい

    エクセル のマクロで 複数の表を1つにまとめたい 下記のようなシートがあります。 Sheet1 A B C E F G I J K 1 日付  品名 数 日付  品名 数 日付  品名 数 2 1/1  みかん 100 1/2 りんご 50 1/1 バナナ 30 3 1/5  みかん 50 1/6 りんご 25 1/7 バナナ 20 4 1/10 みかん 30 1/11 りんご 15 1/10 バナナ 10 5 1/12 りんご 30 1/11 バナナ 10 6 1/13 りんご 50 みかん・りんご・バナナのそれぞれの表をマクロで下記のような1つの表ににまとめたいのですが どのようにしたら良いかご教授お願いいたします。 (初心者なので可能であればマクロ内で’コメント付きで解説いただけると助かります)  M N O 1 日付 品名 数 2 1/1 みかん 100 3 1/1 バナナ 30 4 1/5 みかん 50 5 1/6 りんご 25 6 1/7 バナナ 20 7 1/10 みかん 30 8 1/10 バナナ 10 9 1/11 りんご 15 10 1/11 バナナ 10 11 1/12 りんご 30 12 1/13 りんご 50 うまく説明できないのでイメージ画像を添付いたします。

  • フィルターが掛かった状態でクエりで連番

    クエリでフィルターが掛かった時、連番を付ける事をしたいのですが、この式だと下記の様に連番を付ける事が出来ませんでしたのでご教授頂けれは幸いです。 連番: Val(DCount("*","テーブル名称","ID <= " & [ID])) 例1> テーブル例 ID 品名 1 みかん 2 りんご 3 ぶどう 4 みかん 5 りんご 6 みかん クエリ例 品名 みかんをフィルター ID 品名 連番 1 みかん 1 4 みかん 2 6 みかん 3 例2> テーブル例 ID 品名 120 みかん 121 りんご 123 ぶどう 124 みかん 125 りんご 126 みかん クエリ例 品名 みかんをフィルター ID 品名 連番 120 みかん 1 124 みかん 2 126 みかん 3

  • Excelマクロで元データを簡潔な表に整形したい

    Excelマクロで実現させたいのですが、どのようにすれば 良いのか悩み中です。 下記のような【ベース】の表を【整形後】に一覧表に したいと思っています。 記入条件 品番が同じであっても出荷日が違う場合はそれぞれ記入する 品番と出荷日が同じであれば出庫数を足して記入する これを実現させるにはどのような手順?でマクロを組めば 良いでしょうか?どなたか助けて下さい。 【ベース】 品番  品名   出庫数  出荷日 A-01  りんご   10   2/21 A-01  りんご   10   2/27 A-02  もも    10   2/21 A-02  もも    15   2/21 【整形後】 品番  品名   出庫数  出荷日 A-01  りんご   10   2/21 A-01  りんご   10   2/27 A-02  もも    25   2/21

  • エクセルで何件もあるコードと商品の件数を調べたい

    エクセルで コード 名称 009 りんご 005 みかん 009 りんご 003 バナナ 010 イチゴ 005 みかん 003 バナナ 001 ぶどう : : というようなデータが一万件近くあって、 コード 商品  件数 001 ぶどう  ○ 002 すもも  △ 003 バナナ  □ : : というように、コード順に、それぞれの商品の件数を調べてこういった表を作りたいのですがどうしたらいいでしょうか。

  • エクセル 複数セル 文字の統合

    エクセルで,次のような操作ができないかとご相談です。 セル  A   B    C    D    E     F    結合セル 品名 りんご みかん  なし  りんご  みかん  ぶどう  りんご2,みかん2,なし,ぶどう 結合セルには,「&」と”,”を使って「りんご,みかん,なし,りんご,みかん,ぶどう」とはできるのですが,重なりのある言葉に関しては,まとめて数字にできないかと思っております。 何かよいお知恵は無いでしょうか?ご教授いただければ助かります。

  • アクセス2000です。クエリについて教えて下さい!!

    アクセス初心者です。クエリについて教えて下さい!! 注文書を作成できるものを作りたいのですが、 テーブルで M商品 ・グループコード(テキスト型) 主キー ・品番(数値型) 主キー ・サイズ(テキスト型) 主キー ・品名(テキスト型) ・単位コード(数値型) ・現在庫数(テキスト型) ・下限在庫数(テキスト型) T注文 ・伝票No.(テキスト型) 主キー ・日付(日付/時刻型) ・注文状況(数値型) ・希望納期(日付/時刻型) ・仕入先コード(テキスト型) ・納入場所コード(数値型) ・担当者コード(テキスト型) ・備考(メモ型) WT明細 ・伝票No.(テキスト型) 主キー ・行番号(数値型) 主キー ・グループコード(テキスト型) ・品番(数値型) ・サイズ(テキスト型) ・数量(テキスト型) ・単位(テキスト型) ・備考(テキスト型) T単位 ・単位コード(数値型) 主キー ・単位(テキスト型) があって クエリで WT明細とM商品とT単位を結合して ・伝票No. ・行番号 ・グループコード ・品番 ・サイズ ・品名 ・数量 ・単位コード ・単位 ・備考 としているのですが、フォームで入力する時に グループ、品番、サイズに値を入力したときはちゃんと品名がでるのですが、サイズに何も記入しないときは空白になるんです。 説明すると M商品 グループコード 品番 サイズ 品名 15 、3、 25.5bl、 靴黒25.5 の時は「靴黒25.5」が品名にでてくるのですが グループコード 品番 サイズ 品名 99、 999、(サイズ空白)、 その他 の時に「その他」が品名にでてきません。 どうしたらいいですか? ちなみに「その他」と出てきても名前を変更する場合がありますが そのときにその場では「その他」を「靴エナメル」も変更しても M商品の「その他」は「その他」のままにしておきたいです。 分かりづらい説明ですが、どなたかご教授下さい。

専門家に質問してみよう