Créer une routine en arrière plans ?

Résolu
bambouzorus Messages postés 9 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 12 janvier 2007 - 17 août 2005 à 16:26
bambouzorus Messages postés 9 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 12 janvier 2007 - 18 août 2005 à 13:27
Bonjour, j'ai des users forms avec pleins de textes box pour divers calculs.
lorsque je change le contenue de l'une d'elle les autres sont mise à jour. Tout ça assez complexe et relier à une base accès. Le soucis c'est que les calculs mettent quelque 10é de secondes et que donc la saisie d'un chiffre assez long est assez peut agréable, il faut attendre que le calcul soit fini pour faire la saisie d'une autre case.
N'est il pas possible de faire ce calcul en transparence, le résultat n'étant pas nécessaire pour le reste de la saisie? Merci.

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 16:49
Non puisque le timer est asynchrone, à moins que tu ne lui fasse exécuter une boucle très longue.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 16:32
utilise un timer par exemple pour lancer ton calcul à intervale régulier si le texte à été modifié.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
bambouzorus Messages postés 9 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 12 janvier 2007
17 août 2005 à 16:45
Faut il utiliser une référence particulière ?
Petite précision je suis sous VBA, le timer ne va-t-il pas bloquer les saisies en cours ?
0
florantanplan Messages postés 76 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 8 septembre 2006
17 août 2005 à 18:01
Moi je dis: Met un bouton pour lancer le calcul (simplicité, efficacité, résultat...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bambouzorus Messages postés 9 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 12 janvier 2007
18 août 2005 à 13:27
Hello !
Merci pour votre aide qui ma bien aiguillé, j'ai donc utilisé cette routine qui ne fonctionne pas mal si ce n'est qu'il ne veut pas s'arrété par fois ..
Mais je devrais trouver l'astuce ...
a+


Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long) As Long

Public TimerID As Long
Public TimerSeconds As Single

Sub StartTimer()
TimerSeconds = 1 ' how often to "pop" the timer.
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub

Sub EndTimer()
On Error Resume Next
KillTimer 0&, TimerID
End Sub

Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
'
' The procedure is called by Windows. Put your
' timer-related code here.
'
End Sub
0
Rejoignez-nous