アクセスで出荷管理の処理を効率化する方法

このQ&Aのポイント
  • 出荷管理の仕事をしている方向けのアクセスによる処理効率化の方法についてご紹介します。
  • 具体的な例として、品番Aの注文番号と納品数を入力し、出荷数と納品残数を計算する処理を考えます。
  • アクセスを使えば、複数件の処理もループさせることが可能です。
回答を見る
  • ベストアンサー

アクセスについて!!

現在、出荷管理の仕事をしております。 処理内容を記載いたします。 品番 注文番号 納品数があります。 品番A とし 注文番号 1  納品数が100  品番A    注文番号 2  納品数が200 だとします。 今回の、出荷は、150だとすると、 伝票の記載が、以下のようになります。 品番   注文番号 納品数  納品残数 A     1    100     0 A     2     50   150     また、出荷数が、50だと 品番   注文番号 納品数  納品残数 A     1    50     50 入力内容は、A品、出荷数と入力いたします。 (例は、一件だけですが、もちろん複数件の処理を行います) その為、通常のPG上ならば、条件式にてループさせ 処理を行うのでしょうが、アクセスでもそれは、可能でしょうか? 可能であれば、詳しく教えて頂きたいのですが、 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.4

#3です 出荷日の関係で調整しようかと、考えて作ったつもりなんですが・・・ 出荷日を分散して日付を、いろいろ入れていくとうまく動作しません^^; SELECT Tbl_注文伝票.品番, Tbl_注文伝票.注文番号, Tbl_注文伝票.注文日, Tbl_注文伝票.契約数, (SELECT Sum(Tbl_Sub.契約数) FROM Tbl_注文伝票 As Tbl_Sub WHERE (Tbl_注文伝票.品番=Tbl_Sub.品番) AND (Tbl_Sub.注文日<=Tbl_注文伝票.注文日)) AS 累積契約数, (SELECT Sum(Tbl_出荷伝票.出荷数) FROM Tbl_出荷伝票 WHERE (Tbl_出荷伝票.品番=Tbl_注文伝票.品番)) AS 累計出荷数, IIf([累積契約数]<[累計出荷数],[契約数],IIf(([累積契約数]-[契約数])<[累計出荷数],[契約数]-[累積契約数]+[累計出荷数],0)) AS 納品数, [契約数]-[納品数] AS 残納品数 FROM Tbl_注文伝票; で、とりあえず、累積から累計に変えて考えてあるのですが・・・注文が無いのに出荷があるとかは、別に入力上でチェックできるようにしていかないと、駄目でしょうね

その他の回答 (3)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

質問の意味を理解するのに大変時間が掛ってます;; > 品番A とし 注文番号 1  納品数が100 > 品番A    注文番号 2  納品数が200 の部分が納品数と言うのが注文番号に対して受けた契約数だと考えて (納品数が、文章の途中で意味が違うのね;;) Tbl_注文伝票 品番 注文番号 注文日 契約数 A 1 2007/05/01 100 A 2 2007/05/15 200 Tbl_出荷伝票 品番 出荷日 出荷数 A 2007/05/20 150 から、クエリで SELECT Tbl_注文伝票.品番, Tbl_注文伝票.注文番号, Tbl_注文伝票.注文日, Tbl_注文伝票.契約数, (SELECT Sum(Tbl_Sub.契約数) FROM Tbl_注文伝票 As Tbl_Sub WHERE (Tbl_注文伝票.品番=Tbl_Sub.品番) AND (Tbl_Sub.注文日<=Tbl_注文伝票.注文日)) AS 累積契約数, (SELECT Sum(Tbl_出荷伝票.出荷数) FROM Tbl_出荷伝票 WHERE (Tbl_出荷伝票.品番=Tbl_注文伝票.品番) AND (Tbl_出荷伝票.出荷日>=Tbl_注文伝票.注文日)) AS 出荷数, IIf([累積契約数]<[出荷数],[契約数],IIf(([累積契約数]-[契約数])<[出荷数],[契約数]-[累積契約数]+[出荷数],0)) AS 納品数, [契約数]-[納品数] AS 残納品数 FROM Tbl_注文伝票; と作って 品番 注文番号 注文日 契約数 累積契約数 出荷数 納品数 残納品数 A 1 2007/05/01 100 100 150 100 0 A 2 2007/05/15 200 300 150 50 150 と、いう結果なんでしょうか? (不要な結果の部分が出てきますがね^^;頭の中で考えている場合、使ってる数値だと思いますが?) また、出荷先が同じとして考えてあるので出荷先が、またがる場合また作り直しでしょうね

