Âòîðíèê, 03 Ìàðòà 2015 ã. 10:31
+ â öèòàòíèê
Äîáðûé äåíü.
Ñîáñòâåííî ñàáæ, íå ìîãó ïîíÿòü, ïî÷åìó Access íàìåðòâî âèñíåò.
Åñòü ôîðìà ñ äâóìÿ êîìáîáîêñàìè. After_update ïåðâîãî êîìáîáîêñà ñòîèò àñèíõðîííûé çàïðîñ äëÿ çàïîëíåíèÿ ðåêîðäñåòà âòîðîãî. Íî âî âðåìÿ âûïîëíåíèÿ çàïðîñà access âèñíåò, õîòÿ çàïðîñ çàïóñêàåòñÿ àñèíõðîííî (ïðîâåðÿë, íàïðèìåð âûâîäîì msgbox, íà ñëåäóþùåì øàãå). Êàê ïîáîðîòü?
Äåëàë êàê âîò òóò, òîëüêî íå ïîíÿë çà÷åì ôëàã...
http://www.sql.ru/forum/168/voros-k-znatokam-vozmozhno-li-zapustit-asinhronno
Dim WithEvents rstComboBox As ADODB.Recordset
Dim boolFlag as Boolean
'Èíèöèàëèçàöèÿ
Private Sub Form_Load()
set rstComboBox = new ADODB.Recordset
rstComboBox.CursorLocation = adUseClient
end sub
'Ñîáñòâåííî after_update ïåðâîãî êîìáîáîêñà
Private Sub cmb1_AfterUpdate()
Call setRecordset()
End Sub
'Ôóíêöèÿ çàïóñêà çàïðîñà
Private Function setRecordset()
Dim strFieldName As String, sqlRowSource As String
strFieldName = DLookup("[QueryText]", "[tFindAlgo]", "[QueryType] = '" & frm.cmbFind.Value & "'")
sqlRowSource = _
"SELECT " & _
"DISTINCT " & strFieldName & _
"FROM " & _
"[tCustomerInfo]"
rstComboBox.Open sqlRowSource, CurrentProject.Connection, adOpenStatic, adLockOptimistic, adAsyncExecute
End Function
'Ñîáûòèå, âñå ãîòîâî
'Ïðèñâîåíèå ðåçóëüòàòîâ â êîìáîáîêñ2
Private Sub rstComboBox_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
If boolFlag = False And rstComboBox.State = adStateOpen Then
rstComboBox.ActiveConnection = Nothing
Set Me.cmb2.Recordset = rstComboBox.Clone
rstComboBox.Close
End If
End Sub
Çàðàíåå ñïàñèáî.
http://www.sql.ru/forum/1145283/asinhronnyy-zapros
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-