エクセルユーザのデータベース活用法(基礎編4)-レコードの追加
●エクセルで作成した表のデータをテーブルに追加します。骨格は基礎編3
までと変わりありません。(接続の確立、レコードセットを開く)

ここではレコードセットの開き方に追加情報を加えますので、基礎編2の
サンプルを利用します。処理部分だけが変わります。

(前提)追加元の表は1項で使用したものを利用します。

・エクセルの表に新規データを作成(伝票番号が重ならないように注意。)
・同一シート上にコマンドボタンを配置し,クリックイベントプロシージャを
 作成,骨格部分をコピー。

1.レコードセットを開くときにOpenメソッドを使用しましたが、引数を2つ加えます。

    MyRs.Open MySQL, MyCon, adOpenStatic, adLockOptimistic
                            ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
                           (カーソルタイプ)(ロックタイプ) 

2.レコードを追加する基本形は、レコードセットを開いたあと,

    レコードセット名.AddNew
 
    レコードセット名!フィールド名 = Cells(〜,〜)

    レコードセット名.Update

のようにします。ポイントは AddNewメソッドとUpdateメソッドです

(サンプル - 骨格部分)

Sub Tsuika()
    
    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
    MySQL = "SELECT * FROM DATA"
    MyRs.Open MySQL, MyCon, adOpenStatic, adLockOptimistic
    
    With MyRs  'シートの項目行(1行目)を除いてデータ行数分ループ
    For i = 2 To Cells(1, 1).CurrentRegion.Rows.Count
        .AddNew
        !伝票番号 = Cells(i, 1).Value
        !日付 = Cells(i, 2).Value
        !コード = Cells(i, 3).Value
        !得意先 = Cells(i, 4).Value
        !金額 = Cells(i, 5).Value
        .Update
    Next i
    End With
    
    MyRs.Close
    Set MyRs = Nothing
    
End Sub

Excel2000



戻る


Excel Word Access VBA! モーグ