Je reviens ici pour m'aider à résoudre un petit bug ... (environnement VB6).
Sur un formulaire, j'ai une listebox qui présente une liste d'éléments. Sur cette liste, la case à cocher est affichée, et tous les éléments sont sélectionnés.
J'ai un bouton sur ce form qui execute le code suivant :
choix = MsgBox("Confirmez-vous la suppression ?", vbYesNo + vbCritical, "Confirmation de suppression")
If choix = vbYes Then
For i = 0 To Liste.ListCount - 1
If Liste.Selected(i) = True Then
sql = "DELETE * from T_SOLUCES where id like '*" & Mid(Liste.Text, 1, 6) & "*'"
db.Execute sql
End If
Next i
MsgBox "Suppression effectuée !", vbOKOnly + vbInformation, "Message"
Le problème que j'ai est que seulement un élément est supprimé (le dernier en l'occurence) alors que je voudrais qu'ils le soient tous ....
En effet, ma listebox comportant 3 éléments, en affichant ma commande SQL en msgbox, je vois que mon code boucle sur la même référence, c'est-à-dire la dernière.
C'est mon 'For i = 0 to liste.listecount -1' qui cloche je pense.
For i = 0 To Liste.Count - 1
If Liste.item(i).eval(Liste.selectedItem) Then
sql = "DELETE * from T_SOLUCES where id like '*" & Mid(Liste.item(i).Text, 1, 6) & "*'"
db.Execute sql
End If
Next i