Boucle avec VB
Fermé
NagNag
-
25 oct. 2007 à 16:55
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 30 oct. 2007 à 16:12
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 30 oct. 2007 à 16:12
A voir également:
- Boucle avec VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
71 réponses
J'ai esssayé comme ça :
Dim trouve As String trouve = "" i = 1 j = 0 Do While i < 10 Do While j < 4 If i = B.List(j) Then trouve = trouve & "" & i '(LE PROBLEME EST LA ???????????) End If j = j + 1 Loop i = i + 1 If i = 10 Then C.AddItem trouve Loop
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 15:26
26 oct. 2007 à 15:26
Oui le problème est bien là ... mais également dans tes boucles ... lorsque que tu fais ta boucle do while j < 4, tu incrémentes j (j = j + 1), quand ta boucle est finie, tu fais : i = i + 1 mais j reste à 4, donc tu ne repasses plus dans la boucle ...
ShaBoo
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
50
26 oct. 2007 à 15:42
26 oct. 2007 à 15:42
(oupss ... sorry)
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 15:32
26 oct. 2007 à 15:32
Peux tu me dire de quel type d'objet sont A, B et C ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 15:47
26 oct. 2007 à 15:47
Bon ben voilà tu as la solution prémachée ... tu n'as plus qu'à copier/coller ... en espérant que tu comprennes le pourquoi du comment ..
;o)
Bon courage
Polux
;o)
Bon courage
Polux
ShaBoo
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
50
26 oct. 2007 à 15:49
26 oct. 2007 à 15:49
(je suis dsl ... je n'avais pas vu tes post)
Merci (POLUX31), mais je m'excuse car je suis débutant dans le domaine du programmation et merci pour votre encouragement, je vous dis comment ? mais vous m'avez dis que vous faites pas des exercices. Merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 17:44
26 oct. 2007 à 17:44
pardon nagnag, qu'est-ce que tu n'as pas compris ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 17:55
26 oct. 2007 à 17:55
lol, eh oui pourquoi faire simple quand on peut faire compliqué ...
;o)
;o)
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 18:31
26 oct. 2007 à 18:31
On entre dans un autre domaine là ... ce n'est plus un simple algo de tri de données ... pour l'instant on n'a juste rempli une listBox en effectuant un tri, je ne vois pas le rapport avec une base de données ???
Dis moi un peu plus clairement ce que tu comptes faire ... et si je peux t'aider je le ferai volontier
Dis moi un peu plus clairement ce que tu comptes faire ... et si je peux t'aider je le ferai volontier
On a une table dans une BD et cette table où il y a des chiffres de 1 à 10000 mais ou il y a des des chiffres manquants à l'interieur par exemple 500,615,381,5487,..... c-a-d renvoyer ces chiffres la.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 18:47
26 oct. 2007 à 18:47
tu peux effectivement faire une extraction dans une table et ensuite effectuer une recherche dans les éléments extraits. Mais ma méthode ne peut pas s'appliquer tel qu'elle est faite ... mais on peut s'en inspirer bien sûr ... As-tu une idée de la façon de faire ? Comment fais-tu pour lire le champ de ta table ?
Comme suit justre essai
NB:
- Qr c'est une requete quelconque "SELECT FROM...."
R = valeur minimum dans la table par exemple 1
S = valeur maximum
For i = R To S
If Not Qr.EOF Then
If i <> Qr.Fields(0) Then champ (N° des enregistrements)
MsgBox i
Qr.MovePrevious 'on fixe i
End If
Qr.MoveNext
End If
Next i
NB:
- Qr c'est une requete quelconque "SELECT FROM...."
R = valeur minimum dans la table par exemple 1
S = valeur maximum
For i = R To S
If Not Qr.EOF Then
If i <> Qr.Fields(0) Then champ (N° des enregistrements)
MsgBox i
Qr.MovePrevious 'on fixe i
End If
Qr.MoveNext
End If
Next i
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 oct. 2007 à 19:17
26 oct. 2007 à 19:17
ça ne marche pas ...
Si ton premier enregistrement est effectivement différent de i, tu provoques une erreur avec l'instruction : Qr.MovePrevious ....
Plutot qu'une boucle for ...next, utilises de préférence une boucle while ... wend ... tu évites : If Not Qr.EOF then ... pas très bon ...
;o)
Si ton premier enregistrement est effectivement différent de i, tu provoques une erreur avec l'instruction : Qr.MovePrevious ....
Plutot qu'une boucle for ...next, utilises de préférence une boucle while ... wend ... tu évites : If Not Qr.EOF then ... pas très bon ...
;o)
Je peux utiliser ça,
i = R
Do While i < s
While Not Qr.EOF
If i <> Qr.Fields(0) Then
Msgbox i
Qr.MovePrevious
End If
Qr.MoveNext
i = i + 1
Wend
Loop
mais, il y a un petit problème pour la première occurrence (exp : s'il n'y a pas de 1 il ne renvoie pas le premier enregistrement manquant.
i = R
Do While i < s
While Not Qr.EOF
If i <> Qr.Fields(0) Then
Msgbox i
Qr.MovePrevious
End If
Qr.MoveNext
i = i + 1
Wend
Loop
mais, il y a un petit problème pour la première occurrence (exp : s'il n'y a pas de 1 il ne renvoie pas le premier enregistrement manquant.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
29 oct. 2007 à 10:21
29 oct. 2007 à 10:21
Je te redonne la réponse que je t'ai fait sur l'autre post
Salut nagnag,
Tu déclares i = R mais que vaut R ? idem pour s ?
Pourquoi ne pas faire qu'une boucle ? tu n'as pas besoin de faire do while .... loop
Ensuite dans ton if il y a toujours le Qr.MovePrevious ...
Je suppose que i = 1 pour lire la première occurence du recordset. Si la première occurence est 2, tu ajoutes bien i à l'objet Istaud, mais MovePrevious va générer un message d'erreur, puisque tu es sur la première occurence, tu ne peux pas faire "précédente occurence".
C'est donc un cas particulier qu'il faut traiter de façon indépendante. Même si tu sais que ce n'est pas le cas dans ta table, mais il faut anticiper les éventuels changement pouvant intervenir dans la table (Update, Delete...) qui peuvent changer les données.
Voilà mes remarques ... mais l'idée est excellente.
Bravo et bon courage
;o)
Polux
PS: Merci de me tenir au courant de l'avancement de ton travail ...
Salut nagnag,
Tu déclares i = R mais que vaut R ? idem pour s ?
Pourquoi ne pas faire qu'une boucle ? tu n'as pas besoin de faire do while .... loop
Ensuite dans ton if il y a toujours le Qr.MovePrevious ...
Je suppose que i = 1 pour lire la première occurence du recordset. Si la première occurence est 2, tu ajoutes bien i à l'objet Istaud, mais MovePrevious va générer un message d'erreur, puisque tu es sur la première occurence, tu ne peux pas faire "précédente occurence".
C'est donc un cas particulier qu'il faut traiter de façon indépendante. Même si tu sais que ce n'est pas le cas dans ta table, mais il faut anticiper les éventuels changement pouvant intervenir dans la table (Update, Delete...) qui peuvent changer les données.
Voilà mes remarques ... mais l'idée est excellente.
Bravo et bon courage
;o)
Polux
PS: Merci de me tenir au courant de l'avancement de ton travail ...
26 oct. 2007 à 15:41
Voici que quoi t'aider à mieux comprendre :