即効テクニック |
ここではレコードを削除するために削除したいレコードを抽出したレコードセットを作成し、ループ処理で全部削除します。 => レコードセット名.Delete (カレントレコードが削除される) 注意しなければならないのは、抽出のときに指定した条件と一致するレコードがなければ、削除しようにも、削除するデータがありません。レコードのないレコードセットを開いたときには、カレントレコードがBOF(Beginning Of File)となりますので、レコードセットのBOFプロパティーの値を取得して分岐処理をしておくことになります。 例えば、コードが"1001"の得意先売上データをすべて削除する場合は・・・
Sub Sakujo() Dim i As Integer Dim MySQL As String Set MyCon = New ADODB.Connection Set MyRs = New ADODB.Recordset MyCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & MyPath MyCon.Open Set MyRs = New ADODB.Recordset MySQL = "SELECT * FROM DATA WHERE コード=1001" MyRs.Open MySQL, MyCon, adOpenStatic, adLockOptimistic If MyRs.BOF = True Then MsgBox "データがありません。" GoTo Exit_Sakujo '終了処理用の行ラベルに飛ぶ End If Do Until MyRs.EOF MyRs.Delete '<=削除 MyRs.MoveNext i = i + 1 Loop MsgBox i & "件のデータを削除しました。" Exit_Sakujo: '分岐処理用行ラベル MyRs.Close: MyCon.Close Set MyRs = Nothing: Set MyCon = Nothing End Sub