クロス集計テーブルとクロス集計入力フォームは、個人的には、NGです。
クロス集計ありきで、ExcelライクなAccessを目指すと、横にフィールドを伸ばしたくなったり、縦横のイメージが抜けなくなったりしませんか?
製品名 | 子部品1 | 子部品2 | 子部品3 | … | 6/1 | 6/2 | 6/3 | … |
---|---|---|---|---|---|---|---|---|
製品X | あいうA | あいうB | テープ | … | 10 | 10 | 10 | … |
縦横のAccessは、たぶん、複雑なSQLを都度都度要求されるので、まず完成しません。神アニメや神ゲームをExcelで再現するくらい大変でしょう。
製品名 | 子部品 | 使用日 |
---|---|---|
製品X | あいうA,あいうB,テープ,ネジ,… | 6/1,6/2,6/3,… |
これも、複雑なSQLが必要になるアンチパターンでしょう。
製品名 | 子部品 | 使用日 | 使用数 | 在庫数 |
---|---|---|---|---|
製品X | あいうA | 6/1 | 10 | 30 |
製品X | あいうA | 6/2 | 10 | 20 |
製品X | あいうA | 6/3 | 10 | 10 |
製品X | あいうB | 6/4 | 10 | 20 |
ある共通点を持つものを、横に並べない、これがAccessの基本だと思います。
このときA,Bの所要計画を立てると並列のためどちらからも
引き算してしまいますが、 Aが在庫切れしたところからBを引くようにしたいです。
こんなのはどうでしょう?
・製造計画フォーム
製造日:6/1、製品名:製品X、製造数:10
材料明細
子部品No | 子部品 | 予定使用数 |
---|---|---|
1 | あいう | 10 |
2 | テープ | 5 |
3 | ネジ | 15 |
ロット明細(古いバージョンから使う事)
子部品No | ロット名 | 使用数 | 在庫数 |
---|---|---|---|
1 | あいうA | 30 | |
1 | あいうB | 20 |
次のように、ユーザーが選んで打ち込みます。
子部品No | ロット名 | 使用数 | 在庫数 |
---|---|---|---|
1 | あいうA | 10 | 30 |
1 | あいうB | 20 |
在庫数がなくなるかマイナスになると、表示されなくなったり、打ち込めなくなったりするのは、どうでしょう?
子部品No | ロット名 | 使用数 | 在庫数 |
---|---|---|---|
1 | あいうB | 20 |
あとは、在庫数をどうやって処理するかの問題は、残りますが。
クロス集計クエリは、Access完成後、しばらく運用してから、見やすさのために、リリーフ登板する感じになるのではないでしょうか。
通報 ...