A voir également:
- Boucle avec VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Boucle excel sans macro - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
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
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 ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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.
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
ç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.
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 ...
Voici que quoi t'aider à mieux comprendre :