• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル ADO Filterでは一気に削除はできないのですか?)

エクセルADO Filterでは一気に削除はできないのですか?

このQ&Aのポイント
  • エクセルのADO Filterを使用して、指定の条件に該当するレコードを一気に削除する方法について質問します。
  • 現在、Tメインテーブルの番号フィールドに該当の番号があれば、そのレコードを削除するアクセスVBAを考えていますが、方法について行き詰っています。
  • 一気にフィルタにかかっているレコードを削除できる方法があれば教えてください。また、現在の実装では1レコードずつ削除するしか方法がないのでしょうか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Deleteメソッドはレコード単位での削除ですね Sub 削除1()   Set cn = New ADODB.Connection   cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Name   番号 = Forms("フォーム1").Controls("番号").Value      Set ADOrs = New ADODB.Recordset   ADOrs.Open "SELECT * FROM Tメイン", cn, adOpenKeyset, adLockOptimistic   ADOrs.Filter = "番号 = '" & 番号 & "'"   on error resume Next   ' 最初の要素へ移動   ADOrs.MoveFirst   On Error Goto 0   ' 要素がある間ループする   do until ADOrs.EOF     ADOrs.Delete     ' カレントレコードを変更する     ADOrs.MoveFirst   Loop   ADOrs.Close: Set ADOrs = Nothing   cn.Close: Set cn = Nothing End Sub といった具合でしょう 番号で特定した行を削除するなら cn.Execute "DELETE FROM Tメイン WHERE 番号='" & 番号 & "'" といった具合にすれば 一度に削除できます

nifufu2
質問者

お礼

ありがとうございます!!! 「cn.Execute "DELETE FROM Tメイン WHERE 番号='" & 番号 & "'"」 これを使うことにしました! 質問してよかったです! 大変参考になりました。

関連するQ&A