Microsoft Access 掲示板

異なるレコード間での集計・順番に計算する方法 / 9

9 コメント
views
4 フォロー
9
りんご 2021/05/21 (金) 01:12:59 48103@0e907 >> 8

 クロス集計テーブルとクロス集計入力フォームは、個人的には、NGです。
 クロス集計ありきで、ExcelライクなAccessを目指すと、横にフィールドを伸ばしたくなったり、縦横のイメージが抜けなくなったりしませんか?

製品名子部品1子部品2子部品36/16/26/3
製品XあいうAあいうBテープ101010

 縦横のAccessは、たぶん、複雑なSQLを都度都度要求されるので、まず完成しません。神アニメや神ゲームをExcelで再現するくらい大変でしょう。

製品名子部品使用日
製品XあいうA,あいうB,テープ,ネジ,…6/1,6/2,6/3,…

 これも、複雑なSQLが必要になるアンチパターンでしょう。

製品名子部品使用日使用数在庫数
製品XあいうA6/11030
製品XあいうA6/21020
製品XあいうA6/31010
製品XあいうB6/41020

 ある共通点を持つものを、横に並べない、これがAccessの基本だと思います。

このときA,Bの所要計画を立てると並列のためどちらからも
引き算してしまいますが、 Aが在庫切れしたところからBを引くようにしたいです。

 こんなのはどうでしょう?
・製造計画フォーム
製造日:6/1、製品名:製品X、製造数:10
材料明細

子部品No子部品予定使用数
1あいう10
2テープ5
3ネジ15

ロット明細(古いバージョンから使う事)

子部品Noロット名使用数在庫数
1あいうA30
1あいうB20

次のように、ユーザーが選んで打ち込みます。

子部品Noロット名使用数在庫数
1あいうA1030
1あいうB20

在庫数がなくなるかマイナスになると、表示されなくなったり、打ち込めなくなったりするのは、どうでしょう?

子部品Noロット名使用数在庫数
1あいうB20

あとは、在庫数をどうやって処理するかの問題は、残りますが。

 クロス集計クエリは、Access完成後、しばらく運用してから、見やすさのために、リリーフ登板する感じになるのではないでしょうか。

通報 ...