Няма единичен най-бърз начин, тъй като зависи от редица фактори. Уверете се, че индексите в SQL са конфигурирани и оптимизирани. Много индекси ще убият производителността на вмъкване/актуализация, тъй като всяко вмъкване ще трябва да актуализира индекса. Уверете се, че правите само една връзка към базата данни и не я отваряйте/затваряйте по време на операцията. Стартирайте актуализацията, когато сървърът е под минимално натоварване. Единственият друг метод, който не сте опитвали, е да използвате ADO команден обект и да издадете директен оператор INSERT. Когато използвате метода „AddNew“ на обекта за набор от записи, не забравяйте да издадете само една команда „UpdateBatch“ в края на вмъкванията. Като изключим това, VBA може да работи толкова бързо, колкото SQL сървърът приема входните данни.
РЕДАКТИРАНЕ:Изглежда, че сте опитали всичко. Съществува и това, което е известно като режим на възстановяване "Bulk-Logged" в SQL Server, който намалява режийните разходи за писане толкова много в регистъра на транзакциите. Може да е нещо, което си струва да се разгледа. Може да е неприятно, тъй като изисква малко работа с модела за възстановяване на базата данни, но може да бъде полезно за вас.