- 締切済み
発注すると在庫の数が変わって欲しい
Accessで在庫管理のデータベースを作っています。 発注画面で発注数を入力すると、在庫数が発注数分だけ減り、 途中で発注数を変更しても、在庫数に反映されるようにしたいです。 在庫が10の時、発注が1を入力すると在庫は9になる。 あとから発注1をやめると在庫10に戻る。 こんなイメージです。 OSはWindowsXP Accessは2003です。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
Q、発注すると在庫の数が変わって欲しい・・・。 A、ハードルが高い要求かと・・・。 <前提:月次更新の仕組みの存在> 月初在庫数:_10 当月仕入数:__1 当月注文数:__2 当月調節数:__0 この場合、<現在庫=月初在庫数+当月仕入数-当月注文数+当月調節数>という式が成立。 現在庫=10+1-2=9 <処理:当月の仕入伝票、注文伝票、調節伝票(損処理etc)を逐一再計算> 一番に確実な方法は、入出庫の度に現在庫を再計算し表示することです。 もちろん、伝票入力とは切り離して表示すべきです。 各入力行に現在庫を表示すると、変なことになりますからね。 例えば、1個の注文を3行入力すると、現在庫は、9、8、7と表示されたり全て7であったり・・・。 さて、問題は、この逐一再計算に要する時間です。 Accessは、SQL Sever+Access の組合せと比べると50倍の処理時間を要します。 つまり、この手の処理が苦手な言語だと言えます。 <そもそも、月末締めはどうしてされているのか?> 前月期首数:_10 <--- 2011/04/30 前月仕入数:__1 前月注文数:__2 前月調節数:__0 当月期首数:__9 <--- 2011/05/31 当月仕入数:__2 当月注文数:__1 当月調節数:__0 各種設定.締切日: 2011/05/31 入出庫伝票の処理状況の如何に関わらず棚卸表を出力するには、このような仕掛けも必要。 この場合、[各種設定.締切日]を手掛かりに再集計する伝票を特定することも可。 システム期首から再集計・再計算させる訳にはいきません。 ですから、何らかのこのような仕掛けを考えられている筈。 質問文では、この辺りが不明。 もちろん、こうして再集計・再計算期間を絞り込んだとしても Access が苦手は変わりません。 <バックエンドとフロントエンドとに分離するのが先決!> さて、将来的に高速化を狙うのであれば、バックエンドとフロントエンドとに分離するのが先決。 そうして、再集計・再計算期間を絞り込む仕組みを検討。 そうして、再集計・再計算に要する時間を計測。 *一応、不確で信用できない[現在庫]なる列は設けないという前提での回答です。
お礼
早速ありがとうございます。 甘く考えていました。 ハードルがかなり高かったのですね。。。 再検討致します。