ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:tuka1982 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がでます。
この実行時エラーの原因がさっぱりわかりません。

どなたか詳しい方お教え願えないないでしょうか?
質問投稿日時:08/04/09 20:48
質問番号:3935777
この質問に対する回答は締め切られました。

回答

 

回答者:USB99 仕事に役立つExcel&Accessデータベース連携テクニック
にたいていのは載っていますからそれを参考にされたらいいかと思います。普通は、VBA自体以外にも(上のは読んでいませんが)その前の手続きに問題がある事もありますので。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:08/04/11 01:29
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)