- ベストアンサー
ACCESSで他クエリーを利用して削除する
ACESS97で、他のクエリー(選択クエリー)の結果を利用 して、削除クエリーを作りますと、「更新可能なクエリー でなければなりません」というエラーが出ます。 具体的に言いますと、 テーブルAで「あ」というフィードで集計し1行 しかない行を削除したいのです。 私がTRYした方法は、「あ」というフィールドで テーブルAを集計し行数をカウントする選択クエリーを 作成し、別の削除クエリーでそれを参照しようと しました。 そうしましたら、前述のエラーが発生しました。 削除クエリーの中で行を集計するようなものが作れれば 要件は満たされるのですけど。。。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どのクエリーが削除できて、どのクエリーが削除できないのかを書こうとすると、結構問題がややこしくなってしまうので、割愛します。 削除クエリーで削除できるかどうかは、そのクエリーをデータシートビューで表示した時に、レコードを削除できるかどうかによります。 もし、データシートビューで削除できないのなら、クエリーを工夫してやる必要がありますね。 例えば、こんな感じ。(テーブル名などを変更してから、クエリーをSQLビューにして、貼り付けてください) DELETE * FROM テーブルA WHERE あ In (SELECT あ FROM テーブルA GROUP BY あ HAVING COUNT(あ) =1); 詳しくは、ヘルプで「サブクエリ」をお調べください。
お礼
ありがとうございました。 バッチリです!! SQLはある程度学んでいたんですが・・・ そう、こういうのありましたね。 他にも anyとかallとかあるようで、 もっとお勉強します。