アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、日報を作っています。メインのテーブル構造は、売上ID、売上日、売上額、来店客数、事業所ID(事業所名)などです。今回詳細のデータを入力したいと考えています。詳細データは2種類です。一つは商品別の売上数と売上金額、もう一つは、時間帯別の来店客数と売上額です。商品も売上時間帯も事業所によって、重複しているものと、重複していないものがあります。例えば、商品でいうと、A商品はA店舗とC店舗で取り扱いがあるが、他にはない等です。時間帯の集計方法も営業時間の違いで、1日2回の店舗もあれば1日3回の店舗もあります。更に商品で言うと期間限定商品などもあります。単純には商品テーブル、売上明細テーブルなどを作成し、サブシート(サブデータ)に商品や時間帯区分名などを一つ一つ選択して入力していけば、良いのですが、各店舗に見合った商品名や時間帯区分がフィールドのように表示されて、後は売上額や数量のみを入力するデータベースにするにはどうすればよいでしょうか?アクションクエリーやイベントプロシージャを使うしかないでしょうか?テーブル構造とクエリーの結合方法ではむりでしょうか?

A 回答 (2件)

すいませんが、ご質問文が複雑で、何を質問したいのかが、理解しにくいです。



推定で書きますが
レコード毎に「サブデータ」のテーブル構造が違っていて、日報のときにムダな空欄が多くなる。
これをうまく安直に解決できないか?
と言うことなのではないのかな?

>アクションクエリーや・・(中略)・・・むりでしょうか?
これは、VBAも使えるが、できれば、クエリだけでやりたいということ?

おそらく、どのようにアプローチしても、店舗と取り扱い商品、店舗と時間帯集計方法の関係をどこかで入力しなくてはいけないことは、おわかりなんですよね。

>商品名や時間帯区分がフィールドのように表示
と言うのは、クロス集計のようなイメージでしょうか?

もしそうなら、商品テーブルにダミーで数値を入れておき、売上集計値テーブルとクロス集計を取りそれをサブフォームに利用すると言う手があります。
しかし、VBAを使ったほうがいくらか楽ではないかと思います。

いずれにせよ、
何らかの補足説明をするか、
もう少し問題を絞って質問されてはいかがでしょうか?

この回答への補足

わかりにくくて、すいません。独学でACCESSをやったもので、ごまかしながらもいつも作っているのですが、最近は入力を別の人間がするようになったので、より単純でミスの少ない形で、なおかつ入力の手間を出来るだけ省きたいのです。EXELの場合だと店舗を各シート毎に作成し、A列に日付(データ)を1行に合計売上額、合計客数、時間帯1、時間帯2・・・、A商品の個数、B商品の個数・・・とタイトルを入力し、実際のデータは、B2からB3・・・と入力していく。こんな表を作りたいのです。これをそのままインポートしてテーブルにすると、フィールド数が増えてしまうのと、おっしゃる通り、空白のセル(フィールド)ができてしまいます。今までの私のやり方だと、サブフォームに売上明細があり、そこに商品ID(名)を入力し、数量を入力する。メインフォームとサブフォームはメインフォームの売上IDでリンクし、事業所IDはマクロやVBで値の代入をすると言った形です。また同様に時間帯集計も行います。しかし、商品毎の売上の商品IDも、時間帯区分の時間帯区分名も予め決まっているので、それを入力(選択)する手間を省きたいのです。仮に新しい商品が増えたりしても、別のところでその商品と店舗の関係を入力すれば、データの入力欄ができると言った形です。またわかりにくいかも知れませんが、教えていただければ、幸いです。

補足日時:2001/12/16 03:06
    • good
    • 0

補足見ました



やはり、文章だけで全部説明すること、理解することは、かなり難しいですね。

すでに運用されているようなので、根本からやりなおしなんてのは、ナンセンスですね。

という前提で・・・

>別のところでその商品と店舗の関係を入力
 集計時間帯も同様にしておいて、
現状手入力されている「商品ID」や「時間帯区分名」を、「店舗ID」から引いてきて、サブフォーム上に、プログラムで入力すれば、いいということですね。

「商品ID」や「時間帯区分名」をメンテナンスするフォーム追加と、上のような処理の改造が必要だと思います。

サブフォームへの具体的な操作は、Accessのサンプル「ノースウィンド」が参考になると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!