さまざまな要因に依存するため、最速の方法は 1 つではありません。 SQL のインデックスが構成され、最適化されていることを確認してください。挿入ごとにインデックスを更新する必要があるため、多くのインデックスが挿入/更新のパフォーマンスを低下させます。データベースへの接続は 1 つだけにして、操作中に開いたり閉じたりしないでください。サーバーの負荷が最小のときに更新を実行します。まだ試していない他の唯一の方法は、ADO コマンド オブジェクトを使用して直接 INSERT ステートメントを発行することです。レコードセット オブジェクトの「AddNew」メソッドを使用する場合は、挿入の最後に「UpdateBatch」コマンドを 1 つだけ発行してください。それ以外では、VBA は、入力を受け入れる SQL サーバーと同じ速度でしか実行できません。
編集:すべてを試したようです。また、SQL Server には「Bulk-Logged」復旧モードとして知られるものもあり、トランザクション ログへの大量の書き込みのオーバーヘッドを削減します。調べる価値のあるものかもしれません。データベースの復旧モデルを少しいじる必要があるので面倒かもしれませんが、役に立つかもしれません.