オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

やってみよう!Excel VBAで業務改善!|持続可能なスキーム編

第19話「テーブルのデータを削除しよう!」

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

一覧へ戻る

MENU