- ベストアンサー
アクセス2007で在庫管理を求める方法
- アクセス2007を初心者が扱う際の在庫管理について教えてください
- フォームを開いた時に在庫のみを表示する方法を教えてください
- 例えば、入荷と出荷のデータを持つ在庫管理表で、残っている商品のみをフォームで表示させたい
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
在庫の確認フォームはできましたか。 もしまだならば、以下の方法を試してみてください。 テーブル名はT入荷、T出荷とします。 質問のテーブルです。 クエリを二つ作ります。長いSQL文があります。 コピーし、張り付けるときに気をつけてください。 (1) 本来は商品リストというものがあるのでしょうが、 この場合は入荷したものを元に商品名の名寄せ をします。Q入荷商品リスト、という名前にします。 Q入荷商品リスト: SELECT T入荷.商品 FROM T入荷 GROUP BY T入荷.商品; (2) 在庫数が0以上のものを取り出すクエリです。 少し長いSQL文です。Q在庫、という名前にします。 Q在庫: SELECT Q入荷商品リスト.商品, Sum(T入荷.入荷数) AS 入荷数の合計, Sum(T出荷.出荷数) AS 出荷数の合計, Sum(Nz([T入荷]![入荷数]))-Sum(Nz([T出荷]![出荷数])) AS 在庫数 FROM (Q入荷商品リスト LEFT JOIN T入荷 ON Q入荷商品リスト.商品 = T入荷.商品) LEFT JOIN T出荷 ON Q入荷商品リスト.商品 = T出荷.商品 GROUP BY Q入荷商品リスト.商品 HAVING (((Sum(Nz([T入荷]![入荷数]))-Sum(Nz([T出荷]![出荷数])))>0)); 以上、二つのクエリのSQL文を新しいクエリの SQLビューに貼り付けそれぞれの名前で登録し、 保存してください。Q在庫は長いので画面上 で途中で改行されているものがあるかも しれません。 次に、フォームの新規作成をクリックし、 もとになるテーブルまたはクエリの選択で、 Q在庫を選択し、オートフォーム表形式を 選択し、OKとしてください。 これでできあがりです。SQL文の貼り付けと保存、 フォームの作成は慣れてこられたと思います ので、少し簡略しています。 なお、フォームの標題はこのままではQ在庫と 表示されるので、フォームをデザインビュー で開き、フォームのプロパティシートを 表示し、すべてを選択し、その中の標題の 項を在庫とし、保存すればフォームを開いた ときフォームの標題が在庫と表示されます。 また、クエリのQ在庫をデザインビューで 表示し、Q入荷商品リスト、T入荷、T出荷 のテーブルがどのように結合されているか デザインビューのテーブルを少し動かして 確認してみてください。閉じるときに 保存しますか、という表示がでますが、 「はい」でも「いいえ」でもどちらでも かまいません。 話が少しずれますが、本来は、商品名を直接、入荷テーブルや 出荷テーブルに書き込むのではなく、商品テーブルに すべての商品を一旦登録し、それぞれに 登録番号(商品ID)をつけ管理します。 その番号で入荷、出荷、その他の業務において 一意に商品を指定します。そのためには フォームで番号だけで商品を特定する 仕組みを作る必要があります。商品名が、 「北海道生まれで宮崎育ちの完熟メロン」 というような商品名ばかりだとどうしようも ありませんからね。間違う可能性もあり、 上記のクエリでも間違った記入には対応できません。 商品番号での対応ができれば、誤記入を防ぐ 方策を講じておくことでいらない心配がなくなります。 上記のクエリも商品番号で対応できます。 以上です。何かあれば書き込んでください。
その他の回答 (4)
- piroin654
- ベストアンサー率75% (692/917)
入荷数の合計、出荷数の合計 を出す必要がないなら、以下のクエリ を追加作成し、このクエリでフォームを 作成してください。 Q在庫確認: SELECT Q在庫.商品, Q在庫.在庫数 FROM Q在庫; でフォームを作ってください。 追加ですが、この方式はあくまでもこの場合 に即しています。というのも、入荷数の合計、 出荷数の合計はそれぞれ長い間に膨大な 数になります。したがって、本来はどこかで 区切りをいれなければなりません。一つの 商品が100万個、1000万個の単位で入ってくると そのうちにコンピュータが正確な数値を 出せなくなる可能性があります。 少し例が極端でしたが、そのために棚卸を行い、 期首在庫数などの形で在庫数を一定の期間で 特定し、その数値を商品テーブルの各品目に データとして持たせ、その数値を起点に現在 の在庫数を計算します。これだと入荷数の 合計、出荷数の合計を小さい数値で出せます。 つまり、 在庫数=期首在庫数+期間入荷数-期間出荷数 で出します。期首在庫の数値を持たせる理由は 保守、税務、経営その他の重要なことが本来の 理由です。 以上です。
お礼
ありがとうございます とても参考になりました! また宜しくお願いしす
- riveron77
- ベストアンサー率48% (180/370)
↓こんなクエリを作って、URLを参考にしながら、Formを作ってみるといいのでは? SELECT Q_在庫_0あり.商品, Q_在庫_0あり.入荷日, Q_在庫_0あり.入荷, Q_在庫_0あり.出荷日, Q_在庫_0あり.出荷, Q_在庫_0あり.在庫 FROM [SELECT T_入荷.商品, T_入荷.日付 AS 入荷日, T_入荷.入荷数 AS 入荷, T_出荷.日付 AS 出荷日, IIf([出荷数] Is Null,0,[出荷数]) AS 出荷, [入荷]-[出荷] AS 在庫 FROM T_入荷 LEFT JOIN T_出荷 ON T_入荷.商品 = T_出荷.商品]. AS Q_在庫_0あり WHERE (((Q_在庫_0あり.在庫)>0));
お礼
ありがとうございます。 とても参考になりました!
- aokii
- ベストアンサー率23% (5210/22062)
Sheet1に、以下のような入荷データを記載し、D2セルに、 =C2-VLOOKUP(A2,Sheet2!A:C,3,FALSE) と記載して、D2セルを、D6セルまで、下にドラッグコピーし、 未出荷数の列で、オートフィルタ機能を使って、0以外を表示させて下さい。 入荷商品 入荷日付 入荷数 未出荷数 りんご 2010/05/01 10 0 いちご 2010/05/05 10 #N/A ばなな 2010/05/10 10 0 みかん 2010/05/11 10 0 メロン 2010/05/13 10 #N/A Sheet2に、以下のような出荷データを記載して下さい。 出荷商品 出荷日付 出荷数 りんご 2010/05/10 10 ばなな 2010/05/15 10 みかん 2010/05/16 10
お礼
ありがとうございます。 とても参考になりました!
- root_16
- ベストアンサー率32% (674/2096)
商品テーブルに、商品ごとの期初数量 (前期最後の棚卸数量)を作って 入荷数量を足し、出荷数量を引いて 数量を出すクエリを作り、抽出条件で 0より大きいとして適当に作ったフォームに 表示させればいいと思います。
お礼
ありがとうございます。 とても参考になりました!
お礼
いつもありがとうございます 大変参考になりました! 土日が仕事休みの為、今確認したところ出来ました!!! お礼、遅くなって申し訳ありません これからも宜しくお願いしす。