Nie ma jednej najszybszej drogi, ponieważ zależy to od wielu czynników. Upewnij się, że indeksy w SQL są skonfigurowane i zoptymalizowane. Wiele indeksów zmniejszy wydajność wstawiania/aktualizowania, ponieważ każda wstawka będzie wymagała aktualizacji indeksu. Upewnij się, że nawiązujesz tylko jedno połączenie z bazą danych i nie otwieraj/zamykaj go podczas operacji. Uruchom aktualizację, gdy serwer jest pod minimalnym obciążeniem. Jedyną inną metodą, której nie próbowałeś, jest użycie obiektu ADO Command i wydanie bezpośredniej instrukcji INSERT. Używając metody „AddNew” obiektu zestawu rekordów, upewnij się, że wydałeś tylko jedno polecenie „UpdateBatch” na końcu wstawek. Krótko mówiąc, VBA może działać tylko tak szybko, jak serwer SQL akceptuje dane wejściowe.
EDYCJA:Wygląda na to, że próbowałeś wszystkiego. W programie SQL Server istnieje również tak zwany tryb odzyskiwania „Bulk-Logged”, który zmniejsza obciążenie związane z zapisywaniem tak dużej ilości danych w dzienniku transakcji. Może to być coś, czemu warto się przyjrzeć. Może to być kłopotliwe, ponieważ wymaga trochę manipulowania modelem odzyskiwania bazy danych, ale może być dla Ciebie przydatne.