入庫更新クエリでの在庫表の重複反映をなくす方法について

このQ&Aのポイント
  • access超初心者です。在庫表を更新するための入庫更新クエリで、既に存在するレコードを更新する一方で、新しく入庫された商品を追加したいです。しかし、入庫表に新しいレコードを追加して再度更新クエリを実行すると、既存のレコードが重複してしまいます。この問題を解決する方法はありますか?
  • 在庫管理のために、入庫テーブルと在庫テーブルを結合した在庫表を作成しています。入庫更新クエリを使用して、新しい商品を追加したり既存の商品を更新したりしたいのですが、更新クエリを繰り返すと既存のレコードが重複してしまいます。この問題を解決する方法はありますか?
  • accessの超初心者です。在庫表を更新するための入庫更新クエリで、新しい商品を追加する際に既存のレコードと重複してしまいます。この問題を解決する方法を教えてください。
回答を見る
  • ベストアンサー

access 更新クエリ?追加クエリ?

access超初心者です。 いま、下記のような在庫表をつくっています。 (出庫テーブルは省略してます) 入庫テーブル  ID  入庫日付  大分類  中分類  小分類  数量   在庫テーブル  ID  大分類   中分類   小分類  最初の数  入庫数   出庫数 入庫更新クエリ *入庫→在庫  大分類        中分類           小分類 ・入庫の全レコードと在庫表の同じ結合フィールドのレコードだけを含める で結合しています。 *在庫表の入庫数  レコードの更新で  NZ([在庫数]![入庫数],0)+NZ([入庫]![数量],0) といれています。 入庫テーブルに入力していき その都度、 入庫更新クエリにて更新し 在庫表に反映させていきたいと思っています。 入庫表には、この先 在庫表にないものもでてくるので 在庫表にないものは 追加、あるものは、更新としていきたいです。 今の状態だと 入庫表のものは、更新クエリでいったん在庫表に反映されるのですが 入庫表にレコードを追加して また更新クエリをかけると 在庫表が、前に更新したレコードの分も 重複して反映してしまいます。 これをなくすには、どういった方法が ありますか? 宜しくお願いいたします

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

  • ベストアンサー
noname#192382
noname#192382
回答No.2

No1です。入庫データをクリアするのではなく、記帳のときに記帳済みのマークを入れておいて、入庫更新クエリーのとき記帳すみのマークのあるものを除外するほうがよさそうです。

hamkina
質問者

補足

重複して更新されることは これで解決できました! あとは在庫表にないものを 追加して更新させることが 課題です・・・。 ありがとうございました!

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

毎回、更新クエリでテーブルの値を更新するのではなく クエリで、在庫テーブルのIDをグループとして、入庫テーブルの数量を合計するクエリを作成しては如何でしょうか? クエリの作成、テーブルの追加で 在庫テーブルと入庫テーブルを追加 IDでリレーション、在庫テーブルのID、大中小分類と入庫テーブルの数量を配置 「表示」=>「集計] をクリック グループ化 になります。 数量のフィールドの集計(グループ化)をクリックすると 合計 があります。 同様に出荷リストも合計すれば在庫が出ると思います。

noname#192382
noname#192382
回答No.1

入庫テーブルは記帳がすんだら、新しい入庫データを書き込む前にクリアしたらよいのではないですか。

hamkina
質問者

補足

入庫の履歴を残したいので クリアするのは、ちょっと・・・。

