Вообщем, сегодня у нас на редкость паршивый диалап, поэтому сорри, обойдусь без аттачей.
Но если создать форму, положить на нее листбокс и подключить ADO, то можно посмотреть на поведение этого кода:
- Код: Выделить всё
- Option Explicit
 
 Dim WithEvents c As ADODB.Connection
 Dim WithEvents r As ADODB.Recordset
 
 Private Sub c_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
 List1.AddItem "Connection_ConnectComplete"
 End Sub
 
 Private Sub c_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
 List1.AddItem "Connection_ExecuteComplete"
 List1.AddItem "First item: " & pRecordset.Fields(0).Value
 List1.AddItem "RecordCount: " & pRecordset.RecordCount
 End Sub
 
 Private Sub Form_Click()
 Debug.Print r.Fields(0)
 r.MoveNext
 End Sub
 
 Private Sub Form_Load()
 Set c = New ADODB.Connection
 c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WORK\VBProgs\Totalizator\tdata.mdb"
 Set r = New ADODB.Recordset
 Set r.ActiveConnection = c
 r.CursorLocation = adUseClient
 List1.AddItem "* Prepared"
 r.Open Source:="select * from [KLADR-ADR]", Options:=ADODB.ExecuteOptionEnum.adAsyncExecute Or ADODB.ExecuteOptionEnum.adAsyncFetchNonBlocking
 List1.AddItem "* Executed"
 End Sub
 
 Private Sub r_FetchComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
 List1.AddItem "Recordset_FetchComplete"
 End Sub
 
 Private Sub r_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
 List1.AddItem "Recordset_FetchProgress" & " (" & Progress & "/" & MaxProgress & ")"
 End Sub
 
KLADR-ADR -- достаточно большая таблица и вытяжка данных занимает пару минут, так что можно покликать по форме и убедится, что форма (текущий поток) не блокируется.
Можно также поискать по "*FetchProgress*". Что любопытно, там 
Konst_One уже давал совет насчет adAsyncFetchNonBlocking 
 vbskb_database vbskb_async vbskb_fetch vbskb_asyncfetch
vbskb_database vbskb_async vbskb_fetch vbskb_asyncfetchLasciate ogni speranza, voi ch'entrate.