Access 2007で、テーブルからレコードを削除するクエリを作りたい。
具体的には、テーブルAのフィールドF1とテーブルBのフィールドF2があるとします。このとき、テーブルA中の各レコード(仮にXとします)であって、そのF1の値と同じ値をF2に持つレコードがテーブルBに含まれている場合は、(テーブルAから)そのレコードXを削除するという処理をしたいのです。ややこしいと思いますが、これをクエリやマクロで作ることはできるでしょうか?
私はVBAを知らない初心者です。上の処理も文章で書くと理解してもらえるかどうか不安ですが、だれか助けて下さい。
No.2ベストアンサー
- 回答日時:
解決しましたか。
以下の要領で作成してみてください。なお、(4)のSQL文はテーブル名、フィールド名は
質問のままなので、実際に合わせて変更してください。
(1)
クエリを「デザインビューでクエリを作成する」を選択。
(2)
テーブルの表示を閉じる
(3)
クエリをSQLビューに切り替える。
(4)
以下のSQL文をコピーし、SQLビューに貼り付け、保存する。
DELETE * FROM テーブルA
WHERE EXISTS ( SELECT * FROM テーブルB
WHERE テーブルB.F2 = テーブルA.F1 );
なお、保存後に一旦クエリを閉じ、再びクエリを
デザインビューで開いて、SQLビューで確認すると
DELETE Exists (SELECT * FROM テーブルB WHERE テーブルB.F2 = テーブルA.F1) AS 式1, *
FROM テーブルA
WHERE (((Exists (SELECT * FROM テーブルB WHERE テーブルB.F2 = テーブルA.F1))<>False));
のようになっているかもしれません。これはAccessが
自分用に変更したので、かまいません。
的確で簡潔なご説明を有り難うございました。
Q&Aで尋ねるというのは初めての経験でしたが、完全に解決でき、感銘を受けました。
今後一層の勉強をしようという意欲が湧いてきました。
感謝申し上げます。
これ以外にも、第1番目、第3番目のかたのコメントも有り難うございました。
No.3
- 回答日時:
質問からすると
削除方法以前に削除したいレコードの特定もまだできてないようです。
テーブルAを基準とした選択クエリで、テーブルBのF1と一致するデータのみを表示する。これのクエリ作り方はわかりますか。これの結果が今削除しようとしている対象なので削除前の確認用になります。
削除の仕掛けにするにはこの選択クエリを削除クエリとして変更し名前つけて保存します。
あまりわからず状態で、確認なしでいきなり削除するのは間違いを招きやすい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
2つのテーブルを比較して一致し...
-
Accessでテーブルからテーブル...
-
ACCESSで指定されたテーブルか...
-
Accessクエリでの、LIKE条件
-
SQLで日付を条件に削除したい
-
データ型の変更
-
ファイルメーカ 検索実行せず...
-
WHERE レコードが抽出されない
-
データベースで変更の多いテー...
-
3つの表を1つに縦に連結する
-
Accessのフォームの並び替えを...
-
Accessの追加クエリで既存のテ...
-
Access SELECT INTO に関する質...
-
access2010のテーブルのコピー...
-
Accessデータベースで測定デー...
-
リンクテーブルを CopyObject ...
-
ACCESSに同時アクセス(編集)を...
-
Access更新クエリについて教え...
-
AccessでのNULLのレコードの表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessでvlookupみたいなことは...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
3つの表を1つに縦に連結する
-
SQLで日付を条件に削除したい
-
Accessの追加クエリで既存のテ...
-
SQLで条件指定結合をしたいがNU...
-
デザインビューで、連結式 を...
-
ツリー構造をRDBで表現するには?
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
2つのテーブルを比較して一致し...
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
おすすめ情報