dipende dall'oggetto che utilizzi, esempio per command e connection:
.Execute , , adAsyncExecute

While (.State And adStateExecuting) = adStateExecuting
DoEvents
Sleep 1&
Wend

puoi anche dichiarare l'oggetto recordset per eventi con WithEvents, ed utilizzarne gli eventi ad esempio per un fetch di dati asincrono.