ray88’s diary

お仕事で困ったとき用の自分用の覚書

AccessVBA サーバテーブルのデータをローカルテーブルへインポートする

■以下のコードを部品化したものはこちらのリンクにあり。
サーバテーブルのデータをローカルテーブルへインポートする(部品) - ray88’s diary

Sub データインポートテスト3()
    Dim CN As Object
    Dim CN2 As Object
    Dim RS As Object
    Dim RS2 As Object
'----------------------------------------------------------------------------
     Set CN = CreateObject("ADODB.Connection")
     Set RS = CreateObject("ADODB.Recordset")
     
     Set CN2 = CurrentProject.Connection
     Set RS2 = CreateObject("ADODB.Recordset")
' ----------------------------------------------------------------------------
'DBファイルに接続してレコードセットを取得
    CN.Open = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                          "Data Source=" & CurrentProject.Path & _
                          "\承認DB.accdb;Jet OLEDB:Database Password=xxxx;"
    'adOpenKeysetの値は1,adLockOptimisticの値は3
    RS.Open "MT_社員マスタ", CN, 1, 3
'------------------------------------------------------------------------------
'ローカルファイルのワークテーブルをレコードセットに格納
    'adOpenKeysetの値は1,adLockOptimisticの値は3
    RS2.Open "W_社員マスタ", CN2, 1, 3
'------------------------------------------------------------------------------
 'DBファイルのデータをワークテーブルへインサート
    Do Until RS.EOF
        RS2.AddNew
        RS2.Fields(0) = RS.Fields(0)
        RS2.Fields(1) = RS.Fields(1)
        RS2.Fields(2) = RS.Fields(2)
         RS2.Update
        RS.MoveNext
    Loop
'------------------------------------------------------------------------------
 '終了処理
    RS.Close: RS2.Close
    CN.Close: CN2.Close
    Set RS = Nothing: Set RS2 = Nothing
    Set CN = Nothing: Set CN2 = Nothing
End Sub