二次元配列からレコードにデータを入れる方法は

With Rcd
.AddNew
For i = 0 to 99
 .Fields(i).Value = x(0,i)
Next
.Update
End With

という様な地道な方法しかないんでしょうか?
データを入れるのに時間が掛かるので、Excelの

Range(Cells(1,1),Cells(UBound(x,1),UBound(x,2)) = x

みたいな形で一気に代入出来て処理時間を短縮できる方法はないのでしょうか?

あとDoCmd.TransferSpreadSheetでエクセルシートをインポートする方法も試したんですが、
Access側からExcel.Applicationを取得してワークブック開く方法だとエラーが出て、手動で開いた状態にしておくと読み込むんですが、
これはインポートする際にいちいちエクセルで開いておく必要があるんでしょうか?