BOUCLES IMBRIQUEES AVEC 2 LISTBOX ET INSTRUCTION SQL

Résolu
winvsmac Messages postés 84 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 14 décembre 2016 - 28 mai 2007 à 16:34
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 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

3 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
29 mai 2007 à 02:23
Tu devrais mettre ta requête eng
C'est elle qui devrait faire la grosse partie du boulot...

MPi
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
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)
0
winvsmac Messages postés 84 Date d'inscription samedi 26 mai 2007 Statut Membre Dernière intervention 14 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.
0