Sub データ削除_訪問日()
Dim rs As New ADODB.Recordset
Dim sql As String
Dim 対象訪問日 As String
If DB接続 Then
対象訪問日 = InputBox("入力された訪問日以前のデータを削除します")
If IsDate(対象訪問日) Then
sql = "SELECT * FROM 進捗TBL WHERE 前回訪問日<=#" & 対象訪問日 & "#"
rs.Open sql, CN, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
rs.Delete
rs.MoveNext
Loop
Call データ取得
End If
End If
End Sub
「ふ~、こんな感じか?
…使うかどうかわからないけど、とりあえず指定した訪問日以前のデータを、
すべて削除する処理を作っておいた。
複数のデータを削除するには、Do…Loopステートメントで、
レコードセットのEOFプロパティがTrueになるまで、rs.Deleteを繰り返す。
肝心なのはrs.MoveNextを使って、削除したら次のレコードに、
カレントレコードを移動させてやることだ」
八木くんは続けて、今作成したコードをテストします。
「とりあえず削除対象は、5/9以前の訪問日にするか…」
彼はダイアログボックスに、削除対象の基準日を入力し、
[OK]ボタンをクリックしました。