• 締切済み

MS ACCESSについて教えてください。

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

みんなの回答

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.2

補足見ました やはり、文章だけで全部説明すること、理解することは、かなり難しいですね。 すでに運用されているようなので、根本からやりなおしなんてのは、ナンセンスですね。 という前提で・・・ >別のところでその商品と店舗の関係を入力  集計時間帯も同様にしておいて、 現状手入力されている「商品ID」や「時間帯区分名」を、「店舗ID」から引いてきて、サブフォーム上に、プログラムで入力すれば、いいということですね。 「商品ID」や「時間帯区分名」をメンテナンスするフォーム追加と、上のような処理の改造が必要だと思います。 サブフォームへの具体的な操作は、Accessのサンプル「ノースウィンド」が参考になると思います。

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.1

すいませんが、ご質問文が複雑で、何を質問したいのかが、理解しにくいです。 推定で書きますが レコード毎に「サブデータ」のテーブル構造が違っていて、日報のときにムダな空欄が多くなる。 これをうまく安直に解決できないか? と言うことなのではないのかな? >アクションクエリーや・・(中略)・・・むりでしょうか? これは、VBAも使えるが、できれば、クエリだけでやりたいということ? おそらく、どのようにアプローチしても、店舗と取り扱い商品、店舗と時間帯集計方法の関係をどこかで入力しなくてはいけないことは、おわかりなんですよね。 >商品名や時間帯区分がフィールドのように表示 と言うのは、クロス集計のようなイメージでしょうか? もしそうなら、商品テーブルにダミーで数値を入れておき、売上集計値テーブルとクロス集計を取りそれをサブフォームに利用すると言う手があります。 しかし、VBAを使ったほうがいくらか楽ではないかと思います。 いずれにせよ、 何らかの補足説明をするか、 もう少し問題を絞って質問されてはいかがでしょうか?

peace510
質問者

補足

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

