Mon recordset ne se trie pas alors que j'utilise ORDER BY

beegeezzz Messages postés 152 Date d'inscription mardi 4 novembre 2008 Statut Membre Dernière intervention 10 avril 2017 - 10 juin 2009 à 10:22
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 10 juin 2009 à 11:48
Bonjour tout le monde,

Je me suis connecté à une base de données mysql avec VB 6.

J'ai deux chaines SQL qui me permettent de récupérer des données dans cette bd :
"SELECT * FROM cours WHERE NOM_ANNEE """ & NomAnnee & """ AND Categorie ""NORMAL"""

et
"SELECT inscrits_en.ID, etudiants.MATRICULE_ET,etudiants.NOM_ET,etudiants.PRENOM_ET, inscrits_en.NOTE FROM `inscrits_en` LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET etudiants.MATRICULE_ET ) WHERE MNEMONIC """ & formPrincipal.rst("MNEMONIC") & """  AND TYPE_DE_COURS = """ & formPrincipal.rst("TYPE_DE_COURS") & """ AND CATEGORIE = 'NORMAL' ORDER BY NOM_ET, PRENOM_ET"

Je parcours donc mes deux recordsets :

While Not formPrincipal.rst.EOF        reqNomPrenomEtudiants "SELECT inscrits_en.ID, etudiants.MATRICULE_ET,etudiants.NOM_ET,etudiants.PRENOM_ET, inscrits_en.NOTE FROM `inscrits_en` LEFT JOIN `etudiants` ON ( inscrits_en.MATRICULE_ET etudiants.MATRICULE_ET ) WHERE MNEMONIC = """ & formPrincipal.rst("MNEMONIC") & """  AND TYPE_DE_COURS = """ & formPrincipal.rst("TYPE_DE_COURS") & """ AND CATEGORIE = 'NORMAL' ORDER BY NOM_ET, PRENOM_ET"
        'MsgBox formPrincipal.rst("MNEMONIC") & formPrincipal.rst("TYPE_DE_COURS")
        'je récupère le matricule, nom, prénom et cote de l'étudiant pour le cours que l'on a cliqué avec le bouton
        formPrincipal.Creer_RecordsetNomPrenom reqNomPrenomEtudiants
        'je transforme le nom et prénom en majuscule car autrement il y a une différence entre les noms
        While Not formPrincipal.rst2.EOF
            NomPrenomEnMaj = UCase(appexcel.Cells(checkName, 2))
            MsgBox "En Excel => " & NomPrenomEnMaj & " dans la BD => " & formPrincipal.rst2("NOM_ET") & " " & formPrincipal.rst2("PRENOM_ET")
            'je vérifie si le nom et le prénom de la ligne Excel correspondent au nom et prénom de la bd pour être sûre de ne pas mettre les cotes d'un étudiant chez un autre étudiant
            If (NomPrenomEnMaj = formPrincipal.rst2("NOM_ET") & " " & formPrincipal.rst2("PRENOM_ET")) Then

Le problème, est que rst2 n'est pas trié par ordre croissant de nom/prénom !

le premier fonctionne parfaitement et à partir du second tour, j'ai un nom commençant par "V" alors que ça doit continuer avec "A".

Auriez-vous une idée svp ?

Merci d'avance.

beegees

1 réponse

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
10 juin 2009 à 11:48
salut,

le SQL doit avoir un seul champ de référence en ORDER BY, sinon çà ne marchera pas

voir également la syntaxe GROUP BY
++
0
Rejoignez-nous