toshi-k64
質問者

お礼

早速の回答ありがとうございます。 ご指摘のとおり 品番A とし 注文番号 1  納品数が100 納品数ではなく、ここで書かれている契約数(注文数) となります。また、出荷先に関しては、本社納めとなる為 同一となります。NO.3・NO.4を、読み直しチャレンジしてみます。 ありがとうございます。

noname#140971
noname#140971
回答No.2

一介のデザイナでプログラマではありませんので参考までに・・・。 <品番マスター> ID___品番 1____A 2____B <注文履歴> ID____受注日________注文番号__品番_ID__注文数 1_____2007/07/01__70701001__1___________100 2_____2007/07/02__70702001__2___________100 3_____2007/07/03__70703001__1___________100 <納品履歴> ID____納品日_________注文番号___品番_ID__納品数 1_____2007/07/04___70701001___1___________50 2_____2007/07/05___70701001___1 ___________25 3_____2007/07/05___70703001___1 ___________70 4_____2007/07/06___70702001___2 ___________80 さて、このような<注文履歴>と<納品履歴>を基に下の<クエリ1>を作成してみました。 <クエリ1> 受注日________注文番号_____品番___注文数__納品日_________納品数___納品残数 2007/07/01__70701001_____A____________100__2007/07/04_________50____________50 2007/07/03__70703001_____A____________100__2007/07/05_________70____________30 2007/07/01__70701001_____A____________100__2007/07/05_________25____________25 2007/07/02__70702001_____B____________100__2007/07/06_________80____________20 ですから、Access の場合は、かかるクエリを作成する能力次第ということになります。 >記録に残すのは入りと出、それがあれば残数は計算で求まります。 とは、こういうことかも知れません。 なお、<クエリ1>を[SQL ビュー]で表示すると、次のようです。 SELECT 注文履歴.受注日, 注文履歴.注文番号, 品番マスター.品番, 注文履歴.注文数, 納品履歴.納品日, 納品履歴.納品数, (DBSUM("注文数","注文履歴","注文番号=" & 注文履歴.注文番号)-DBSUM("納品数","納品履歴","注文番号=" & 注文履歴.注文番号 & " AND 納品日<=#" & 納品履歴.納品日 & "#")) AS 納品残数 FROM (注文履歴 LEFT JOIN 品番マスター ON 注文履歴.品番_ID=品番マスター.ID) LEFT JOIN 納品履歴 ON 注文履歴.注文番号=納品履歴.注文番号 ORDER BY 納品履歴.納品日; 大体、イメージがつかめたでしょうか?

toshi-k64
質問者

お礼

早速の回答ありがとうございます。 拝見させていただきました。 多分、納品履歴は、注文番号に対しての処置を行っているのでは ないかと思います。残念ながら、注文番号に対しての、処置は、あくまで、注文番号の早い順+日付の早い順で、消していきます。その為、注文番号が2つ同時に流れる事はありません。(単一に、注文番号に対しての処置であれば、ここまで困らないのですが・・・。) 発送先は、基本的に、一社のみの為、注文番号は、先ほども記載したとおり、複数の通常の注文の納品数を足した数となっている為、必ず、納品をしたら、その、注文番号に対して。完納しなければ、次の、注文番号の、納品にいたりません。お手数をおかけしますが、宜しくお願いいたします。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

この方法だとどれだけ出荷したかの情報が残らないですね 記録に残すのは入りと出、それがあれば残数は計算で求まります 設計から見直さなきゃどうしようもないでしょうね

toshi-k64
質問者

お礼