関連するQ&A

  • 更新クエリが実行できず、困っています。

    以前こちらで、更新クエリについて教えて頂きましたが、 実行できず、困っています。 在庫クエリで計算した在庫数を、部品マスタの現在庫に代入する 更新クエリを実行すると、 「更新可能なクエリでなければなりません」とエラー表示されます。 UPDATE T_部品マスタ AS A INNER JOIN Q_在庫 AS B ON A.部品品番=B.部品品番 SET A.現在庫 = B.在庫数; と作成しました。 以下に、作成したデータベースを書き出してみます。 どこが悪いのか、ご指摘頂ければ幸いです。 よろしくお願いします。 部品分類テーブル 部品分類ID(主キー) 部品分類名 保管場所テーブル 保管場所ID(主キー) 保管場所 部品マスタテーブル(T_部品マスタ) 部品品番(主キー) 部品分類ID 保管場所ID 部品名 現在庫 入出庫テーブル 入出庫ID(オートナンバー) 日付 部品品番 入庫数量 出庫数量 入出庫テーブルを元にクエリを作る 入庫クエリ 部品品番 入庫数量の合計 出庫クエリ 部品品番 出庫数量の合計 在庫クエリ(Q_在庫) 部品品番(部品テーブル) 部品名(部品テーブル) 入庫数量の合計(入庫クエリ) 出庫数量の合計(出庫クエリ) 在庫数(nz([入庫数量の合計])-nz([出庫数量の合計])

  • Access更新クエリについて教えて下さい

    アクセス超初心者です。 入庫クエリでIDごとの入庫数を合計、 出庫クエリでIDごとの出庫数を合計し、 在庫クエリで在庫数を計算しています。 (入庫クエリの入庫数の合計)-(出庫クエリの出庫数の合計) 部品テーブルがあり、現在庫フィールドを作っています。 ID 部品名 現在庫 1  AAA   10 2  BBB   5 在庫クエリの在庫数を、部品テーブルの現在庫数に 代入したいと考えています。 在庫クエリを使い、テーブル作成クエリで現在庫テーブルを作成、 現在庫テーブルから更新クエリで、部品テーブルの現在庫数を 更新できるのではないかと考えたのですが、 つまづいてしまいました。 現在庫テーブル ID 在庫数 現在庫テーブルの在庫数を、IDごとに部品テーブルの現在庫に 置き換えることは可能ですか? また、その他よい方法がありましたら、教えて下さい。 ご指導のほど、よろしくお願いします。

  • Access クエリでレコードセット作成

    Access2010でVBAを勉強しています。クエリオブジェクトからレコードセットを作れるかお教えください。 クエリのデザイン作成で3つのテーブルからデータを抽出するクエリを作りました。 このクエリオブジェクトからレコードセットを作りたいと思っていますが、作り方がわかりません。 よってクエリオブジェクトのSQLビューでSQLを確認し、VBAの中で下記のようにSQLを作ってレコードセットを作っています。 これだと効率が悪いので、クエリオブジェクトから直接レコードセットがつくれないかと思っています。 方法がありましたらお教え下さい。よろしくお願いします。 strSQL = "SELECT master.[サイズ], master.単価," strSQL = strSQL & "Nz([入庫数量の合計])-Nz([出庫数量の合計]) AS 在庫数" strSQL = strSQL & " FROM (master LEFT JOIN Q_出庫 ON master.[サイズ] = Q_出庫.[サイズ])" strSQL = strSQL & " LEFT JOIN Q_入庫 ON master.[サイズ] = Q_入庫.[サイズ]" objADORS.Open "T_出庫", objADOCON, adOpenDynamic, adLockOptimistic

  • Accessで、在庫表を作りたいのですが・・・

    いつも大変お世話になっております。m(_ _)m また質問させてください。 Accessで、在庫表を作っています。 「入庫情報_テーブル」と「出庫情報_テーブル」があり、それぞれのテーブルは、製品名(型番)と数量の情報を持っています。 入庫情報の数量はプラスして、出庫情報の数量はマイナスして、差引きの在庫表を作りたいのですが・・・ 入庫情報に入っている製品名のすべてを表示して、出庫情報の数量をマイナスする・・・というのは、「結合のプロパティ」で、入庫情報の全レコードと・・・というオプションを選べば可能です。 またその逆も可能なわけですが、両方を全部表示したい時はどうすればいいのでしょうか? つまり、入庫情報に入力されている商品で出庫情報にのっていないものと、出庫情報に入力されている商品で入庫情報にのっていないものがあるわけです。 在庫表では、それぞれのテーブルに存在するすべての製品名を載せ、型番が合致した場合は、入庫数量-出庫数量で在庫を出したいのです。 出庫情報にあって、入庫情報にないものというのは、つまり、在庫数がマイナスになるということです。 両方を同時に満たすには、どのようにすればいいのでしょうか? 質問の説明文が不足していたら指摘してください。 よろしくお願いします。

  • access クエリにて在庫数を出したい

    お世話になります。 accessにて在庫管理DBを構築しています。 在庫数を出そうとすると、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。 いずれかの結合を最初に実行するために、第1次結合を実行する分割クエリを作成し、 SQLステートメントにそのクエリを含めてください。」とエラーが出てしまいます。 なにぶん初心者の為、ちんぷんかんぷんです。 ご教授の程よろしくお願い致します。 t_薬剤マスター 薬剤区分ID、薬剤名、包装内容、包装量、単位、薬価 t_店舗 店舗ID、店舗名 q_入庫数の合計 店舗ID、店舗名、薬剤ID、薬剤名、入庫数の合計、小分入庫数の合計、入庫総合計 q_出庫 店舗ID、店舗名、薬剤ID、薬剤名、出庫数の合計 q_在庫 在庫ID、店舗ID、店舗名、薬剤ID、薬剤名、在庫数 とあります。 t_薬剤マスターとt_店舗から、 それぞれのクエリ、(q_入庫、q_出庫、q_在庫)に 「't_薬剤マスター'の全レコードと'q_入庫'の同じ結合フィールドのレコードだけを 含める。」結合を設定しました。 そして下記の様にクエリを作成 フィールド 店舗ID  店舗名    薬剤ID       薬剤名 ____________________________ テーブル t_店舗  t_店舗     t_薬剤マスター  t_薬剤マスター フィールド 在庫数   入庫総合計     出庫数の合計       ____________________________ テーブル q_在庫マスター q_入庫数総合計  q_出庫数合計        フィールド  在庫数: [在庫数]+[入庫総合計]-[出庫数の合計]    ____________________________ テーブル  と作成しました。。。。が実行するとエラーメッセージが出てきてしまいます。 これは結合が悪いと言う事でしょうか? よろしくお願い致しますm(__)m

  • ACCESSで困っています。分かる方お願いします。

    1.テーブル、クエリで選択したレコードの1行だけ書式や背景の色を変更したいのですが、方法がわかりません。  そのデーターをサブフォームで表示したいのですが、その色の変更が反映されますか? 2.クエリで在庫数を計算するとき、在庫のフィールドに今までの在庫数+入庫数-出庫数の計算をしたいのですが、うまくいきません。 説明不足な部分がありますが、分かる方宜しくお願いします。

  • Access2000で教えてください!!

    Access2000の在庫管理サンプルで、こういう式があったのですが、 =Sum(nz([入庫数])-nz([返品数])-nz([出庫数])) これだと入庫に対しての返品はきくのですが、出庫に対しての返品がききません。。( そこで入庫に対しての返品数はそのままで、出庫に対しての[返品数2]を作成し、 ひとつの式でまとめたいのですが、可能でしょうか?? そもそも-nzとか上の式がよくわかりません・・・。 教えてください! よろしくお願いします!!

  • アクセスのクエリーのことで教えてください

     テーブル1とテーブル2があってクエリーでリレーションシップを組むときに  結合プロパティを「テーブル1の全レコードと、テーブル2の同じ結合フィールドのレコードだけを含める。」にして表を作ろうとしたのですが、テーブル2に レコードが無い場合、テーブル1,2を使って作ったクエリー1で表を作り、 ビルドでクエリー1の項目を貼り付けて、計算させると、テーブル2にレコードが無いと空欄になっているためか、計算がうまく行きません。この問題を解決するにはどのような方法をとればよいですか? ほんとにこまったちゃんになっているので教えてください。 

  • アクセスのクエリで引き算をした結果

    アクセスのクエリで引き算を指定しました。 「入庫数」フィールドから「出庫数」フィールドを引き、差を「在庫表」フィールドに出したいです。 「出庫数」に数字が入っている場合は、きちんと答えが表示されますが、「出庫数」に数字がない場合、空白表示になります。 「出庫数」に数字がない場合でも、そのまま数字(「入庫数」の数字)を表示したいのですが、どのように設定すればいいですか? IF関数を使ってみましたが、ダメでした。 表示の問題?なのかな??とも思えないですし・・・ いつもすみません。m(_ _)m よろしくお願いします。

  • Accessで倉庫管理

    お世話になります。 現在Accessで在庫管理作成中です。 テーブル: 入庫:品番 品名 グループ 数量 使用者 日付 出庫:品番 品名 グループ 数量 使用者 使用状態 日付 グループ:1 消耗品        2 道具       3 機械 クエリ 消耗品在庫:入庫(消耗品)-出庫(消耗品) フォーム: 入庫フォーム、在庫フォームと出庫フォームを作成しました。 在庫フォームはクエリの元で作成しました。 以上のように作りました。 やりたいことは出庫フォームを入力する時、消耗品なら、数量を入力して、一旦在庫を確認して出したい数は在庫があれば、入力できます。そうではない場合はエラーでます。 言葉がうまく説明できないですのでイメージとしては Select Case グループID Case 1 If 数量<「在庫フォーム」の数量 Then  そのまま入力出来ます。在庫が減って行きます。 Else エアー Message box”在庫は足りません” こんな感じでコードに書き換えられますか?コードが弱いですので助けて下さい。 よろしくお願いします。  

専門家に質問してみよう