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 :

critère de Tri


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut critère de Tri
    Bonjour,
    J'ai un combo qui me permet de faire un tri dans une zone de liste qui est basée sur une requête.
    Mais il se trouve que le tri ne s'effectue pas.
    Voici ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sql="SELECT table1.IDChmp, table1.chmp1, table1.chmp2, table1.chmp3, table1.chmp4, FROM table1 WHERE (((table1.chmp3) = Oui)) WHERE [chmp2] Like'" & Me.cbo1.Text & "*'""

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    Salut,
    ajouter,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    groupeby votrechamps
    Bonne chance.
    Merci.

  3. #3
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    déjà dans ta requête SQL il y a deux WHERE !!! , j'ai jamains vu ça. donc ça ne risque pas de marcher. ton code serait-il pas ceci ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sql="SELECT table1.IDChmp, table1.chmp1, table1.chmp2, table1.chmp3, table1.chmp4, FROM table1 WHERE (((table1.chmp3) = Yes)) 
    ORDER BY '" & Me.cbo1.value & "*'"
    ps : heu hocine ! un GROUP BY ne fait pas de tri mais un regroupement !

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    Salut,

    Merci.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    J'ai essayé le code proposé par Petogaz, mais rien n'y fit, ca ne mrche toujours pas.
    J'ai une requête qui basée sur une table me permet d'afficher certaines données dans une zone de liste.
    le code sql de cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT table1.IDChmp, table1.chmp1, table1.chmp2, table1.chmp3, table1.chmp4, FROM table1 WHERE (((table1.chmp3) = Oui))
    Mon objectif:
    De cette requête, je voudrais faire un tri à partir d'un combo cbo1 afin de pouvoir avoir l'information désirée.
    Et... , je n'y arrive toujours pas.
    Votre aide...
    Merci

  6. #6
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    ce que tu dois faire c'est de modifier le rowsource de ta zone de liste à partir de l'évenement Afterupdate de ton combo. un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private sub cbo1_Afterupdate()
     
    Me.maliste.rowsource = "SELECT table1.IDChmp, table1.chmp1, table1.chmp2, table1.chmp3, table1.chmp4, FROM table1 WHERE (((table1.chmp3) = yes))
    GROUP BY '" & Me.cbo1.value & "*';"
     
    Me.maliste.requery
     
    end sub
    en supposant que le contenu de ton combo est de type texte.

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Aucun résultat
    Je commence à desespérer
    C'est bien sur l'evenement cbo1_afterupdate que je mets mon code mais TOUJOURS RIEN[b].
    J'ai même essayé celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.maliste.RowSource = "SELECT IDChmp, chmp1, chmp2, chmp3, chmp4, FROM table1 WHERE ([chmp3] = '" & yes & "' )Group BY '" & Me.cbo1.Value & "*' "
    me.maliste.requery
    ,
    Sans resultat aussi et pourtant j'ai des données qui correspondent à ces critères
    SOS

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Quelqu'un pour m'aider : :
    Merci

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Je ne comprends pas trop le "Group BY '" & Me.cbo1.Value & "*' " mais si tu dois faire un regroupement sur le champ "IDChmp" c'est plustot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.maliste.RowSource = "SELECT IDChmp, chmp1, chmp2, chmp3, chmp4, FROM table1 WHERE ([chmp3] = '" & true & "' ) Group BY IDChmp; " 
    me.maliste.requery

    A+

  10. #10
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Bonjour,

    je pense que le code est presque juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private sub cbo1_Afterupdate() 
     
    Me.maliste.rowsource = "SELECT table1.IDChmp, table1.chmp1, table1.chmp2, table1.chmp3, table1.chmp4, FROM table1 WHERE (((table1.chmp3) = yes)) 
    ORDER BY " & Me.cbo1.value & ";" 
     
    ' Me.maliste.requery (sauf erreur ce n'est pas nécessaire)
     
    end sub
    maintenant il faut faire la liste que tu as pour le tri de la manière suivante

    soit un table ou une liste que tu crées avec:

    colonne liée colonne pour l'explication

    table1.chmp1 Le champs 1 est trié

    table1.chmp2 Le champs 2 est trié
    ... ....

    et ainsi de suite
    Avec ce code il ne devrait pas y avoir de problème, j'ai déjà fait des trucs du genre

  11. #11
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Juste une petite question : Ta requête fonctionne, même avec une virgule après "chmp4" ?

  12. #12
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    PC75 tu as raison il faut supprimer cette , car il risque d'y avoir un bug

  13. #13
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Merci de me repondre Muhad'hib
    C'est sur les précédents conseils que j'ai essayé avec le GROUP BY et aussi le ORDER BY mais,...rien
    Je recapitule après quelques modifs:
    J'ai une zone de liste basée sur une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IDChmp, chmp1, chmp2, chmp3, chmp4, FROM table1
    Une zone de liste déroulante basée sur ma table: Cbo1
    L'objectif:
    *Faire un 1er tri basé sur chmp2 (La valeur de chmp2= '" & Oui & "')
    *Puis affiché le résultat à l'isu d'un second tri basé sur cbo1
    (Les 2 tris me permettent d'avoir mon résultat final dans ma zone de liste).
    Merci

  14. #14
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    J'ai l'impression de ne rien comprendre

    Quelle est la Cbo1 et que veux tu dire par faire un 1er tri

    Question est-ce que le 1er tri ( je suppose à l'ouverture) doit êtr maintenu oui ou non?

    si oui la syntaxe pour le tri c'est

    ORDER BY chmp2, chmp3 etc...

    J'ai aussi l'impression qu'il y a confusion entre le tri et la sélection des enregistrements ce n'est pas la même chose

    tri c'est mettre par ordre alphabéthique par exemple et l'autre c'est pour la sélection d'enregistrement ce qui n'est pas la même chose!!!

  15. #15
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Quelle est la Cbo1 et que veux tu dire par faire un 1er tri
    Il s'agit de ma liste déroulante qui après afterupdate me permet de choisir dans ma zone de liste l'élément qu'elle affiche.
    Par tri: choisir l'élément affiché par ma liste déroulante (Cbo1)
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL1= "SELECT id, chmp1, chmp2, chmp3, chmp4 FROM table1 WHERE chmp2='" & Oui & "' "
    maliste.rowsource=SQL1 & "And table1!chmp3 Like '*" & me.cbo1 & "*'.
    C'est identique à ce qu'a proposé caféine dans son tutoriel.
    Mais...
    Merci[/b]

  16. #16
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... (((table1.chmp3) = yes))
    A l'execution, jai une fenêtre qui recherche la valeur:yes
    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ... (((table1.chmp3) ='" & yes & "'))
    je n'ai plus la fenêtre qui s'ouvre.
    Y a t-il une différence entre ces 2 :
    Merci

  17. #17
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    oui
    la différence si chmp3 est du type oui/non il faut mettre

    par contre si chmp3 est du type texte il faut mettre

    maintenant dans ton 2ème cas il recherche la variable yes qui n'est en fait pas définie

  18. #18
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Mon Chmp3 est du type booléen (Oui/Non).
    Puis-je avoir le code afin d'afficher la donnée dont chmp3= Oui et dont chmp2= '" & me.cbo1.text & "'
    Je suis à bout ...

  19. #19
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    oui sans problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chmp3= vrai AND chmp2= '" & me.cbo1 & "'

  20. #20
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut

    Alexandre Sahli
    Simplement sensationnelle
    Ca MARCHE

    Merci

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

Discussions similaires

  1. problème de critère de tri
    Par orcinus dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 19/06/2008, 04h30
  2. Réponses: 1
    Dernier message: 18/06/2008, 11h32
  3. Critère de tri Exportation Etat en PDF
    Par maxime350 dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/04/2008, 13h37
  4. Access : Boite de dialogue + critère de tri
    Par le_touriste dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/11/2007, 17h33
  5. [TSMDBGrid] Gestion des critères de tri
    Par Laurent Dardenne dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/02/2007, 14h13

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