IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

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


Sujet :

Access

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 9
    Points
    9
    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
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    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
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 9
    Points
    9
    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
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    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
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 9
    Points
    9
    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
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    c'est mieux comme çà
    GestionNote.rar
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    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
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    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.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Points : 9
    Points
    9
    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 Langage
    Réponses: 5
    Dernier message: 06/04/2016, 17h40
  2. [WD17] Gestion des élèves par Annèe scolaire
    Par ellodidier dans le forum WinDev
    Réponses: 2
    Dernier message: 22/10/2012, 17h52
  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, 15h48
  4. Faire le rang des élèves (Classement)
    Par Niagala dans le forum Excel
    Réponses: 3
    Dernier message: 02/05/2008, 13h59

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