• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 製品情報を他のテーブルに追加する方法)

Accessで製品情報を他のテーブルに追加する方法

このQ&Aのポイント
  • 在庫表作成時に製品マスタと資材マスタを使用する方法について教えてください。
  • 受注マスタに受注情報を入力し、必要資材数を算出し在庫明細マスタに追加する方法を教えてください。
  • 質問内容に情報が足りない場合はお知らせください。

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

  • ベストアンサー
noname#192382
noname#192382
回答No.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

t-seisan1
質問者

お礼

補足にて記載してしまいました。 本当に長い間お付き合いいただきありがとうございました。 何とか、形になりました。 質問内容だけでなく、設計の仕方、クエリ作成方法、写真など、本当に丁寧且つ、親切に対応して頂いた事を感謝しております。 ありがとうございました。

t-seisan1
質問者

補足

optimumsoup 様。 本当に長い間お付き合いいただきありがとうございました。 何とか、形になりました。 質問内容だけでなく、設計の仕方、クエリ作成方法、写真など、本当に丁寧且つ、親切に対応して頂いた事を感謝しております。 ありがとうございました。

その他の回答 (14)

noname#192382
noname#192382
回答No.4

リレーションについてですが、部品のない場合があるポンプ、キャップ、パッキンについては製品マスターとこれら部品マスターとのリレーションの結合関係の修正が必要です。「製品マスター1対とこれら部品マスター1」の結合ではなく、「製品マスター全体とこれら部品マスターの結合」に修正してください。 ところで在庫明細は必要ないと思いますが、何を書き込みたいのでしょうか。もう一度教えてください。在庫量、製造所、納入日、価格などは各部品マスターに追加書き込みすればよいと思いますが・・・・。

t-seisan1
質問者

補足

お世話になってます。 明細作成の理由として出荷履歴の保存です。 棚卸時に、顧客との在庫確認をするのですが、よく数量が合わない事があります。 例えば小箱Aの在庫が合わないとします。 合わない理由に、いつ何を何の商品の資材として使ったのか履歴を参照します。 よって、明細マスタを作って、受注マスタとリレーションで結んで、使用した資材名と数量を書き込みたいのです。 当初の質問(2)がこの内容になります。 受注入力後、更新する事で、その製品に使用する資材が表示され必要数及び、残数の確認を行い、決定後表示された受注内容と資材名、使用数を明細マスタに書き込むという流れを目指してました。 よろしくお願いいたします。

noname#192382
noname#192382
回答No.3

下記のように製品マスターテーブル,受注テーブル、本体マスターテーブル、ポンプマスターテーブル、ケースマスターテーブル、内袋マスターテーブル、ラベルマスターテーブルを作り、リレーションを受注テーブルと製品テーブルの間に、また製品テーブルの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 泡ラベル

t-seisan1
質問者

補足

optimumsoupさん。ご連絡が遅くなりすみません。 そもそも設計自体に問題がるようで、お手間をおかけいたしました。 とりあえず、ここまで修正を行い、明細に取り掛かってるのですが、やはり明細の資材名と製品マスタ及び、資材の各マスタのリレーションがうまくいきません。 よろしくお願いいたします。

noname#192382
noname#192382
回答No.2

すみませんがイメージすることができません。それぞれのテーブルにサンプルデータを3つずつでも入れたものを見せていただけませんか。

t-seisan1
質問者

補足

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

noname#192382
noname#192382
回答No.1

わからいことが多いです。製品マスターの中には製品名のフィールドがないのでしょうか。 資材1から9はなにでしょうか。色、サイズ、などはどこに入るのですか。資材マスターは、資材1マスター資材2マスター資材3マスターとあると理解しやすいのですが、資材マスターひとつだけですか。・・・・在庫明細マスターの内容は何でしょうか。

t-seisan1
質問者

補足

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、資材コード、仕入日、仕入数 (現在マスタのみの作成です) この様な設計です。 在庫明細マスタ行で記載してますが、この辺りの設計もおかしいかもしれません。 何卒、ご検討をお願いします。

関連するQ&A