- ベストアンサー
Accessで製品情報を他のテーブルに追加する方法
- 在庫表作成時に製品マスタと資材マスタを使用する方法について教えてください。
- 受注マスタに受注情報を入力し、必要資材数を算出し在庫明細マスタに追加する方法を教えてください。
- 質問内容に情報が足りない場合はお知らせください。
- みんなの回答 (15)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
新しい年があなた様によい年でありますよう祈念しています。続きの最後の部分を書きましたのでお送りします。 6.在庫量の書き換え 出荷により在庫が減りますので、在庫量の書き換えをする作業です。この作業は「在庫計算クエリーV2」と「在庫更新クエリー1」で行います。 この作業は改良の余地がありますが、一応現在のものをお示しします。 (1)「在庫計算クエリーV2」の作成 1).クェリー新規作成 2).「デザインビュー 」 「OK」 3).「テーブルの表示」のウインドウのなかで「テーブル」の見出しの中にある「受注マスタテーブル1」 をクリックして「追加」ボタンを押す 4)同様に「製品マスタテーブル1」をクリックして「追加」ボタンを押す 5)以下同様に「本体マスタテーブル1」、「本体マスタテーブル1」、「Aポンプマスタテーブル1」、「Bポンプマスタテーブル1」、「パッキンマスタテーブル1」、「Aケースマスタテーブル1」、「Bケースマスタテーブル1」、「キャップマスタテーブル1」、「内袋マスタテーブル1」、「ラベルマスタテーブル1」のすべてのテーブルを追加する。 6).「テーブルの表示」のウインドウのなかで「閉じる」を押す 7.).クエリーのグリッドのフィールドの欄に「受注マスタテーブル1」の「受注ID」をドラッグ貼り付けする。 8)..クエリーのグリッドのフィールドの次の欄に 「製品マスタテーブル1」の「製品名」をドラッグ貼り付けする。 9).次の欄に「受注マスタテーブル1」の「受注数量」をドラッグ貼り付けする。 10)次のふたつの欄に、「本体マスタテーブル1」の「本体名」と「在庫量 」をドラッグ貼り付けする。 11)次の欄では計算式をいれます。そのやり方はセルの中を右クリックするとすだれが出ますのでそのなかの「ビルド」を左クリックします。「式ビルダ」が現れます。「式ビルダ」は4つの枠と計算式に使う演算子と作業命令のたくさんのボタンがあります。上にひとつと下に三つ並んでいます。下の左の枠の中のテーブルを左クリックします。もしかしたらダブルクリックかもしれません。クリックします。 12)テーブルの中身が展開されて、すべてのテーブルの名が現れますから、「本体マスタテーブル1」を選びます。 13)下の中の枠に本体マスタテーブルの中身が示されます。「在庫量」を選び貼り付けのボタンをクリックします。これで上の枠の中に [本体マスタテーブル1]![在庫量] が出てきます。 14)次に演算子のマイナスをクリックします。これで上の枠の中の式にマイナスが書き込まれます。 15)下の左の枠の中の「受注マスタテーブル1」を選び、下の中の枠の中の「受注数量」を選び、貼り付けボタンを押します。「OK」ボタンを押す。これでクエリーのグリッドのセルの中に計算式が入ります。 16)次のふたつの欄に」、「Aポンプマスタテーブル1」の「Aポンプ名」と「在庫量 」をドラッグ貼り付けする。 17)次の欄では計算式をいれます。そのやり方はセルの中を右クリックするとすだれが出ますのでそのなかの「ビルド」を左クリックします。「式ビルダ」が現れます。「式ビルダ」は4つの枠と計算式に使う演算子と作業命令のたくさんのボタンがあります。上にひとつと下に三つ並んでいます。下の左の枠の中のテーブルを左クリックします。もしかしたらダブルクリックかもしれません。クリックします。 18)テーブルの中身が展開されて、すべてのテーブルの名が現れますから、」、「Aポンプマスタテーブル1」を選びます。 19)下の中の枠に、「Aポンプマスタテーブル1」の中身が示されます。「在庫量」を選び貼り付けのボタンをクリックします。これで上の枠の中に 、」、[Aポンプマスタテーブル1]![在庫量] が出てきます。 20)次に演算子のマイナスをクリックします。これで上の枠の中の式にマイナスが書き込まれます。 21)下の左の枠の中の「受注マスタテーブル1」を選び、下の中の枠の中の「受注数量」を選び、貼り付けボタンを押します。「OK」ボタンを押す。これでクエリーのグリッドのセルの中に計算式が入ります。 22)以下同様な作業を「ラベルマスタテーブル1」まで続けます。 23終わりましたら)「在庫計算クエリーV2」の名前で保存します。 (2)「在庫更新クエリー1」の作成 1).クェリー新規作成 2).「デザインビュー 」 「OK」 3).「テーブルの表示」のウインドウのなかでクエリーのタブを選び「クエリー」の中にある)「在庫計算クエリーV2」をクリックして「追加」ボタンを押す。ウインドウに)「在庫計算クエリーV2」の全フィールド名が示される。 4).「テーブルの表示」のウインドウのなかで「閉じる」を押す 5)ツールバーの「クエリー」をクリックして、プルダウンメニューの中の「更新」を選択する。クエリーのデザインビューのグリッドに「レコードの更新」という欄が新たに加わる。 6)クエリーのグリッドのフィールドの一番目に 本体マスタテーブル1.在庫量 をドラッグ貼り付けする。 7)次のセルに Aポンプマスタテーブル1.在庫量 をドラッグ貼り付けする 8)以下同様に ラベルマスタテーブル1.在庫量 までをドラッグ貼り付けする 9)次に「レコードの更新」の欄に移る。「本体マスタテーブル1.在庫量」 の下には 「式9 」をドラッグ貼り付けする。 10)「Aポンプマスタテーブル1.在庫量 」 の下には「 式8 」をドラッグ貼り付けする 11)以下同様に「ラベルマスタテーブル1在庫量」野下に 「式1」 をドラッグ貼り付けするまで続ける。 12))「在庫更新クエリー1」という名称で保存する。 使い方 1)「在庫計算クエリーV2」クエリーをデザイン形式で立ち上げ、受注の件名を「受注ID」の抽出条件のところにたとえば「 41021」と書き込み、、ツールバーのボタンにより実行させ上書き保存する。 2)))「在庫更新クエリー1」をデザイン形式で立ち上げ、ツールバーの実行ボタンを押す。 3)データが書き換えされることについて確認のメッセージが現れるが、承認する。 4)これにより指定した受注案件の注文どおりに出荷したものとして関係のある各部品の在庫量が計算しなおされる。 作業前の本体マスタテーブル1 本体ID 本体名 単位 在庫量 100 200ccボトル本体 1 1000 101 500ccボトル本体 1 1500 103 100ccボトル本体 1 3000 受注ID 12021について作業後の「在庫計算クエリーV2」の計算結果 受注ID 製品名 受注数量 本体名 本体マスタテーブル1.在庫量 式9 Aポンプ名 Aポンプマスタテーブル1.在庫量 式8 Bポンプ名 Bポンプマスタテーブル1.在庫量 式7 パッキン名 パッキンマスタテーブル1.在庫量 式6 Aケース名 Aケースマスタテーブル1.在庫量 式5 Bケース名 Bケースマスタテーブル1.在庫量 式4 キャップ名 キャップマスタテーブル1.在庫量 式3 内袋名 内袋マスタテーブル1.在庫量 式2 ラベル名 ラベルマスタテーブル1.在庫量 式1 41021 ボディソープ 360 500ccボトル本体 1500 1140 なし 0 -360 なし 0 -360 なし 0 -360 小箱A 80 -280 大箱A 30 -330 穴中栓CAP付 4000 3640 内袋A 15000 14640 ボディラベル 48 -312 作業後の本体マスタテーブル1 本体ID 本体名 単位 在庫量 100 200ccボトル本体 1 1000 101 500ccボトル本体 1 1140 103 100ccボトル本体 1 3000
その他の回答 (14)
リレーションについてですが、部品のない場合があるポンプ、キャップ、パッキンについては製品マスターとこれら部品マスターとのリレーションの結合関係の修正が必要です。「製品マスター1対とこれら部品マスター1」の結合ではなく、「製品マスター全体とこれら部品マスターの結合」に修正してください。 ところで在庫明細は必要ないと思いますが、何を書き込みたいのでしょうか。もう一度教えてください。在庫量、製造所、納入日、価格などは各部品マスターに追加書き込みすればよいと思いますが・・・・。
補足
お世話になってます。 明細作成の理由として出荷履歴の保存です。 棚卸時に、顧客との在庫確認をするのですが、よく数量が合わない事があります。 例えば小箱Aの在庫が合わないとします。 合わない理由に、いつ何を何の商品の資材として使ったのか履歴を参照します。 よって、明細マスタを作って、受注マスタとリレーションで結んで、使用した資材名と数量を書き込みたいのです。 当初の質問(2)がこの内容になります。 受注入力後、更新する事で、その製品に使用する資材が表示され必要数及び、残数の確認を行い、決定後表示された受注内容と資材名、使用数を明細マスタに書き込むという流れを目指してました。 よろしくお願いいたします。
下記のように製品マスターテーブル,受注テーブル、本体マスターテーブル、ポンプマスターテーブル、ケースマスターテーブル、内袋マスターテーブル、ラベルマスターテーブルを作り、リレーションを受注テーブルと製品テーブルの間に、また製品テーブルのIDと各資材のマスターテーブルの各IDの間に作成して、クエリーの中に関係するフィールドをすべて取り込み、クエリーの抽出条件のところに受注NO を入れて、クエリーを実行させると一番下の表が出てきます。これが第1段階の答えです。テーブルは全部作っていませんがお許しください。できることは確認できました。 製品ID 製品名 本体ID ポンプID ケースID 内袋ID ラベルID 10010 ハンドソープ 100 200 401 600 700 10020 ボディソープ 101 401 600 701 10030 携帯用除菌剤 103 201 402 602 703 受注NO 製品ID 数量 希望納期 決定納期 受注日 41000 10010 600 2013/12/25 2013/12/25 2013/12/16 41021 10020 360 2013/12/25 2013/12/25 2013/12/16 41024 10030 100 2014/01/13 2014/01/13 2013/12/19 本体ID 本体名 在庫量 100 200ccボトル 1000 101 500ccボトル 1500 103 100ccボトル 3000 ポンプ ポンプ名 梱包単位 在庫量 200 泡ポンプ 1 5000 201 スプレーA 1 5500 202 オーバーCAP 1 5000 203 オーバーCAPB 1 5500 ケースID ケース名 梱包単位 在庫量 401 小箱A 6 80 402 小箱B 10 100 403 大箱A 10 30 404 大箱B 4 40 内袋ID 内袋名 梱包単位 在庫量 600 内袋A 10 15000 602 内袋B 40 14000 ラベルID ラベル名 梱包単位 在庫量 700 泡ラベル 1 32 701 ボディラベル 1 48 702 除菌ラベル 1 48 受注NO 製品ID 製品名 本体ID 本体名 ポンプID ポンプ名 ケースID ケース名 内袋ID 内袋名 ラベルID ラベル名 41000 10010 ハンドソープ 100 200ccボトル 200 泡ポンプ 401 小箱A 600 内袋A 700 泡ラベル
補足
optimumsoupさん。ご連絡が遅くなりすみません。 そもそも設計自体に問題がるようで、お手間をおかけいたしました。 とりあえず、ここまで修正を行い、明細に取り掛かってるのですが、やはり明細の資材名と製品マスタ及び、資材の各マスタのリレーションがうまくいきません。 よろしくお願いいたします。
すみませんがイメージすることができません。それぞれのテーブルにサンプルデータを3つずつでも入れたものを見せていただけませんか。
補足
optimumsoupさん、ご協力ありがとうございます。 サンプルになりますが、品名が明確過ぎて都合が悪いので、仮品名とさせて頂きます。 資材マスタ・在庫明細マスタは情報が多いので、列と行を入れ替えてます。 膨大な量になってしまい申し訳ございませんが、よろしくお願いします。 製品マスタ 製品コード:10010 10020 10030 製品名 :ハンドソープ ボディソープ 携帯用除菌剤 資材1 :100 101 103 資材2 :200 なし 201 資材3 :202 なし 203 資材4 :なし なし 301 資材5 :401 401 402 資材6 :403 403 404 資材7 :なし 500 なし 資材8 :600 600 602 資材9 :700 701 703 資材マスタ 資材コード 資材名 単位 分類 初期在庫 100 200ccボトル本体 1 本体 1000 101 500ccボトル本体 1 本体 1500 103 100ccボトル本体 1 本体 3000 200 泡ポンプ 1 ポンプ 5000 201 スプレーA 1 ポンプ 5500 202 オーバーCAP 1 ポンプ 5000 203 オーバーCAP B 1 ポンプ 5500 301 20φパッキン 1 パッキン 10200 401 小箱A 6 ケース 80 402 小箱B 10 ケース 100 403 大箱A 10 ケース 30 404 大箱B 4 ケース 40 500 穴中栓CAP付 1 CAP 4000 600 内袋A 10 内袋 15000 602 内袋B 40 内袋 14000 700 泡ラベル 1 ラベル 32 701 ボディラベル 1 ラベル 48 702 除菌ラベル 1 ラベル 48 受注マスタ 受注NO :41000 41021 41024 製品コード:10010 10020 10030 数量 :600 360 100 希望納期 :12/25 12/25 1/13 決定納期 :12/25 12/25 1/13 受注日 :12/16 12/16 12/19 在庫明細マスタ No 受注No 資材コード 出荷日 出荷数 1 41000 100 12/25 600 2 41000 200 12/25 600 3 41000 202 12/25 600 4 41000 401 12/25 100 5 41000 403 12/25 10 6 41000 600 12/25 10 7 41000 700 12/25 600 8 41021 101 12/25 360 9 41021 401 12/25 6 10 41021 403 12/25 1 11 41021 500 12/25 360 12 41021 600 12/25 1 13 41021 701 12/25 360 14 41024 103 1/13 100 15 41024 201 1/13 100 16 41024 203 1/13 100 17 41024 301 1/13 100 18 41024 402 1/13 10 19 41024 404 1/13 3 20 41024 602 1/13 3 21 41024 703 1/13 100
わからいことが多いです。製品マスターの中には製品名のフィールドがないのでしょうか。 資材1から9はなにでしょうか。色、サイズ、などはどこに入るのですか。資材マスターは、資材1マスター資材2マスター資材3マスターとあると理解しやすいのですが、資材マスターひとつだけですか。・・・・在庫明細マスターの内容は何でしょうか。
補足
optimumsoupさん、ご指摘ありがとうございます。 情報不足でしたので、詳細を記載します。 製品マスタ:製品コード、製品名、資材1、資材、資材3、資材4、資材5、資材6、資材7、 資材8、資材9 例)製品コード:10010、製品名:ハンドソープ、資材1:200ccボトル本体、資材2:泡ポンプ、 資材3:オーバーCAP、資材5:小箱、資材6:大箱、資材8:内袋A、資材9:泡ラベル (資材マスタに分類を設けていますので、分類毎に資材1~9の設定をしました) 資材マスタ:資材コード、資材名、単位、分類、初期在庫 例)資材コード:101、資材名:200ccボトル本体、単位:1、分類:本体、初期在庫:3000 (分類クエリにて本体、ポンプ、CAP、パッキン、箱1、箱2、内袋、ラベルと分けており最大9種類の資材組み合わせがあるので、資材1~9を設定しました) 受注マスタ:受注No、製品コード、数量、希望納期、決定納期、受注日、備考 例)受注No:41000、製品コード:10010、数量:1000、希望納期:12/27、決定納期:12/26 、受注日:12/20 (製品コードでリレーションシップ) 在庫明細マスタ:No、受注No、資材コード、出荷日、出荷数、備考 例)No:オートナンバー、受注No:41000、資材コード:101、出荷日:12/26、出荷数:1000 (受注Noでリレーションシップをしていますが、資材コードと製品マスタの資材1~9は結合?この辺りの設計がよくわかってません) 仕入管理マスタ:No、資材コード、仕入日、仕入数 (現在マスタのみの作成です) この様な設計です。 在庫明細マスタ行で記載してますが、この辺りの設計もおかしいかもしれません。 何卒、ご検討をお願いします。
- 1
- 2
お礼
補足にて記載してしまいました。 本当に長い間お付き合いいただきありがとうございました。 何とか、形になりました。 質問内容だけでなく、設計の仕方、クエリ作成方法、写真など、本当に丁寧且つ、親切に対応して頂いた事を感謝しております。 ありがとうございました。
補足
optimumsoup 様。 本当に長い間お付き合いいただきありがとうございました。 何とか、形になりました。 質問内容だけでなく、設計の仕方、クエリ作成方法、写真など、本当に丁寧且つ、親切に対応して頂いた事を感謝しております。 ありがとうございました。