Это простая функция I теперь использовать для приостановки обработки в течение нескольких секунд. Сначала убедитесь, что у вас есть вызов API в модуле:
Private Declare Sub sapiSleep Lib "kernel32" _
Alias "Sleep" _
(ByVal dwMilliseconds As Long)
Затем добавить в эту функцию:
Public Function sSleep(lngMilliSec As Long)
If lngMilliSec > 0 Then
Call sapiSleep(lngMilliSec)
End If
End Function
Таким образом, вы можете увидеть, как это работает, используя:
Public Function sTestSleep()
Const cTIME = 1000 'in MilliSeconds
Call sSleep(cTIME)
MsgBox "Before this Msgbox, I was asleep for " _
& cTIME & " Milliseconds."
End Sub
Так приостановить обработку кода в течение 5 секунд, вы бы сказали:
Call sSleep(5000)
Весь этот код был взят из here.
У меня было определенное впечатление, что 'rs.Update' был * синхронной * операцией, и никакая задержка не должна быть необходимой. Что заставляет вас думать, что это не так? – RBarryYoung
Может быть, потому, что мой 'PivotCache', который извлекает данные из базы данных, использует отдельное подключение к' Recordset'. Я создаю объект «Connection» «на лету» всякий раз, когда требуется «Обновление», но «PivotCache» указывается на БД при открытии рабочего листа. – andy91