Просто из любопытства, почему вас так беспокоит разница между простыми секундами в скорости соединения?
Является ли проблемой то, что вы создаете эти соединения и отбрасываете их постоянно по всему коду, поэтому дополнительная секундаили так добавляет до нескольких минут?
Если так, ваша цель может заключаться в уточнении использования вашего соединения.Вместо того, чтобы постоянно сбрасывать соединение, возможно, просто оставляйте его активным.
Кроме того, отметим, что вы можете переосмыслить сохранение пароля в строке соединения (при условии, что это не просто личное использование или что-то еще).
Помимо этого, ваш метод соединения примерно такой же, как и в случае с одним выстрелом.
Есть и другие варианты, такие как открытие соединения как набора записей, носкорость не будет заметно увеличиваться со стороны открытия.
Dim rs1 As New ADODB.Recordset
Dim sConn As String
Dim sSQL As String
FilePath = "[File Location]"
sConn = "Provider=Microsoft.jet.oledb.4.0;Data source=" & _
FilePath & "\[DatabaseName].[Extension]"
conn.Open sConn
Set conn = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
sSQL = "SELECT * FROM Table1"
rs1.CursorLocation = adUseClient
rs1.Open sSQL, conn, adOpenDynamic, adLockPessimistic 'lock depending on user requirements
rs1.MoveFirst
Do While rs1.EOF = False
'Code here
rs1.MoveNext
Loop
'For additional manipulation
rs1.MoveFirst
Do While rs1.EOF = False
'Code here
rs1.MoveNext
Loop
rs1.Close
Set rs1 = Nothing
Set conn = Nothing
Насколько мне известно, кроме этого, ваше единственное реальное решение - это увеличить скорость самой физической сети (еслиправдоподобно).