関連するQ&A

  • Accessの入力設定を自動にしたい

    Access97を使っています。 テーブルA 店舗ID 店舗名(全て、閉店した店も含む) テーブルB 店舗ID 店舗名(全て、閉店した店も含む) 商品番号 商品名 クエリC(選択クエリ) 店舗ID 店舗名(営業している店のみ) 商品番号 商品名 フォームD 店舗ID 店舗名 商品番号 商品名  フォームDから新しくオープンするお店の入力を行いたいのですが、店舗IDを入れるとテーブルAから自動的に店名がフォームDに入力され、入力した内容はクエリCに反映するような設定はどうなるのでしょうか?  テーブルBからクエリCを抽出しています。今日一日考えているのですが、頭がパニックって来ました。 よろしくお願いします。

  • Access2010 クエリ作成 超初心者

    以下のテーブルがあります テーブル:受注no、売上日、キャンセル区分… 12345、2013/9/20、 12346、2013/9/20、 12347、2013/9/21、 12348、2013/9/25、 12346、2013/9/26、1 12348、2013/9/30、1 クエリを使用して、キャンセル区分に1が入力されていない受注noのカウントをしたいのですが、クエリ1回でカウントする方法がありましたら教え いただきたく思います 。 よろしくお願いします。

  • ACCESS2000 コンボボックス絞込み

    こんにちは。以前に同じ質問をしたのですが、分からなかったので再度質問させて頂きます。 フォームでコンボボックスで入力しているのでが、 1つ目で選択したら2つ目のコンボボックスに1と関連するデーターしか表示しないようにしたいのですが・・。 テーブル 売上区分1  売上区分1ID  オートナンバー  売上区分1   テキスト型 テーブル 売上区分2  売上区分2ID  オートナンバー  売上区分1   数値  売上区分2   テクスト型 ファームの表示はそれぞれ、区分名が表示されるようになってます。 コンボ1で選んだのが、商品区分1IDが1ならコンボ2で表示されるのが、テーブル 売上区分2 の 売上区分1が1のものだけ表示できるようにしたいです。 説明が悪いかもしれませんが、お願いします。 初心者なもので、分かりやすく書いていただければありがたいです。お願いします。  

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • Access DB 商品名の扱いについて

    (テーブル名):(フィールド名) 商品テーブル:商品名。 単価数量テーブル:商品単価、数量、仕入番号、商品名。 仕入テーブル:仕入番号、仕入日、注文日、手数料、輸送費など。 売上テーブル:売上、販売日付、仕入番号、商品名。 リレーションシップ:一対多 商品テーブル商品名-単価数量テーブル商品名 商品テーブル商品名-売上テーブル商品名 仕入テーブル仕入番号-売上テーブル仕入番号 仕入テーブル仕入番号-単価数量テーブル仕入番号 このように作成しました。 ここで問題なのが、商品名の入力です。 仕入テーブルをメイン、単価数量テーブルをサブフォームにしてフォームを作成しました。 さて、商品名を単価数量テーブル商品名フィールドのサブフォームから入力・・・と思ったら、商品テーブル商品名フィールドに名前がないためエラーが出ます。(参照整合性をしているため) サブフォームの入力フィールドを商品テーブル商品名に変更すれば入力できます。 しかし、重複した商品名を入力できません(重複しないに設定しているため) 何故このようなことをするか?ですが、同じ商品でも購入日が違えば単価が違う場合があります。 ですので単価数量テーブルでは同じ商品名を使用する必要があります。 しかし、商品テーブルでは同じ商品名は必要ありません。 もちろん先に商品テーブルに商品名を入力すれば問題ありませんが、入力効率から言って問題あります。 さてここで質問なのですが、一対多の多から商品名を入力して一側に反映できないでしょうか? 一側にすでに同じ商品名がある場合は反映してはいけません。 ちないにVBAやSQLはコピペぐらいはできますが、書けませんのでご了承を。

  • アクセスSQL

    アクセス初心者です。 テーブルAに(売上日、商品A売上金額、商品B売上金額、支店)フィールドがあります。 売上日フィールドは重複あります。 次のクエリを定義するSQLはどのように記載すればいいでしょうか? 第一フィールド フィールド名:売上日リスト 内容:テーブルAの売上日を重複無しで全種類抜き出し日付順ソート。 第二フィールド フィールド名:商品Aラスト売上金額 内容:第一フィールドの売上日グループで、最後の商品A売上金額 第三フィールド フィールド名:商品Bラスト売上金額 内容:第一フィールドの売上日グループで、最後の商品B売上金額 以上よろしくお願い致します。

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • Accessのクエリでの集計

    来店を把握する為にAccessで作成し、日々使っています。 クエリで月別の来店数を合計をしたいのですが、いろいろ試みても解りません。また、「アンケート」及び「アポ」をもらったか否かを○・×で記入しています。その○の月合計も集計したいのです。 テーブルは、「顧客」「来店情報」とをでリレーション付けています。 顧客テーブルには、顧客名 住所 電話 etc 来店情報テーブルには 来店日 情報 アンケート アポ etc などのフィールドがあります。 月単位の 来店客数 アンケートの○数 アポの○数を 出したいのです。どなたか、方法を教えて下さい。

  • アクセスでこんなふうにできますか?

    あるテーブルAがあるとします。そこには店舗ごとに納入している商品名が色ごとにコード分けされているもの(AA、AB、AC・・・)が入力されているのですが、各店舗商品一個につき一つの行を使っています。同じ商品があれば同じ商品コードが2行出てくる内容です。 (例) 店舗コード   ,商品コード 0123       AA 0123       AA 0123       AC 0456       AC 0456       AB このテーブルを、店舗コードをひとまとめにして、商品コードを下記のようにしたいのです 店舗コード   ,商品コード 0123       AA2,AC1 0456       AB1,AC1 これってクエリとかで出来るんですか?普通に集計クエリを使っても商品コードの種類が違うのでうまくできません。

  • ACCESS 顧客データ 購入履歴検索について

    ACCESSで顧客データを管理しています。 ●月●日以降 ○○製品の購入履歴があった人が、 その日付以降に再来店しているか、再来店日、購入製品をだしたいのですが、 良い抽出方法ありますか? テーブルには、↓ があります。 顧客コード 顧客名 売上日付 取引番号 商品コード 商品名 売上数量 店舗名  分かる方いらしたら教えて下さい! 宜しくお願いします。

専門家に質問してみよう