Discussion: Rang des élèves par trimestre [AC-2010]

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2017
    Messages : 18
    Points : 7
    Points
    7

    Par défaut Rang des élèves par trimestre

    Bonsoir à tous j'ai fais une application access pour gérer les notes des élèves par trimestre nous avons 03 trimestres j'ai fini mais le seul problème est le classement des élèves à partir de la plus grande moyenne jusqu'à la p'tite moyenne à travers mes recherche j'ai trouvé une astuce qui donne le rang mais le problème est que j'obtiens un classement des élèves sur les 03 trimestres alors que je voudrais que cela soit par trimestre j'ai essayer au niveau du critères trimestre de filtrer mais ça donne pas
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rang:CpteDom("*";"[tMoyenne]";"[Moy]*100>"&[Moy]*100)+1
    J'ai 03 tables: tEleve (Matricule,Nom,Prénom)
    tMoyenne (idMoy,Matricule,Trimestre,Moy)
    tTrimestre (idTrimestre,Trimestre)

    J'ai 03 requêtes pour chaque trimestre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tEleve.NomEleve, tEleve.PrenomEleve, tMoyenne.Moy, tMoyenne.Trimestre, DCount("*","tMoyenne","[Moy]*100 > " & [Moy]*100)+1 AS Rang
    FROM tTrimestre INNER JOIN (tEleve INNER JOIN tMoyenne ON tEleve.Matricule = tMoyenne.Matricule) ON tTrimestre.IdTrimestre = tMoyenne.Trimestre
    WHERE (((tMoyenne.Trimestre)=1));
    Aidez moi

  2. #2
    Membre confirmé Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 448
    Points : 511
    Points
    511

    Par défaut

    Bonjour
    Il faut utiliser la balise # qui est au dessus de la zone de saisie lorsque tu veux poster un code. Ceci permet une bonne lisibilité pour ceux qui vont t'aider.
    Pour ce qui est du rang, tu vas créer trois requêtes
    -La première te permet de selectionner les notes des élève (et c'est à ce niveau que tu filtres la classe et le trimestre. Tu vas donc insérer des critères qui prennent les valeurs trimestre et classe à partir d'un formulaire. Car tu n'entreras pas à chaque fois manuellement tes critères çà fait trop amateur )
    - La deuxième calcule la moyenne à partir de la première requête
    -La troisième calcul le rang à partir des moyenne de la deuxième.
    Si tu procèdes ainsi je pense que çà va marcher

    Cordialement

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2017
    Messages : 18
    Points : 7
    Points
    7

    Par défaut

    Merci car effectivement je me demandais comment les autres s'y prenais pour afficher leur code de façon présentable.

  4. #4
    Membre expert
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 166
    Points : 3 683
    Points
    3 683

    Par défaut

    Citation Envoyé par kerfab Voir le message
    Merci car effectivement je me demandais comment les autres s'y prenaient pour afficher leur code de façon présentable.
    bonsoir,
    c'est parce qu'il y a encore beaucoup de membres qui ne prennent pas le temps de lire les règles du forum :http://club.developpez.com/regles/#LIII-E

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2017
    Messages : 18
    Points : 7
    Points
    7

    Par défaut

    Bonjour Bertiny!
    Ça fais 03 jrs que j'essaie de mette en aplication ta solution mais je n'y arrive pas
    Jais procédé comme suit:
    1e requête qui récupère la note
    1e autre calcule la moyenne
    Et la 3ene donne le rang
    Mon problème reste tjr le rang
    Par ex une moyenne de 15,95 donne #Erreur
    Pour toute moyenne sans virgule. le rang est 1
    J'ai ajouté ma base de donnée en pièce jointe
    Merci d'y jeter un coup d"œil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rang: CpteDom("*";"[tELEVES]";[Moyenne]*100>"&[Moyenne]*100)+1
    Fichiers attachés Fichiers attachés

  6. #6
    Membre confirmé Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 448
    Points : 511
    Points
    511

    Par défaut

    c'est mieux comme çà
    GestionNote.rar

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  7. #7
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    7 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 7 058
    Points : 22 405
    Points
    22 405

    Par défaut

    Bonjour,

    Si toutefois tu veux faire cela en SQL pur, il faut d'abord ajouter ORDER BY à la fin de ta requête, clause qui te permet de trier par colonne, ou par plusieurs colonnes, successivement. Par exemple ..ORDER BY tTrimestre ASC,tMoyenne.Moy DESC triera tous tes résultats par ordre croissant de trimestre (donc trimestre 1, puis 2, puis 3) et, pour un trimestre donné (c'est-à-dire pour toutes les entrées dont le numéro de trimestre est le même), par ordre décroissant de moyenne, donc le meilleur en tête de liste.

    Cela fait partie des fondamentaux du SQL et fonctionne partout. C'est suffisant si tu disposes déjà des données demandées dans la table.

    Si toutefois tu souhaites utiliser des fonctions d'agrégation, comme COUNT(*) ou SUM(*), il te faudra utiliser la clause GROUP BY pour diviser le résultat de ta requête en sous-ensembles, et pour que les fonctions d'agrégation s'appliquent sur ces sous-ensembles plutôt que sur les résultats entiers. Il existe en outre, depuis les normes de 2003 et 2008 des fonctions comme ROW_NUMBER(), RANK() ou DENSE_RANK() qui servent précisément à ce genre de classement, mais je ne sais pas si Access les implémente ou non (ça fait longtemps que je ne l'ai plus utilisé).

  8. #8
    Membre expert
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 166
    Points : 3 683
    Points
    3 683

    Par défaut

    bonsoir Obsidian,
    Il existe en outre, depuis les normes de 2003 et 2008 des fonctions comme ROW_NUMBER(), RANK() ou DENSE_RANK() qui servent précisément à ce genre de classement, mais je ne sais pas si Access les implémente ou non (ça fait longtemps que je ne l'ai plus utilisé).
    Malheureusement, Access n'implémente pas ces 3 fonctions, tout comme il n'a jamais implémenté la mise à jour des tables à partir d'une requête ou sous-requête de regroupement, même si il propose des solutions de contournement avec des fonctions de regroupement (Dlookup(), DMax(), DFirst() ...) pour les mises à jour.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2017
    Messages : 18
    Points : 7
    Points
    7

    Par défaut

    Bonjour merci à tous ceux qui ont intervenu pour m'aider à résoudre mon problème
    Bertiny tu es trop fort la solution que tu a as posté repond à toutes mes attentes
    Grand merci à tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion de notes des élèves par classe en procédural
    Par 2boubacar10 dans le forum Formulaires
    Réponses: 5
    Dernier message: 06/04/2016, 18h40
  2. [WD17] Gestion des élèves par Annèe scolaire
    Par ellodidier dans le forum WinDev
    Réponses: 2
    Dernier message: 22/10/2012, 18h52
  3. le rang des élèves d'une classe sous VB
    Par diffi dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/03/2011, 16h48
  4. Faire le rang des élèves (Classement)
    Par Niagala dans le forum Excel
    Réponses: 3
    Dernier message: 02/05/2008, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo