'Create the recordset
Set dbRecordset = New ADODB.Recordset
dbRecordset.CursorLocation = adUseServer
dbRecordset.Open Source:="Table1", _
ActiveConnection:=dbConnection, _
CursorType:=adOpenDynamic, _
LockType:=adLockOptimistic, _
Options:=adCmdTable
'dbRecordset.AddNew
dbRecordset(Cells(2, 3).Value) = Cells(1, 1).Value
dbRecordset.Update
'Close the connections.
dbRecordset.Close
dbConnection.Close
Excelからのアクセスにデータを保存する機能を備えたアプリケーションを作成しようとしています(アクセスを使用したことはありません)。それらを接続し、値をデータベースに送信することができました。私が抱えている問題は、上記のコードにあると思います。dbRecordset(Cells(2, 3) は、値が行/レコード 2 フィールド 3 に移動する必要があるように見えますが、(2,3) に書き込みます。(1,1) に書き込もうとすると、エラーが発生します。必要なデータを移動する for each ループを記述できると思いますが、どこに移動するのかわかりません。
これをすべて回避できるのは、アクセスが Excel から組み込まれている DoCmd.TransferSpreadsheet メソッドをトリガーできる場合です。(sql, shell?) のようなものを書くための構文がわかりません。ループよりもはるかに高速になるため、doCmdコマンドを書く場所の正しい方向を教えていただければ幸いです。