プロが教える店舗&オフィスのセキュリティ対策術

アクセスで在庫管理をしています。
月ごとの商品在庫を知りたいのですが、クエリで
[入庫-出庫+返品]と、計算式を入れると1月分はちゃんとでるのですが、2月分からはへんになるんです。
例えば リンゴが商品だとして
1月 入庫2 出庫1とすると、在庫は1になるんですが
2月 入庫0 出庫1とすると、在庫は-1になってしまうんです。
1月の在庫計をふまえた上で2月の在庫、3月の在庫と
出していくのは難しいんでしょうか?

A 回答 (5件)

>該当月以前の在庫数を計算させるクエリ


商品在庫を計算するクエリをコピーして前在庫みたいな名前で作るとして。
前在庫クエリの日付の抽出条件に <該当月数 で該当月より以前の入出庫を商品コードなどのキーでグループ化して前入庫数と前出庫数を合計させて前在庫:[前入庫数]-[前出庫数] で前在庫を演算させる。
商品在庫クエリにテーブルの追加で前在庫クエリを追加して商品コードでリレーションをする。前在庫のフィールドを追加する。在庫:[前在庫]+[入庫]-[出庫]+[返品]で演算させる。
    • good
    • 0

一ヶ月ごとに、期首+入庫-出庫+返品で、当月の期末在庫を計算させ、一旦テーブルに書き出し、その期末在庫を、翌月の期首在庫に書き出すように組み立ててやれば良いんですよ



私がいつもやってる方法です

最初にテーブル作成クエリーで、管理表を作成したら、翌月分からは、追加クエリーで書き加えてやると良いですよ、その際、追加するクエリーと追加されるテーブルで、重複しない物だけを追加するようにクエリーを作成してやれば、同じ事をやっても、ダブル心配はありません

期末在庫を期首に持って来る方法も、同じ様な物で、管理表の期末在庫を、期首というテーブルに追加するようにして、日付もDATEADD関数を使用して、1か月分進めて記載させれば問題なく使用できます
    • good
    • 0

>[入庫-出庫+返品]と計算式・・2月分からはへん


>2月 入庫0 出庫1とすると、在庫は-1になってしまうんです
2月以前の在庫数が無ければ-1に当然なります。
2月の在庫を出す場合は1月末時点の在庫数を出して加算しなければダメですよね。
クエリでやりたいのならば演算させる該当月以前の在庫数を計算させるクエリを作り該当月の在庫を演算するクエリに追加して
[入庫-出庫+返品]ではなく
[該当月以前在庫数クエリ]![在庫数]+入庫-出庫+返品
にしないとダメですよね。
または他の方が云うように各月末の在庫数のテーブルを作るとかしないと。とにかく前月末在庫数を加えないと。

この回答への補足

回答ありがとうございます。

>クエリでやりたいのならば演算させる該当月以前の在庫数を計算させるクエリを作り該当月の在庫を演算するクエリに追加して
[入庫-出庫+返品]ではなく
[該当月以前在庫数クエリ]![在庫数]+入庫-出庫+返品
にしないとダメですよね。

出来ませんでした(; _ ;)
該当月以前の在庫数を計算させるクエリを作る際の計算式ってどうすればいいのでしょう??
また、回答お願いします。<(_ _)>

補足日時:2003/06/02 18:24
    • good
    • 0

私がやるとすれば、月次処理や年次処理を入れるかな。


メインのテーブルには当月の入出を記録するとして、月次処理によって一度全部を別のテーブルに吐き出す。
そして前月からの繰越在庫だけをメインテーブルへ「繰越」として持ってくる。
そんな感じ。

今のままで行うなら、「○月の在庫」っていうふうに月で絞らずに、「現時点での在庫」というふうに全取り引きレコードから在庫を算出すれば正しい数が出ますね。
取り引き数が多さにもよりますが、過去・現在・未来の取り引きを1つのテーブルに記録していく現在の方法ではいつかは重くなってしまいますね。

この回答への補足

回答ありがとうございます。

>私がやるとすれば、月次処理や年次処理を入れるかな。
メインのテーブルには当月の入出を記録するとして、月次処理によって一度全部を別のテーブルに吐き出す。
そして前月からの繰越在庫だけをメインテーブルへ「繰越」として持ってくる。
そんな感じ。

具体的に教えてくれませんでしょうか(; _ ;)
月次処理や、年次処理の仕方がわからないんですぅ。

補足日時:2003/06/02 18:20
    • good
    • 0

重くなりますけどね、前月の期末在庫を計算させるクエリーを作成して、その抽出条件に、指定した期間から、1ヶ月前を、Dateadd関数を使用してパラメーター指定してやり、月末算を加算する事で可能になります。


もっと軽くするのであれば、月末ごとに一旦更新するために、テーブルに書き出すようにしてやると、軽く出来ますよ。

この回答への補足

早速の回答ありがとうございます。

>もっと軽くするのであれば、月末ごとに一旦更新するために、テーブルに書き出すようにしてやると、軽く出来ますよ

と、ありますが超超初心者なので具体的に教えてくれませんでしょうか?宜しくお願いします。

補足日時:2003/06/02 18:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています