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 :

Problème pour classer les valeurs d'un champ


Sujet :

Access

  1. #1
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Points : 276
    Points
    276
    Par défaut Problème pour classer les valeurs d'un champ
    salut,
    J'ai une table Personne composée des champs suivants :
    N° personne
    Nom Personne
    Sexe
    Note matière

    J'ai une dizaine d'occurences, ce que je veux c'est faire une requête (en mode graphique), qui m'affiche le classement des personnes par rapport à leur note matière, Exemple :
    Si j'ai les 5 personnes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    N° personne | Nom | sexe | Note matière 
      P1               |    A  |   M    | 11 
      P2               |    B  |   M    | 15
      P3               |    C  |   F    | 13 
      P4               |    D  |   M    | 19 
      P5               |    E  |   F    | 7
     
    //la requête doit me retourner : 
    N° personne | Classement
     P1                |  4
     P2                |  2
     P3                |  3
     P4                |  1
     P5                |  5
    Merci d'avance
    PS: Je rappelle que je travaille en mode graphique

  2. #2
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Points : 276
    Points
    276
    Par défaut
    tjrs personne ?

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Essaie en créant un table temporaire. Tu trie croissant sur le résultat, tu mets un champ autonumber dans la nouvelle table et le tour sera joué et tout cela en mode graphique.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par Heureux-oli
    Essaie en créant un table temporaire. Tu trie croissant sur le résultat, tu mets un champ autonumber dans la nouvelle table et le tour sera joué et tout cela en mode graphique.
    Est s'il y a plusieurs deuxiemes et troisième?

    Peut être qu'il ya d'autres solutions, mais je vois un module de classement qui mettra à jour un champ de ta table.
    Amicalement

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    avec une nouvelle colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rang : CpteDom("*";"Personne";"[Note matière] > " & [Note matière])+1

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Bien vu.

    Juste mettre un REPLACE au cas ou il y aurait des nombres décimaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rang : CpteDom("*";"Personne";"[Note matière] > " & REPLACE([Note matière];",";"."))+1
    Amicalement

  7. #7
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par DMboup
    Citation Envoyé par Heureux-oli
    Essaie en créant un table temporaire. Tu trie croissant sur le résultat, tu mets un champ autonumber dans la nouvelle table et le tour sera joué et tout cela en mode graphique.
    Est s'il y a plusieurs deuxiemes et troisième?

    Peut être qu'il ya d'autres solutions, mais je vois un module de classement qui mettra à jour un champ de ta table.
    Oui, c'est vrai dans mon cas, il y a plusieurs 1 et 2 et 3 ...

  8. #8
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par Arkham46
    slt,

    avec une nouvelle colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rang : CpteDom("*";"Personne";"[Note matière] > " & [Note matière])+1
    Je ne comprend pas bien cette syntaxe sachant que je travaille en mode graphique
    Mais merci pour la réponse

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    La solution de Arkham46 marche bien. Il suffit de créer une requete avec une nouvelle colonne ou tu met le code
    Amicalement

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Moi aussi c'est en mode graphique



    on utilise "juste" une fonction de regroupement de domaine pour compter dans la table le nombre de notes supérieures à celle de la ligne en cours

    pour le problème des séparateurs de décimale j'ai essayé avec un Str(NumChaîne) au lieu du Replace, à priori ça fait le même boulot (vu ce qu'en dit l'aide en tout cas ça met un point comme séparateur de décimale)

  11. #11
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Points : 276
    Points
    276
    Par défaut
    oui, je n'ai pas dit le contraire
    Mais d'après ce que j'ai comprit après ma rechercher sur la fonction, je constate qu'elle fait ça :
    détermine le nombre d'enregistrements sélectionnés dans le jeu d'enregistrements spécifié (un domaine).
    Donc, en gros, ce que j'ai comprit de la commande, c'est incrementé Rang.etudiant si note.etudiant > note.etudiant_i (et ca compare avec tte les autres notes)..
    c'est bien ca ?

    P.S.: oops j'ai pas vu le dernier post, merci
    Question
    Si j'avais un autre champ sur lequel je dois tester aussi, par exemple le champ "ville" et chaque ville à son premier, 2éme, ... personne..

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    soit une table matable
    avec les champs numper matière note
    ouvre une nouvelle requête
    passe en affichage sql
    et copie le code suivant dans la partie sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT a.matière, 
    a.numpers, 
    a.note, 
    Count(b.note) AS rang
    FROM matable AS a, 
    matable AS b
    WHERE b.note>=[a].[note]
     AND b.matière=[a].[matière]
    GROUP BY a.matière, a.numpers, a.note
    ORDER BY a.matière;
    rebascule en mode graphique tu obtiendras ta solution
    Elle est pas belle la vie ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/05/2014, 11h02
  2. [Slider] Problème pour fixer les valeurs max et min
    Par al2000 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 31/10/2013, 15h04
  3. Réponses: 2
    Dernier message: 04/04/2013, 14h15
  4. Réponses: 2
    Dernier message: 16/06/2009, 02h42
  5. [MySQL] Problème pour récupèrer les champs d'un formulaire qui se trouve dans un while
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 21/03/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