• ベストアンサー
  • すぐに回答を!

ACCESSで他クエリーを利用して削除する

  • 質問No.10412
  • 閲覧数125
  • ありがとう数1
  • 回答数1

お礼率 68% (42/61)

ACESS97で、他のクエリー(選択クエリー)の結果を利用
して、削除クエリーを作りますと、「更新可能なクエリー
でなければなりません」というエラーが出ます。

具体的に言いますと、
テーブルAで「あ」というフィードで集計し1行
しかない行を削除したいのです。

私がTRYした方法は、「あ」というフィールドで
テーブルAを集計し行数をカウントする選択クエリーを
作成し、別の削除クエリーでそれを参照しようと
しました。
そうしましたら、前述のエラーが発生しました。

削除クエリーの中で行を集計するようなものが作れれば
要件は満たされるのですけど。。。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 46% (643/1383)

どのクエリーが削除できて、どのクエリーが削除できないのかを書こうとすると、結構問題がややこしくなってしまうので、割愛します。

削除クエリーで削除できるかどうかは、そのクエリーをデータシートビューで表示した時に、レコードを削除できるかどうかによります。

もし、データシートビューで削除できないのなら、クエリーを工夫してやる必要がありますね。

例えば、こんな感じ。(テーブル名などを変更してから、クエリーをSQLビューにして、貼り付けてください)

DELETE *
FROM テーブルA
WHERE あ In (SELECT あ FROM テーブルA
       GROUP BY あ HAVING COUNT(あ) =1);

詳しくは、ヘルプで「サブクエリ」をお調べください。
お礼コメント
nakamamo

お礼率 68% (42/61)

ありがとうございました。
バッチリです!!

SQLはある程度学んでいたんですが・・・
そう、こういうのありましたね。

他にも anyとかallとかあるようで、
もっとお勉強します。
投稿日時:0000/00/00 00:00
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