Microsoft Access Club >SampleFile Q & A >インデックス >このページ >次頁 < 前項  サイト内検索


Q&A-012 売上の集計です(複数コピーテーブルとリレーションの活用)の一例



タイトル : 売上の集計です
記事No : 7027
投稿日 : 2003/05/03(Sat) 03:32
投稿者 : negi

OS:Me
Access Version:2000

初めて投稿します。
取扱商品の配送料金の集計を行ないたいのですが、

「テーブル1」は、概ね下記のような形になっています。

ID 配送日 担当者 請求先 区分1 区分2 区分3・・・・区分20
1 4月3日 山田  A商店  01
2 4月3日 田中  B商店  01 03 03
3 4月4日 田中  C商店  02 08
4 4月5日 木村  A商店  03 02 05 ・・・・09
・ ・    ・  ・   ・  ・
・ ・    ・  ・   ・ 
 

データの"01"や"03"とは配送金額で区別した商品グループの各番号です。
レコード1行に、20個までデータを入れるフィールドを作りました。単純な作業にしたかったので、01〜20までの商品区分をそのままフォームで入力するようにしました。

「テーブル2」は料金マスターで

区分 料金
01   \500
02  \700
03  \1000
・   ・
・   ・
・   ・
20  \10000

このようになってます。

今後はテーブル1のデータを、テーブル2のデータを参照して自動的に集計させていきたいのです。
(最終的には各商店への請求の集計、個人別売上、配送日ごとの売上etc...)

そこで質問ですが、
クエリなどで「テーブル1」の全レコードのデータを「料金マスター」の金額に変換して表示することはできますか?
また、その方法を教えていただきたいのです。(その必要があるかどうかは不明なんですけど・・・)

Accessを勉強し始めてまだ1週間で、解らないことだらけで困ってます。あと、これから先のデータベース作成の手順をアドバイスしていただけると助かります。どうかよろしくお願いします。


この問いに対する回答は、2点です。

  1. リレーションの活用によって料金を表示させる。
  2. 複数のコピーテーブルを用いて、メンテナンスを軽減する。

2については、Q&A-007 一時的なコピーテーブル作成でテーブル数を削減する一例--テーブルメンテを簡易にする方法 で確認して下さい。

 

テーブルデータは下記のように想定します。(テーブル名 tbl_sample)

 

ID 配送日 担当者 請求先 区分1 区分2
1 2002/04/01 鈴木 株式会社A 6 6
2 2002/05/19 佐藤 株式会社B 2 5
3 2002/07/10 田中 株式会社C 5 9
4 2002/08/20 中田 株式会社D 1 7
5 2002/09/10 中村 株式会社E 2 6
6 2002/11/11 新庄 株式会社F 5 8
7 2002/12/11 村中 株式会社G 5 10
8 2003/04/14 立花 株式会社H 9 2

 

また、料金を決定するマスターブルは下記のように想定しています。(テーブル名 tbl_料金体系)

 

 
区分ID 料金
1 ¥100
2 ¥300
3 ¥500
4 ¥800
5 ¥1,200
6 ¥1,500
7 ¥2,000
8 ¥2,500
9 ¥3,000
10 ¥4,000
11 ¥5,000
12 ¥7,000

 

>今後はテーブル1のデータを、テーブル2のデータを参照して自動的に集計させていきたいのです。

これを実現するためには、クエリを用います。下記のようなクエリを作成します。

 

 

ID 配送日 担当者 請求先 区分1の料金 区分2の料金
1 2002/04/01 鈴木 株式会社A ¥1,500 ¥1,500
2 2002/05/19 佐藤 株式会社B ¥300 ¥1,200
3 2002/07/10 田中 株式会社C ¥1,200 ¥3,000
4 2002/08/20 中田 株式会社D ¥100 ¥2,000
5 2002/09/10 中村 株式会社E ¥300 ¥1,500
6 2002/11/11 新庄 株式会社F ¥1,200 ¥2,500
7 2002/12/11 村中 株式会社G ¥1,200 ¥4,000
8 2003/04/14 立花 株式会社H ¥3,000 ¥300

 

 

ここでリレーションを設定していますが、このリレーションはあくまでこのクエリ内だけのものです。恒常的なリレーションシップを結んではいけません。

このようにコピーテーブルを活用することで、マスターテーブルの保守管理は1テーブルで済んでしまいます。本来なら、区分が1〜20まで存在し料金を表示させるためには、20のマスターテーブルが必要になるんですが・・・。

 

 

2003/05/06


Q&A-012 売上の集計です(複数コピーテーブルとリレーションの活用)の一例


 

-Microsoft Access Club-