Microsoft Access 掲示板

重複レコードを1つ残して、他を全て削除(SQL) / 2

3 コメント
views
4 フォロー
2

情報が不足しているので、下記のようだと仮定して、回答します。

テーブル名 あるテーブル
フィールド名 AutoNo, F1, F2, F3, F4, F5

AutoNo以外のフィールドはテキスト型とします。
下記のような削除クエリを作成して実行すればいいでしょう。

DELETE *
FROM あるテーブル
WHERE AutoNo>DMin("AutoNo","あるテーブル","F1='" & [F1] & "' AND F2='" & [F2] & "' AND F3='" & [F3] & "' AND F4='" & [F4] & "' AND F5='" & [F5] & "'");

 
VBAならば、
 

Dim strSQL As String
strSQL = "DELETE * FROM あるテーブル " & _ 
"WHERE AutoNo > DMin(""AutoNo"",""あるテーブル"",""F1='"" & [F1] & ""' AND F2='"" & [F2] & ""' AND F3='"" & [F3] & ""' AND F4='"" & [F4] & ""' AND F5='"" & [F5] & ""'"");"
currentDb.execute strSQL, dbFailOnError
通報 ...