- ベストアンサー
Acess2000について
今回、アクセスにてソフトを作ろうと思っているのですがなにせ初心者ですので、よくわかりません。 ーーーーーーー内容ーーーーーーーーーーーーーーーーー 売り出しようのソフトを考え中です。 加盟店:7店舗 売り出し期間:1週間 商品カテゴリ:5項目(時計,バック,宝石,衣類,その他) アクセスでつくりたいのが、 日別にA店のバック,時計・・・ B店のバック,時計・・・ がいくら売れたと表のようにだしたいです。 ------------------------------------------------- - バック - 時計 - 宝石 -衣類 ------------------------------------------------- A店 - ¥12.000 - \13.000 - \5.000 - ------------------------------------------------- B店 - \1.000 - \1.500 - \2.000 - ------------------------------------------------- C店 - ------------------------------------------------- 下記のような表をレポートでつくり、随時にわかりたい ーーーーーーーーーーーーーーーーーーーーーーーーーー 現在、自分なりに考えているのが クエリA店-1日目-バック A店-1日目-時計 A店-1日目-宝石 A店-2日目-バック ・ ・ ・ ・ C店-7日目-その他 のように70個くらいのクエリをつくってレポートで 貼り付けていこうと思いましたがにレポート1つに対して1つフィールドリストしかしようできません。 どなたか良い考えはないでしょうか。お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>アクセス2000で集計をするためにフォームでエクセル >のピボットテーブルを使おうと思いますが下記のよう >なことはどうやったらよいのでしょうか? 下のデータがとれるクエリを作成してピボットのデータソースにしてください。 店舗コード 店舗名 アイテムコード アイテム名 大分類(※下で説明) 金額 店舗コードとアイテムコードは並順だけに使用します。 コード表が無ければ新規にテーブルをつくってください。 >バック+時計=合計A >その他+宝石=合計B アイテムコード表はおそらくこのようなものになると思います。 テーブル名:アイテムコード アイテムコード アイテム名 大分類 --------------- ----------- ------ 1 バッグ A 2 時計 A 3 宝石 B 4 その他 B (必要に応じて大分類は別テーブルにします) アイテムごとに知りたい場合は、アイテムコードで集計を取ります。大雑把に集計するときは大分類で集計します。 日付は、任意の期間であればフォームやレポートを開く前に日付指定フォームを開いてユーザに期間を指定させます。 クエリの抽出条件では日付指定フォームを参照するように指定します。 集計表が 1.固定的で一枚のレポートに収まる。もしくは、ユーザの操作レベルが低い、のであればアクセスのレポート 2.集計項目はユーザが任意の項目で指定する。もしくはメールで送る必要がある。ときはエクセル。 個人的には、ピボットフォームを使用するくらいならエクセルでピボットテーブル+マクロにした方がいいと思います。 ピボットフォームは重いですし、バージョンや環境に左右される恐れが大きいためです。
その他の回答 (3)
- stork
- ベストアンサー率34% (97/285)
テーブル設計に関しての記載がないのですが、ご質問のようなものであればクエリーはひとつで充分です。 レポートで店舗ごとにグループ化して、sum関数とiif関数を組み合わせて商品カテゴリごとに集計を取ります。 例) =sum(iif(商品カテゴリ="バッグ",[金額],0)) しかし、エクセルのピボットテーブルを使ったほうが、集計機能は強いです。その際は、データソースに外部データソースを使用してアクセスのクエリを指定します。 データ更新もボタンひとつでできますのでオススメです。
- SpeedKing
- ベストアンサー率50% (6/12)
テーブル、クエリーを以下のように作成します。 テーブル:Main ID(主キー、オートナンバー) 日付(日付型) 店名(テキスト型) 商品分類(テキスト型) 金額(通貨型) クエリー(名前は、集計日付、集計店名、集計金額) 1)テーブルMainの日付のみグループ化した日付フィールドのみ 2)テーブルMainの日付、店名をグループ化した日付、店名フィールドのみ 3)テーブルMainの日付、店名、商品分類でグループ化し、金額を合計した合計金額フィールドのクエリー 以上のテーブル・クエリーを使用して以下のようにレポートを作成すれば、日付ごとに、質問にあるような表形式のレートを作成できます。 1)デザインビューでレポートを作成をクリックし、表示されたレポートのプロパティでレコードソース欄に以下のSQLを記載します。また、レポートの「詳細」にテキストボックスを貼り付け、コントロールソースをクエリー3)の合計金額と同じ名前にします。ラベルは削除します。 SELECT [日付], [店名], [合計金額] FROM 集計金額 WHERE 商品分類="時計"; これを時計として保存します。 同様に、商品分類の数だけ、上記のレポート時計をコピーして名前をそれぞれの商品名で保存します。 2)デザインビューでレポートを作成をクリックし、表示されたレポートのプロパティでレコードソースを集計店名(上記クエリーの2)とします。また、「詳細」には、テキストボックスを1つだけ貼り付け、コントロールソースを店名とします。さらに、サブレポートを商品分類の数だけ貼り付けます。サブレポートでは、ソースオブジェクトにレポート.時計を選択し、リンク子フィールド、リンク親フィールドのそれぞれに、店名;日付 と記載します。 残りのサブレポートも時計と同様に設定します(ソースオブジェクトを商品分類に合わせて変更)。 これを、サブとして保存します。 3)デザインビューでレポートを作成をクリックし、表示されたレポートのプロパティでレコードソースを集計日付(上記クエリーの1)とします。また、「詳細」には、テキストボックスを1つだけ貼り付け、コントロールソースを日付とします。さらに、サブレポートを1つ貼り付け、ソースオブジェクトにレポート.サブを選択し、リンク子フィールド、リンク親フィールドのそれぞれに、日付 と記載します。 最後に、ページヘッダーに商品分類のラベルを貼り付けます。位置はレポートを開いて、適当に調節してください。 これを適当な名前で保存すれば完了です。 一度試して見てください。 日付や日付の範囲を指定したり、週間、月間で集計をみたりする場合には、レポートよりフォームの方が適してしますが、質問を忠実に再現するために以上のようにしてみました。フォームでも上記を応用すれば簡単にできますので必要があれば再度ご質問ください。
お礼
今回は誠にありがとうございました。 storkさんのご意見を使わせて頂くようになりました。 みなさんが答えてくれてとってもうれしかったです。 今後とも宜しくお願いいたします。
- cid-37
- ベストアンサー率35% (94/265)
私も初心者ですので、「マクロって何?」「エクセルってつおいの~?」 程度の人間ですが・・・・・・・・・ データベースとなるテーブルの項目ですが、 日付、店名(A店、B店など)、商品カテゴリ(バッグ、時計など) 商品名及び型番(オメガのスピードマスターとか)、価格(手動でいちいち 入力します。マクロが使えない為。) という項目でいきましょうか。 このうち、日付以外はそれぞれに専用テーブルを作り、フォームで入力 するときに、選択ボックスで選択入力できるようにします。価格も全ての 商品の価格のテーブルを作れば、選択で入力できるでしょう。 ここから先が、初心者の悲しいところで・・・・・ クエリは7つ作ります。 クエリのフィールドは、メインのテーブルの項目を全部引っ張って来て下さい。 7つのクエリは1つづつ店舗名で抽出をかけます。 商品カテゴリと商品名、型番をグループ化及びソートをかけます。 日付で抽出をかけます。 それでレポート出力をします。 ※カテゴリごとの金額の合計は出せません。テキストボックスをレポートに 新設し、電卓で計算して合計を入力してテキストボックスに入力します。 できたレポートは、日付別、店舗別、ですが、100個商品が売れれば、 100行の印刷になってしまいます。 もうひとつの考えかたとしては、店舗数×カテゴリー(5×7=35) 35個のメインテーブルを作れば、日付別で金額の合計までレポートで 出すことはできます。でも、1枚の紙にプリントすることはできません。 本屋さんで、似たような練習問題の”雛型”を見つけるのが、一番早い 解決方法かもしれませんね。
お礼
今回は誠にありがとうございました。 storkさんのご意見を使わせて頂くようになりました。 みなさんが答えてくれてとってもうれしかったです。 今後とも宜しくお願いいたします。
補足
アクセス2000で集計をするためにフォームでエクセルのピボットテーブルを使おうと思いますが下記のようなことはどうやったらよいのでしょうか? -------------------------------------------------- - バック - その他 - 宝石 - 時計 -合計 -------------------------------------------------- A店 - 1.000 - 2.000 - 3.000 - 4.000- -------------------------------------------------- B店 - 2.000 - 3.000 - 4.000 - 5.000 - -------------------------------------------------- 現在このようになっているのですが これでバック+その他+宝石+時計=合計はでるのですが バック+時計=合計A その他+宝石=合計Bもわかるようにしたいのですがどうしたらよろしいでしょうか。 また、並びのことですが現在は バック-その他-宝石-時計-合計となっておりますが バック-時計-宝石-その他-合計にしたいのですがそのようなことはできるのでしょうか。宜しくお願いします 理想の表 ------------------------------------------------- ・・宝石-その他 - 合計 - 合計A - 合計B ------------------------------------------------- ・・¥ - ¥ - ¥ - ¥ - ¥ ------------------------------------------------- ・・¥ - ¥ - ¥ - ¥ - ¥ -------------------------------------------------