BOUCLES IMBRIQUEES AVEC 2 LISTBOX ET INSTRUCTION SQL

Résolu
Signaler
Messages postés
84
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
14 décembre 2016
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
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

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

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

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.