早速の回答ありがとうございます。上記の補足でも記載いたしたように生産管理(材料発注)為の、覚え書き・進捗度合いの確認?みたいな伝票となっております。その為、注文番号と納品数が、対になっていないのです。(生産管理者は、複数の注文を合算し、この、伝票用に、新たに注文番号を切り、納品数を加算して来るのです)個人的には、これに、携わる作業は、エクセルにて、毎日行っていて、あくまでも、生産管理者の言われるがままとなっていて、正直、無駄に近いと思っているのですが、会社自体がそれを、良と思っているので、どうしようもありません。その為、これに費やす時間を減らしたいと思い質問したしだいです。

toshi-k64
質問者

補足

早速の回答ありがとうございます。これは、あくまでも、生産管理(材料発注)の確認の為の伝票となります。通常の、出荷自体の、伝票は別にあります。

関連するQ&A

  • Access2007についての質問です

    Access2007を用いて、旅館の在庫管理をしたいのですが、 おおまかなイメージがつかず、手詰まり状態となってしまいました。 商品、商品注文、顧客のマスターを作成し、在庫テーブルを作ってクエリで現在在庫数を  現在在庫数: [総在庫数]-[現在出荷数]  のように表示させました。 各テーブルについては サービスマスター:ID、サービス名、価格 顧客マスター:ID、氏名、住所、電話番号 注文マスター:注文ID、顧客ID、サービス名、注文日、納品日 商品注文マスター:商品注文ID、顧客ID、商品名、注文日、納品日 商品マスター;商品ID,商品名、価格 となっています。 この後は、商品注文フォームから現在出荷数を随時更新できるようにしたいのですが どのように行うべきでしょうか。よろしくお願いします。

  • accessで困っています

    access2000で、簡単な在庫管理ソフトを作っています。 商品マスタ(商品No、商品名、在庫初期値) 入荷マスタ(日付、商品名、入荷数) 出荷マスタ(出荷履歴No、日付、得意先名、商品名、出荷数) をテーブルに設け、商品を出荷入力すれば、初期値ー出荷数+入荷数をクエリ上で計算し、在庫数とし表示させています。 これに、出荷入力をしてそれを納品書として印刷させます。当たり前ですが、1商品出荷につき1枚の納品書しか印刷されません。 商品マスタに、商品名2や商品名3を設け、1枚に3種類まで印刷させようとすると、在庫計算方法がよく分からなくなります。 初心者で、どの様に作っていけば良いのかわかりません。 皆様のお知恵をお貸しいただけますでしょうか。 宜しくお願い致します。

  • Access 教えてください

    以下行いたいのですが、 どのようにすればそれが実現することができるか、アイデアをください。 やりたいことは以下です。 ・Accessでtextデータを取込む処理を日々ボタンを押して毎日回しています。 ・取込結果をそのまま表示させる単純なインポートですが、  前日に取り込まれた情報については、「前日フラグ」を立てて、  前日と当日の取込分の差分を明確に区別できるようにしたいです。 ・たとえば、10/26に3件(A品番、B品番、C品番)の取込を行った場合、  10/25に取り込んだ件数が2件(C品番、D品番)の場合、  10/26の取込処理では、C品番には前日フラグを立てた状態としたいです。  (A、B品番はそのまま取込処理。差分がA、Bの2件と明確に区別できる。) ばくっとした質問ですみませんが、どんなことでも構いません。 何かアイデアや考え方をお寄せ頂けると非常に助かります。 よろしくお願いします。

  • 毎月月末時点の数を求める関数

    1,在庫表で毎月末の在庫数量を関数で自動的に表示させる計算式が知りたいです。 2,毎月末ごとの数を抽出した後、別ファイルで月末在庫一覧表を作成し自動集計させることは可能でしょうか。 在庫表のフォームの項目は 出荷日、納品日、納品先、入り目、出荷個数、出荷数量(入り目×出荷個数)、出荷後残数量と横並びで、入荷数量から順に出荷数量が減算される計算式を入れています。 このような在庫表で品目ごとに10数個のファイルで管理しています。 注文を受けた順に上から下へ入力していて、出荷日、納品日は順不同、月末の日付で出荷があるとも限りません。 全く出荷のない月もあります。 よろしくお願いします。

  • 皆様いつも大変お世話になっております。また、いつも

    皆様いつも大変お世話になっております。また、いつも親切で的確なご回答をいただき、感謝申し上げます。 この度、部品の入庫・在庫管理が全く行われていない会社に入社して管理を任せれ苦慮しています。 使用するアプリはEXCELで注文書の作成して印刷して仕入先へFAXを行い、注文書のデータは別シートに蓄積され、入荷時に別シートを開けて入荷数と入荷日を手入力しております。 今後は、EXCELで下記仕様にて注文番号をバーコード化して、それを一つの管理コードとして入荷・在庫管理を行いたいと思います(ある注文番号を入力すると該当する品名/型番・注文数・注文単価が表示される)。 お知恵をお借りいたしたくご教示のほどお願い申し上げます。 (1)注文書のデータは別シートに蓄積され、注文番号・品名/型番・注文数・注文単価・入荷数・入荷日が入力されている。 (2)在庫管理シートを作成する。部品毎に別シートで管理、品名/型番・注文番号・注文数・入荷数・在庫数が入力されている。 (3)(1)より納品書を作成して、納品書の注文番号の隣に注文番号をバーコードで表示させる。仕入先に注文書と納品書をFAXや電子メールのPDFデータを送信する。 (4)仕入先は、(3)の納品書を使用して納品書。バーコード化された注文番号をバーコードでリーダーで読み取り(1)のシートの該当する注文番号のデータを呼び出す。入荷数と入荷日のセルに注文数の数字と入荷日(当日)を反映させる。 (5)(4)の処理と同時に注文番号より(2)の別に作成されている在庫管理シートの該当する注文番号を選択して注文番号の右列の入荷数を入力するセルに自動で入荷数を反映させる。 以上が行いたい処理の仕様ですが、もしかしたら不可能かもしれません。 少なくとも、(1)(3)(4)は行うことができればと思います。 よろしくお願いいたします。

  • excelで在庫管理

    excellで、下記の内容の在庫管理表を作成したいのですが、可能であれば方法をご教授お願いします。 セット加工品の資材の残数と、セット加工品の残数、セット加工品の納品数が日別、月別にわかるような表です。 例えば、 5/1に資材を100セット仕入 5/2に20セット加工  同日5セットを納品 5/6に10セット加工   5/7に20セット納品 6/2資材を50セット仕入 6/5に20セット加工 同日30セット納品 上記の内容で、5/1、5/2、5/6、5/7、6/2、6/5時点の資材の残数、セット加工品の残数、納品数 また月別のそれぞれの残数、がわかるものです。 よろしくお願いします。

  • 複雑なSQLを1本でまとめたい

    Oracle10gで開発をしています。 1本のSQLで下記のような結果を返したいのですが、 やり方がわかりません。 どなたかご教授頂けないでしょうか? Aテーブル No  注文番号 品番 在庫数 注文数 -  ---- -- --- --- 1   001   a001  10    0 2   002   a001  5     5 3   003   b001  10    10 4   004   c001  5     2 5   005   d001  20    0 SELECT * FROM Aテーブル WHERE 在庫数 - 注文数 > 0 結果 No  注文番号 品番 在庫数 注文数 -  ---- -- --- --- 1   001   a001  10    0 4   004   c001  5     2 5   005   d001  20    0 となりますが、 これを 結果 No  注文番号 品番 在庫数 注文数 -  ---- -- --- --- 1   001   a001  10    0 2   002   a001  5     5 4   004   c001  5     2 5   005   d001  20    0 という風に、1番目の結果+1番目の結果にある商品の 他レコードも抽出したいのですが、どうしたらよいでしょうか?

  • アクセスでデータを横に並べる方法

    アクセス2003を使って注文管理のデータベースを作っています。 テーブル「納品データ」のデータを発注番号ごとに納品日と納品数を横に並べたものを作りたいのですが、集計クエリでやってみてもうまくできませんでした。過去の質問の中にも似たようなものがあったのですが、一部理解できない箇所があったりして方法が分からなかったため、質問させていただきます。 ■テーブル「納品データ」 |納品番号|発注番号|納品日|納品数|   1     1   04/01  5   2     1   04/02  4   3     1   04/03  3   4     2   04/06  8   5     2   04/08  7   6     3   04/04  6   7     3   04/07  5   8     3   04/09  4   9     4   04/05  7   10     4   04/08  8 ■今やろうとしているもの 発注番号|納品日|納品数|納品日|納品数・・・  1   04/01  5  04/02  4  04/03 3  2   04/03  8  04/04  7    3   04/02  6  04/03  5  04/04 4  4   04/02  7  04/03  8 うまく表形式でできなくて、ズレていてすみません。 最終的には、これをサブクエリとしてメイン-サブの親子レポートを作成しようと思っています。

  • Microsoft office access VBAについて

    Access2007を用いて、旅館の客室の在庫管理をしたいのですが、 おおまかなイメージがつかず、手詰まり状態となってしまいました。 商品、商品注文、顧客のマスターを作成し、在庫テーブルを作ってクエリで現在在庫数を  現在在庫数: [総在庫数]-[現在出荷数]  のように表示させました。 各テーブルについては サービスマスター:ID、サービス名、価格 顧客マスター:ID、氏名、住所、電話番号 注文マスター:注文ID、顧客ID、サービス名、注文日、納品日 商品注文マスター:商品注文ID、顧客ID、商品名、注文日、納品日 商品マスター;商品ID,商品名、価格 となっています。 この後は、予約をするとその場で在庫が減る・在庫はマイナスにならないようにしたいのですが どのように行うべきでしょうか。 予約は1度に1件までで、エラーはなしとします。 検索をしたり参考書を参照したところ、VBAを使用するとのことですが、まったくもって知識がないです。ほかの方法かわかりやすい解説のほうをよろしくお願いします。

  • 注文番号をバーコード化して入庫・在庫管理を行いたい

    この度、部品の入庫・在庫管理が全く行われていない会社に入社して管理を任せれ苦慮しています。 使用するアプリはEXCELで注文書の作成して印刷して仕入先へFAXを行い、注文書のデータは別シートに蓄積され、入荷時に別シートを開けて入荷数と入荷日を手入力しております。 今後は、EXCELで下記仕様にて注文番号をバーコード化して、それを一つの管理コードとして入荷・在庫管理を行いたいと思います(ある注文番号を入力すると該当する品名/型番・注文数・注文単価が表示される)。 お知恵をお借りいたしたくご教示のほどお願い申し上げます。 (1)注文書のデータは別シートに蓄積され、注文番号・品名/型番・注文数・注文単価・入荷数・入荷日が入力されている。(添付ファイルの画像下部) (2)在庫管理シートを作成する。部品毎に別シートで管理、品名/型番・注文番号・注文数・入荷数・在庫数が入力されている。 (3)(1)より納品書を作成して、納品書の注文番号の隣に注文番号をバーコードで表示させる。仕入先に注文書と納品書をFAXや電子メールのPDFデータを送信する。(添付ファイルの画像上部) (4)仕入先は、(3)の納品書を使用して納品書。バーコード化された注文番号をバーコードでリーダーで読み取り(1)のシートの該当する注文番号のデータを呼び出す。入荷数と入荷日のセルに注文数の数字と入荷日(当日)を反映させる。 (5)(4)の処理と同時に注文番号より(2)の別に作成されている在庫管理シートの該当する注文番号を選択して注文番号の右列の入荷数を入力するセルに自動で入荷数を反映させる。 以上が行いたい処理の仕様ですが、もしかしたら不可能かもしれません。 少なくとも、(1)(3)(4)は行うことができればと思います。 VBAは、ほとんど経験がありません。少なくとも(1)(3)(4)は行うことができればと思うのですが、教えていただけませんでしょうか?。 ・注文データの入力 ・納品書の作成印刷 ・バーコード表示 ・商品台帳管理 ・入庫明細作成蓄積 ・出庫明細作成蓄積(納品書の作成と連動です。) ・商品の在庫管理(入庫明細、出庫明細作成と連動です) 以上の機能があれば助かります。 小生の都合で申し訳ありませんが、年末年始休暇を勉強をかねて作成に努めたいと思います。 お忙しいところ申し訳ありませんが、可能な限りご協力・ご指導のほどをお願い申し上げる次第です。 よろしくお願いいたします。

専門家に質問してみよう