トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 持続可能なスキーム編: 第19話「テーブルのデータを削除しよう!」2/4 :複数のデータを削除するコード 

やってみよう!Excel VBAで業務改善! 持続可能なスキーム編|第19話 「テーブルのデータを削除しよう!」

複数のデータを削除するコード 


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]ボタンをクリックしました。

一覧にもどる