APIs: Interrompre l'application en cours de boucle |
Author(s) Dev Ashish |
|
Interrompre l'application en cours de boucle.
(Q) Peut-on interrompre un code, alors qu'il boucle, en
utilisant le clavier?
(A) On peut utiliser la fonction API GetAsyncKeyState à cet
effet. Voici un exemple d'une boucle qui ajoute n enregistrements à l'intérieur
d'une boucle, mais où on peut l'interrompre en appuyant sur la touche d'échappement
(Escape).
Private Declare Function apiGetAsyncKeyState Lib "user32" _
Alias "GetAsyncKeyState" _
(ByVal vKey As Long) _
As Integer
Private Const VK_ESCAPE = &H1B
Function fBreakInCode()
Dim boolEsc As Boolean
Dim db As Database
Dim rs As Recordset
Dim i As Integer
Set db = CurrentDb
Set rs = db.OpenRecordset("Table Quelconque", dbOpenDynaset)
For i = 1 To 20000
If apiGetAsyncKeyState(VK_ESCAPE) Then
If MsgBox("Vous avez appuyé Escape! Désirez-vous arrêter le code?", _
vbYesNo, "Confirmation requise") = vbYes Then
Exit For
End If
End If
With rs
.AddNew
!Field1 = i
!Field2 = i * 2
!Field3 = i * 3
.Update
i = i + 1
End With
Next
rs.Close
Set rs = Nothing
MsgBox "Fini. On a ajouté " & i & " enregistrements!"
End Function
|