winvsmac
Messages postés84Date d'inscriptionsamedi 26 mai 2007StatutMembreDernière intervention14 décembre 2016
-
28 mai 2007 à 16:34
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
29 mai 2007 à 02:23
Bonjour !
Je viens poser mon problème car j'ai du mal à y trouver une solution.
Environnement : VB6 et Access
Sur un form, j'ai 2 listbox :
liste 1 nommée : clubs
liste 2 nommée : epreuves
Les éléments de la liste epreuves sont composés d'une date sous le format JJMMAAAA, un espace et un lieu.
Les élements de la liste clubs sont composés du nom du club sportif.
Les 2 listebox contiennent plusieurs éléments. A partir de ces 2 listes, je dois faire une recherche dans une table Access et sélectionner les enregistrements dont le champ club, le champ date et le champ lieu correspondent aux éléments des 2 listebox.
Le soucis est que je n'arrive pas à faire les boucles imbriquées : prendre le premier élément de la liste club, vérifier si la valeur du champ club du 1er enregistrement de ma table correspond puis si oui, vérifier si les champs lieu et date correspondent aux éléments de ma 2nde listebox, et passer aux éléments suivants .... Et quand les champs club/date/lieu correspondent aux éléments des listebox ecrfire tout ça dans une table Access.
J'espere que c'est assez clair.
Donc si vous pouviez me donner un coup de main, j'en serai super heureux.
Merci bcp de votre aide.
Winvsmac
A voir également:
BOUCLES IMBRIQUEES AVEC 2 LISTBOX ET INSTRUCTION SQL
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 28 mai 2007 à 18:18
Salut
Là, tu as énoncé ton problème, mais tu n'as pas :
- Donné la liste des Tables concernées
- Donné la liste et le type des champs de ces tables
- Donné le peu de code que tu as déjà écrit, car la première chose, c'est d'avoir reflechi au problème et tenté de le résoudre, sinon tout le monde va arriver avec ses devoirs de classe, trop facile !
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
winvsmac
Messages postés84Date d'inscriptionsamedi 26 mai 2007StatutMembreDernière intervention14 décembre 2016 28 mai 2007 à 18:31
Re,
Dans un premier temps, je lis la table T_ENGAGEMENTS qui comportent les champs : club, date, lieu et score.
Il y a un premier controle avec la listbox CLUB : si le champ club de la table T_ENGAGEMENT correspond au 1er élément de la listbox CLUB alors je teste 2 autres champs de la table T_ENGAGEMENTS : champ QUAND et LIEU.
Si les champs DATE et LIEU correspondent aux éléments de la seconde listbox EPREUVES, alors je dois écrire dans une autre table (ENG_OUI) l'enregsitrement.
Si les enregsitrements de la table T_ENGAGEMENTS où les champs CLUB, DATE et LIEU ne correspondent pas avec les valeurs des 2 listbox, j'écris l'enregistrement dans une autre table (ENG_NON)
Et on boucle pour tester toutes les valeurs des 2 listbox.
Voici le bout de code que j'ai fait :
With eng (table T_ENGAGEMENT)
.MoveFirst
Do Until eng.EOF
For i = PRINCIPAL.liste_club.ListCount - 1 To 0 Step -1
If eng!Club = Mid(PRINCIPAL.liste_club.List(i), 1, 13) Then
For j = PRINCIPAL.liste_filtre.ListCount - 1 To 0 Step -1
If eng!quand = Mid(PRINCIPAL.liste_filtre.List(j), 1, 8) Then
If eng!lieu = Mid(PRINCIPAL.liste_filtre.List(j), 10) Then
tmpengoui.AddNew
tmpengoui!Club = eng!Club
tmpengoui!lieu = eng!lieu
tmpengoui!quand = eng!quand
tmpengoui!lepreuve = eng!longueur
tmpengoui.Update
Else
tmpengnon.AddNew
tmpengnon!Club = eng!Club
tmpengnon!lieu = eng!lieu
tmpengnon!quand = eng!quand
tmpengnon!epreuve = eng!longueur
tmpengnon.Update
End If
End If
Next
End If
Next
.MoveNext
Loop
End With
Voilà, j'espere que ça va aider.
Encore Merci pour votre aide.