While not rs.eof and toto = 1 [Résolu]

PuppetMaster34 10 Messages postés mardi 6 mai 2003Date d'inscription 27 septembre 2005 Dernière intervention - 26 juin 2005 à 00:56 - Dernière réponse : Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention
- 27 juin 2005 à 18:42
Salut,
en effectuant ce test, pourquoi il sort de la boucle lorsque mon recorset est à la fin alors que la seconde condition n'est pas remplie ?
Comment puis-je faire pour ne plus avoir ce problème ?
Merci d'avance pour vos lumières à ce sujet.
Afficher la suite 

7 réponses

Meilleure réponse
AlainTech 4 Messages postés mercredi 11 mai 2005Date d'inscription 28 juin 2005 Dernière intervention - 26 juin 2005 à 22:35
3
Merci
Dans ce cas, il faut utiliser while (not rs.eof) and (toto <> 1).

Merci AlainTech 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 70 internautes ce mois-ci

cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 26 juin 2005 à 02:46
0
Merci
Salut
Quand tu dis "la seconde condition n'est pas remplie", ça voudrait dire que "toto <> 1" : alors normal que la boucle ne s'effectue pas : le Not n'agit que sur "rs.EOF", pas sur "Toto = 1"
Essaye de voir si des parenthèses bien placées résoudraient le problème.
While : traduit par "tant que mes conditions sont vraies, j'exécute"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
AlainTech 4 Messages postés mercredi 11 mai 2005Date d'inscription 28 juin 2005 Dernière intervention - 26 juin 2005 à 14:33
0
Merci
Essaye avec while not (rs.eof and toto = 1)

Je ne sais pas si c'est ce que tu attends comme résultat...
Dans ce cas-ci, la boucle continuera tant que rs.eof ne sera pas atteint ou que toto sera difféfent de 1.

Autrement dit, while (not rs.eof) or (toto <> 1) est équivalent à la formule ci-dessus.
PuppetMaster34 10 Messages postés mardi 6 mai 2003Date d'inscription 27 septembre 2005 Dernière intervention - 26 juin 2005 à 21:33
0
Merci
En fait je veux qu'il reste dans la boucle tant que mon rs.eof est False ET que toto <> X

Cette solution ne me convient pas :while (not rs.eof) or (toto <> 1) car on sort de la boucle si une des deux conditions est vérifée, alors que je veux sortir lorsque les deux conditions sont remplies : mon recordset arrivant à la fin et ma variable atteingant sa valeur. Je ne sais pas si je suis clair, mais MERCI pour vos réponses rapides !
PuppetMaster34 10 Messages postés mardi 6 mai 2003Date d'inscription 27 septembre 2005 Dernière intervention - 27 juin 2005 à 17:57
0
Merci
ben avec cette solution, il continu de sortir de la boucle sans tenir compte de ma variable...
décidément, je ne comprends pas tout la ;(
Je veux sortir à la fin du recordset ET lorsque ma variable atteind la valeur X. Sachant que le recorset se "termine" avant que ma variable X soit atteinte.

exemple concret :
while (not rs.eof) and (toto <> 39)
wend
le recordset se termine en 3 itérations alors que toto n'a pas atteind 39
AlainTech 4 Messages postés mercredi 11 mai 2005Date d'inscription 28 juin 2005 Dernière intervention - 27 juin 2005 à 18:40
0
Merci
C'est donc bien un OR que tu dois mettre entre tes 2 conditions.
La boucle va continuer si l'une OU l'autre des conditions est remplie.
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 27 juin 2005 à 18:42
0
Merci
essayes Until:



Do Until rs.eof and toto = 39

- - - - - - - - - - - - - - - -

Loop


Daniel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.