トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 持続可能なスキーム編: 第8話「テーブルのデータを編集しよう!」2/4 :今日は、在宅作業の日です

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

今日は、在宅作業の日です

ちょうどその頃、八木くんはマンションで、進捗管理システムの続きに取り組んでいました。

「テーブルのデータをワークシートへ取り込むところまでは、ひとまずオッケーだな。
次は、編集したデータをテーブルに書き込むところを開発しよう」

八木くんは、カタカタとキーボードを叩き、コードを作成していきます。


Sub データ編集()
    Dim rs As New ADODB.Recordset
    Dim sql As String
    Dim i As Long
    
    If DB接続 Then
        For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            sql = "SELECT * FROM 進捗TBL WHERE 番号='" & Cells(i, 1).Value & "'"
            rs.Open sql, CN, adOpenKeyset, adLockOptimistic
            
            If Not rs.BOF Then
                rs.Fields("案件").Value = Cells(i, 2).Value
                rs.Fields("担当").Value = Cells(i, 3).Value
                rs.Fields("進捗").Value = Cells(i, 4).Value
                rs.Fields("企業名").Value = Cells(i, 5).Value
                rs.Fields("備考").Value = Cells(i, 6).Value
                rs.Fields("前回訪問日").Value = Cells(i, 7).Value
                rs.Update
            End If
            
            rs.Close
        Next

        MsgBox "データを編集しました"
        Call データ取得
    End If
End Sub

「ふ~~~~、ひとまずこんなところか。
細かなところは、後から追加するとして……。
For…Nextで、表の最終行までループする。
A列の"番号"で1件ずつレコードセットを取得、
BOFプロパティがFalse、つまりレコードが存在すれば…セルの値で上書き、
"rs.Update"でテーブルに反映する。 いい感じだぞ…」

一覧にもどる