VBAでADOの質問です。かなり困ってます。
質問なのですが、
Sub excel_access4()
Dim dbs As New ADODB.Connection 'ADOコネクション
Dim rcs As New ADODB.Recordset 'ADOレコードセット
Dim mydbF As String 'アクセス ファイル
Dim mydbT As String 'アクセス テーブル
Dim mtr As Variant 'エクセル 全データ
Dim rcd As Long 'アクセス 行指定
Dim fld As Long 'アクセス 列指定
'例として acctest2.mdb の テーブル4 に書き込む
mydbF = "acctest2.mdb" 'アクセス ファイル指定
mydbT = "テーブル4" 'アクセス テーブル指定
'アクセスデータベースを指定
dbs.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & _
"\" & mydbF & ";"
'アクセスデータベースを開く
rcs.Open Source:=mydbT, _ 'A
ActiveConnection:=dbs, _ 'B
CursorType:=adOpenKeyset, _ 'C
LockType:=adLockOptimistic, _ 'D
Options:=adCmdTableDirect 'E
'エクセルシート全データ範囲(2次元配列)
With Worksheets("Sheet1").Range("A1").CurrentRegion
Let mtr = .Resize(.Rows.Count - 1).Offset(1, 0).Value
For rcd = LBound(mtr, 1) To UBound(mtr, 1) '1次行
rcs.AddNew 'LB:最小値(1) UB:最大値(5)
For fld = LBound(mtr, 2) To UBound(mtr, 2) '2次列
'アクセスに行列で書き込み
Let rcs.Fields(fld - 1).Value = mtr(rcd, fld)
Next
rcs.Update
Next
End With
rcs.Close
dbs.Close
Set rcs = Nothing
Set dbs = Nothing
End Sub
AとBはわかりますが、CDEは一体何をしているのかわかりません。
また実行すると実行時エラー3709がでます。
この実行時エラーの原因がさっぱりわかりません。
どなたか詳しい方お教え願えないないでしょうか?