AccessVBAで特定のレコードを削除するSQLを実装中、エラーが発生しました。 Access2016使用です。 ■関連するテーブルとフィールドの構成

AccessVBAで特定のレコードを削除するSQLを実装中、エラーが発生しました。 Access2016使用です。 ■関連するテーブルとフィールドの構成 ・テーブルTabA、フィールドcol1 ・テーブルTabB、フィールドcol2 ■実現したいこと TabAの特定のレコードを削除したいです。 特定のレコードの条件は col1が、TabBのcol2と値が一致しているレコードです。 ■コード --------------------------- Dim db As DAO.Database Set db = CurrentDb Dim mySql As String mySql = "DELETE FROM TabA" mySql = mySql & " WHERE TabA.col1 IN (SELECT TabB.col2 FROM TabB INNER JOIN TabA" mySql = mySql & " ON TabB.col2 = TabA.col1)" db.Execute mySql, dbFailOnError db.Close Set db = Nothing --------------------------- ■これを実行すると以下のエラー文が出ます。 実行時エラー3075 クエリ式'TabA.col1 IN (SELECT TabB.col2 FROM TabB INNER JOIN TabA ON TabB.col2 = TabA.col1)'の構文エラー ■試したこと ・スペルミスがないか、テーブルからテーブル名、フィールド名をコピペ ・サブクエリのTabAとTabB、col1とcol2を入れ替え VBA、SQL初心者ですので、初歩的なミスや勘違いがあればそちらもご指摘いただければ幸いです。 よろしくお願いします。

Microsoft Access | MySQL11閲覧

ベストアンサー

1

Dim db As DAO.Database Set db = CurrentDb Dim mySql As String 'mySql = "DELETE FROM TabA" 'mySql = mySql & " WHERE TabA.col1 IN (SELECT TabB.col2 FROM TabB INNER JOIN TabA" 'mySql = mySql & " ON TabB.col2 = TabA.col1)" mySql = "DELETE * FROM TabA" mySql = mySql & " WHERE Exits (SELECT 1 FROM TabB WHERE TabB.col2 = TabA.col1)" db.Execute mySql, dbFailOnError db.Close Set db = Nothing

1人がナイス!しています

ThanksImg質問者からのお礼コメント

ご回答いただきありがとうございます。 こちら解決できました。

お礼日時:9/25 19:28