les GOTOs ..... c'est de la programmation spaghetti ! Plutôt à éviter !
Version imprimable
les GOTOs ..... c'est de la programmation spaghetti ! Plutôt à éviter !
oui je sais bien mais c le seul moyen que j'ai trouvé pour faire marcher la chose...;)
Et si regardais du coté de
Code:
1
2
3 Do .... Loop Until seq = "0,"
J'ai bien vue que la discussion était daguée RESOLUT, mais après plusieurs relectures .....
Je ne sais pas si je vais dire une bêtise :oops:, mais que se passe-t-il, dans le dernier code posté par toi gomtex, ou la dernière proposition faite par Delbeke, si seq ne devient jamais "0," , n’y a-t-il pas risque de ce retrouver dans une boucle infini, pour le cas ou un problème matériel de type périphérique branché mais défectueux, câble de liaison défectueux …..
la réponse renvoyé par le lecteur est totalement spécifique, si les cables venaient à devenir defectueux alors oui en effet on rentrerai dans une boucle infinie, mais la je ne vois pas comment arranger cela, il faudrai que j'incruste une boucle for mais apres comment l'inserer dans mon code, mystere :D
J'ai deja essayer avec un for mais bizarrement meme en mode debug la requete n'est pas envoyée du coup le port n'est jamais détecté. :mouarf:
Disons que mon premier voeux soit qu'il ne fasse jamais du cordon du stylo une corde à sauter :lol:
merci a vous ;)
Pour gérer ce cas, il est possible d'inclure un test de timeout dans la boucle Do Until
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Dim dTMO as Date Dim bTMO bTMO = False dTMO = DateAdd("s",30,Now) 'delai de 30 secondes Do .... If dTMO<Now then bTMO = True Exit Do End If Loop Until seq = "0," if bTMO then MsgBox "Time Out" else .... end if
ok, merci de cette indication je vais essayer de mettre ca en oeuvre mais ca devrai macher, y a pas de raison:mouarf:
Ca y est j'ai trouvé, il suffit de mettre un test juste après l'incrementation. et on lui fixe une borne. jlui ai mis dix et ca marche nickel. voilou:ccool: