ここではレコードを削除するために削除したいレコードを抽出したレコード
セットを作成し、ループ処理で全部削除します。
=> レコードセット名.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
|