質問: | 売上日 | 社員番号 | 商品番号 | 売上金額 | | --- | --- | --- | --- | | 2019/2/10 | 2200 | 99999 | 500,000 | | 2019/2/10 | 2201 | 99999 | 100,000 | | 2019/2/10 | 2202 | 99999 | 50,000 | | 2019/2/10 | 2203 | 99999 | 70,000 | | 2019/2/10 | 2204 | 99999 | 160,000 | | 2019/2/10 | 2205 | 99999 | 250,000 | 現在は、 1:各社員ごとの売上合計が記載されている電子データを閲覧し、Excelファイルに手入力する。 ※電子データシステムがデータのCSVやExcelファイルに出力することに対応していないため。 2:上記の表をExcelファイルからAccessテーブルに自動で取り込む【テーブルA】 3:テーブルに取り込み後、テーブルのコピーを作成する【テーブルB】 4:フォームを開くと、テーブルBのデータ【各社員ごとの合計額】と、テーブルAの合計額、テーブルB兼フォームに入力された金額の合計額が表示されています。 5:取引の明細が表示されたシステム【1とは別システム】を使用し、各社員ごとの売り上げを検索する。 ※検索時に、社員番号を入力する必要があるため、1名ごとの明細検索となります。 6:検索結果をもとに、フォームにて上記表の金額と商品番号を修正する。 4:フォームで変更した内容をテーブルBに反映し、合計金額の表示を変更する 手動で変更した後のテーブルBがこちら | 売上日 | 社員番号 | 商品番号 | 売上金額 | | --- | --- | --- | --- | | 2019/2/10 | 2200 | 12345 | 100,000 | | 2019/2/10 | 2200 | 23456 | 250,000 | | 2019/2/10 | 2200 | 34567 | 100,000 | | 2019/2/10 | 2200 | 45678 | 50,000 | | 2019/2/10 | 2201 | 12345 | 50,000 | | 2019/2/10 | 2201 | 23456 | 50,000 | | 2019/2/10 | 2202 | 12345 | 50,000 | | 2019/2/10 | 2203 | 12345 | 70,000 | | 2019/2/10 | 2204 | 12345 | 160,000 | | 2019/2/10 | 2205 | 12345 | 250,000 | ※社員番号かつ商品番号で並び替えをしてあります。 現在のやり方だとテーブルAの合計額とテーブルBの合計額の表示が一致していない場合は、どの社員の明細入力が間違っているか1名ずつ検索しなおす必要があるため、すごく手間がかかっています。 わからないこと ------- 上記のやり方を、金額を修正【合計金額よりも低い金額を入力】したら、自動で『変更した社員の合計額【テーブルAのレコード】 - 入力した金額【テーブルB・フォームのレコード】』をし、新しいレコードを作成して、社員番号と差額を自動でテーブルB・フォームに入力・表示するようにするにはどんな技術が必要でしょうか?
回答: 通常に考えるならば、 テーブルAを親、テーブルBを子としたサブフォームですね。 テーブルAのキー:売上日+社員番号 テーブルBのキー:売上日+社員番号+商品番号 社員番号/売上日を入力したら 明細にテーブルBから該当キーの商品番号/売上金額を表示させる感じだと思います。 この仕様の場合、 テーブルB.商品番号.99999の売上金額は、常にそれ以外の合計とテーブルA.商品番号.99999の売上金額との差分で更新する必要がありそうなのが、ネックなんですかね?(但し0以上の場合) やろうと思えば、【確定】ボタンでも追加して、テーブルB.商品番号.99999への更新クエリを走らせればいいだけですが、何に使うのでしょうね? もし仮に、予算と実績のような一覧表を作るのであれば、テーブルB.商品番号.99999レコードを作るまでもなく、集計してテーブルAと付き合わせればいいだけだと思いますが。もしかして画面でリアルタイムで見たいとかなのでしょうか?個人的には、その必要性が感じられません。 画面イメージ ーーーーーーーーー テーブルAエリア ーーーーーーーーー 売上日[2019/2/10] 社員番号[2200] 商品番号:99999 売上金額:500,000 ーーーーーーーーー 明細(テーブルBエリア) ーーーーーーーーー 売上日 社員番号 商品番号 売上金額 2019/2/10 2200 99999 0 2019/2/10 2200 12345 100,000 2019/2/10 2200 12345 100,000 2019/2/10 2200 23456 250,000 2019/2/10 2200 34567 100,000 2019/2/10 2200 45678 50,000 ーーーーーーーーー