HOME > 即効テクニック > Excel VBA > その他関連のテクニック > エクセルユーザのデータベース活用法(基礎編4)-レコードの追加

即効テクニック

その他関連のテクニック

エクセルユーザのデータベース活用法(基礎編4)-レコードの追加

(Excel 2000)
●エクセルで作成した表のデータをテーブルに追加します。骨格は基礎編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