• ベストアンサー

アクセス 削除クエリ☆★

アクセス初心者です。 テーブル【在庫】 メーカー名 ナンバー A社     1 B社     2 C社     3 テーブル【出庫】 ナンバー 1 3 削除クエリ実行 ↓ テーブル【在庫】 B社     2 在庫、出庫テーブルがありナンバーが一致する場合は在庫テーブルの行を削除したいのです。 初心者でSQLがまったくわかりません。 デザインビューでは出来ないものなのでしょうか?? おわかりの方教えてくださーい!

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

  • ベストアンサー
  • matui2000
  • ベストアンサー率19% (30/155)
回答No.1

出来るんじゃないですか。DeleteのWHERE句の所にSELECT文を書いてやればいいんじゃないでしょうか? SELECT文は DELETE文 そのWHERE句に以下に記述を書く WHERE 在庫.ナンバー = ( SELECT 在庫2.ナンバー FROM 在庫 在庫2,出庫  WHERE 在庫2.ナンバー = 出庫.ナンバー ) こんな感じでどうでしょうか?

taifu1971
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.2

DELETE T_在庫.* FROM T_在庫  INNER JOIN T_出庫 ON T_在庫.ナンバー = T_出庫.ナンバー; もしくは、 DELETE T_在庫.* FROM T_在庫, T_出庫 WHERE T_在庫.ナンバー = T_出庫.ナンバー;

taifu1971
質問者

お礼

ありがとうございました。

関連するQ&A

  • アクセスのクエリでレコード削除ができません。

    アクセス超初心者です。 テーブルを商品コードでくっつけて、クエリのデザインビューで表示しました。 いらないレコードを削除しようとしたところ、できません。 くっつける前の、テーブルではできますが、クエリで実行させ、レコードを削除しようとしたところできません。 どうしたらよいのか教えてください。 あと、もうひとつ、クエリで、出力したいフィールド名をドラッグしたあと、削除したいときには、どうすればよいでしょうか? 表示しないなら、できるのですが・・・。削除がわかりません。 よろしくお願いいたします。

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

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

  • ACCESSのクエリで同じSQL文だが結果が異なる

    ACCESS2003にて 選択クエリAをSQLビューで開きSQL文をコピー、 新規作成したクエリBのSQLビューに貼り付けて実行したところ、 AとBで結果の件数が異なりました。 そのままBを保存して終了。 BをSQLビューで開き、 SQL文の末尾の;を削除して実行すると、 Aと同じ件数の結果になりました。 再度Bを保存して終了し、 BをSQLビューで開き、 SQL文の末尾の;を削除して実行すると、 Aと異なる件数(元の結果)になりました。 何が原因なのでしょうか。 SQL文の内容は、サブクエリを含んでいて、サブクエリのFROMは SQLSERVERのリンクテーブルです。 よろしくお願いします。

  • アクセスのクエリで出来る事なのでしょうか?

    以下の様な処理がクエリで出来るものかの判断がつかず、また、出来るとしてもクエリの作り方が判りません。。。 [テーブルA] コード 品名  種類 1111  A    0 1111  A    1 1111  A    2 1111  A    3 2222  B    0 2222  B    1 2222  B    2 2222  B    3 2222  B    4 3333  C    0 3333  C    1 3333  C    2 3333  C    3 3333  C    4 3333  C    5 3333  C    6 以上の様なフィールド構成を持つテーブルです。 「コード」で管理される「品名」の持つ「種類」の列の最大値を、新しく追加した「在庫」列を持つテーブルBの「在庫」列に抽出して以下の様に同一「コード」内に全て書き込みたいと思っておりますが、クエリ作成の勉強を始めたばかりで、上記の様な複雑(?)なクエリの作り方が判りません。 ※簡単なクエリをデザインビューで作ったり、SQL ビューで簡単な改造が出来る位です。 [テーブルB](処理後) コード 品名  種類 在庫 1111  A    0   3 1111  A    1   3 1111  A    2   3 1111  A    3   3 2222  B    0   4 2222  B    1   4 2222  B    2   4 2222  B    3   4 2222  B    4   4 3333  C    0   6 3333  C    1   6 3333  C    2   6 3333  C    3   6 3333  C    4   6 3333  C    5   6 3333  C    6   6 尚、「種類」列の値は必ず0から順番に(012345・・・の様に)並ぶ規則となっております。 テーブルAに「在庫」列を追加挿入してから「種類」の最大値を書き込む方法でも、テーブルB(テーブルAをコピーして「種類」列を追加したテーブル)に書き込ませる方法でもどちらでも問題はありません。 どなたかご教示頂ければと思います。宜しくお願い致します。  

  • ACCESSの削除クエリについて

    ACCESSの初心者のものです。 選択クエリで2つのテーブルから一致した項目を抽出したものをだしました。 そのレコードを(2つのテーブル)のデータを削除したいのですがどうすればいいでしょうか? よろしくお願いします。

  • アクセスのクエリを開く前にマクロを実行できますか?

    フォームやレポートを開く前にマクロを実行できますが、同様のことをクエリを開く前にもする方法はないでしょうか? 具体的には、いくつかのテーブル作成クエリと追加クエリをまとめて行うマクロを実行してから、選択クエリを開きたいのです。 「SQLビューで1行加えるだけ」みたいなのができると助かります。 よろしくお願いします。

  • ACCESSのクエリの作り方

    テーブル名   在庫 商品コード 品名 入庫日 在庫量 ・・・ があります データとして A0000,在庫品1,2005/10/10,50 A0000,在庫品1,2005/12/25,70 A0000,在庫品1,2005/12/28,20 B0000,在庫品2,2005/12/28,10 B0000,在庫品2,2005/12/29,5 C0000,在庫品2,2005/12/30,30 という具合になります。 入庫日の都合上、商品コードがユニークになりません。 この場合 フォームを作って 商品コードをユーザーに入力させ、在庫量を表示させるにはどうしたら良いのでしょうか? 例えば"A0000" だと140になります。 SQLで商品コード=ユーザー入力文字列・・・ とかいうのは知っているんですがACCESSの使い方がよくわかりません、 デザインビューでクエリを作成するとかやるとこの場合固定(商品コードが)されて しまうようです。ユーザーに求めることは出来るのでしょうか?

  • 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 (1)Aクエリ(選択クエリ)とBテーブルを削除クエリでつなぐ(結合プロパティはAクエリ全件から→B) (2) (1)の削除クエリは、 B全件から(From B*) Bのフィールド40列ぐらい(数値列)を落とし、 (Where 条件「0」←数値ゼロをいれる) (3)削除クエリを実行すると、「複雑すぎて実行できません。」というエラーメッセージがでてきて実行できません。何か駄目なのでしょうか? やりたいことは、 Bテーブルを、 Aクエリにあるレコードは抽出し、のちフィールドの値が0のものは削除したいのです。 よろしくお願いします。

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

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

専門家に質問してみよう