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

IHM Discussion :

Ordre alphabétique dans une liste déroulante [AC-2013]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut Ordre alphabétique dans une liste déroulante
    Bonjour,

    J'ai plusieurs formulaires (devis, facture..) qui contiennent des listes déroulantes de clients, mais celles-ci ne sont pas classées dans l'ordre alphabétique.
    J'ai vérifié les relations dans les tables, j'ai vérifié dans les requêtes, toutes les listes sont classées par ordre alphabétique mais dès que je les met dans un formulaire c'est l'anarchie, il n'y a pas de logique dans la présentation de la liste car ce n'est ni classé par N°ID, ni par lettre, ni par date d'enregistrement...
    Je n'y comprends rien, est-ce que quelqu'un aurait une idée pour résoudre ce problème ?
    Avec mes remerciements,
    Maringot

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    J'apporte une précision sur ma demande: dans les formulaires j'ai deux listes, une "client" qui est classée par ordre alphabétique, et une "site" et c'est celle-ci qui ne se classe pas par ordre alphabétique.
    La liste "site" est en lien avec la liste client, c'est à dire que lorsque je choisi un client, la liste "site" présente les sites rattachés au client.

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    tu peux mettre une requete triee comme source du formulaire

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour accesisgood,

    Que veux tu dire ? car dans les tables où il y a les relations, l'ordre des sites en "croissant". Dans les requêtes relatives aux formulaire, l'ordre des sites est "croissant" et pourtant tout est mélangé...

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    Bonjour maringot,
    je pense que spécifier un tri dans les relations n'implique pas qu'il sera effectif dans le reste de la base, car contrairement à ce qu'on pourrait croire, l'ordre de tri n'est pas natif dans les objets (y compris les tables), il faut la spécifier.
    C'est ici pour un formulaire :
    Nom : frm_Tri.JPG
Affichages : 1794
Taille : 39,5 Ko
    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 ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour Tee_grandbois,

    Et pour un champ on le précise où, car "Tri par" ne figure pas dans les propositions de données...

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    bonjour,
    Et pour un champ on le précise où, car "Tri par" ne figure pas dans les propositions de données
    je n'ai pas compris "ne figure pas dans les propositions de données".
    Si cela concerne les sources de données du formulaire, les champs doivent être précisés dans la propriété "Tri par" :

    Nom : frm_TriParChamp.JPG
Affichages : 1234
Taille : 34,6 Ko
    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 ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour Tee_grandbois,

    Ca ne fonctionne pas...alors je me demande si cela ne vient d'une procédure évènementielle sur activation qui est la suivante :
    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
    Private Sub Form_Current()
    Dim strSQL As String
    If Me.C_Sites__oui_non = "11" Then
    strSQL = "SELECT [T-Sites].IDSites, [T-Sites].[S-Nom-Societe], [T-Sites].[S-Adr1], [T-Sites].[S-CP], [T-Sites].[S-Ville], [T-Sites].Payeur " _
    & "From [T-Sites] " _
    & "WHERE [T-Sites].Payeur = " & Me.IDClient & ";"
    Me.IDSites.RowSource = strSQL
    Me.IDSites.Requery
    Me.IDSites.Visible = True
    Me.Commande105.Visible = True
    Else
    Me.IDSites.Visible = False
    Me.Commande105.Visible = False
    End If
    End Sub
    Avec ce code, suivant si mes clients ont des "sites", le champ "IDSites" apparaît et est renseigné et donc c'est celui-ci qui n'est pas classé par ordre alphabétique malgré ordre "croissant" dans les relations des tables et dans les requêtes, rien n'y fait tout est en désordre.
    C'est pourquoi je me demande si dans le code on ne peut pas ajouter quelque chose qui pourrait classer les sites ??

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu n'as pas d'ordre dans ta requête, essayes de mettre un ORDER BY avec le nom du champ que tu souhaites en fin de celles-ci.

    Philippe

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour Philippe,

    J'ai modifié le code comme ceci
    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
    Private Sub Form_Current()
    Dim strSQL As String
    If Me.C_Sites__oui_non = "11" Then
    strSQL = "SELECT [T-Sites].IDSites, [T-Sites].[S-Nom-Societe], [T-Sites].[S-Adr1], [T-Sites].[S-CP], [T-Sites].[S-Ville], [T-Sites].Payeur " _
    & "From [T-Sites] ORDER BY [S-Nom-Societe]" _
    & "WHERE [T-Sites].Payeur = " & Me.IDClient & ";"
    Me.IDSites.RowSource = strSQL
    Me.IDSites.Requery
    Me.IDSites.Visible = True
    Me.Commande105.Visible = True
    Else
    Me.IDSites.Visible = False
    Me.Commande105.Visible = False
    End If
    End sub
    Mais ça ne change rien

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Complément d'info

    Je l'ai également écrit comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim strSQL As String
    If Me.C_Sites__oui_non = "11" Then
    strSQL = "SELECT [T-Sites].IDSites, [T-Sites].[S-Nom-Societe], [T-Sites].[S-Adr1], [T-Sites].[S-CP], [T-Sites].[S-Ville], [T-Sites].Payeur " _
    & "From [T-Sites] ORDER BY[T-Sites].[S-Nom-Societe]" _
    & "WHERE [T-Sites].Payeur = " & Me.IDClient & ";"
    Me.IDSites.RowSource = strSQL
    Me.IDSites.Requery
    Me.IDSites.Visible = True
    Me.Commande105.Visible = True
    Else
    Me.IDSites.Visible = False
    Me.Commande105.Visible = False
    End If
    End Sub
    Mai là je n'ai plus rien qui s'affiche dans cette liste...donc il y a peut-être un problème avec les ponctuations, mais je ne connais pas assez le VBA pour savoir quoi faire

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    Mai là je n'ai plus rien qui s'affiche dans cette liste...donc il y a peut-être un problème avec les ponctuations, mais je ne connais pas assez le VBA pour savoir quoi faire
    bonjour,
    il manque un espace entre "[S-Nom-Societe]" _ et & "WHERE [T-Sites].Payeur = " & Me.IDClient & ";"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "[S-Nom-Societe] " _
    & "WHERE [T-Sites].Payeur = " & Me.IDClient & ";"
    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 ?

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    J'ai ajouté un espace :
    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
    Private Sub Form_Current()
    Dim strSQL As String
    If Me.C_Sites__oui_non = "11" Then
    strSQL = "SELECT [T-Sites].IDSites, [T-Sites].[S-Nom-Societe], [T-Sites].[S-Adr1], [T-Sites].[S-CP], [T-Sites].[S-Ville], [T-Sites].Payeur " _
    & "From [T-Sites] ORDER BY [T-Sites].[S-Nom-Societe] " _
    & "WHERE [T-Sites].Payeur = " & Me.IDClient & ";"
    Me.IDSites.RowSource = strSQL
    Me.IDSites.Requery
    Me.IDSites.Visible = True
    Me.Commande105.Visible = True
    Else
    Me.IDSites.Visible = False
    Me.Commande105.Visible = False
    End If
    End Sub
    Mais rien n'y fait la liste n'affiche toujours rien...

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    Bonjour,
    Est-ce que Me.ID_client est correctement renseigné ?
    Ajoute un Debug.Print strSQL juste avant le End Sub pour voir ce que contient RowSource (Ctrl +G dans Visual Basic pour afficher la fenêtre d'exécution et voir le résultat du Debug). Tu peux ensuite copier le SQL dans une nouvelle requête pour savoir pourquoi il ne retourne rien.
    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 ?

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour Tee_grandbois,

    J'ai donc ajouté Debug.Print strSQL puis créé une requête SQL, et voici le message après "Exécuter":

    "Erreur de syntaxe (opérateur absent) dans l'expression "[T-Sites].[S-Nom-Societe] WHERE [T-Sites].Payeur = 106"

    106 étant le n° du client saisi dans le dernier formulaire de la liste. J'ai essayé avec d'autres clients et le n° change bien à chaque fois.

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    Bonjour,
    postes le SQL complet car la syntaxe incorrecte est peut-être juste avant le bout de code que tu montres.
    Merci.

    [EDIT:] finalement, je pense que l'erreur vient du ORDER BY qui est mal placé, il doit se mettre après le WHERE
    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 ?

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Voici le résultat de la requête :
    Nom : im1.jpg
Affichages : 1188
Taille : 40,8 Ko

    et lorsque je fais OK, "WHERE" est surligné
    Nom : im2.jpg
Affichages : 1131
Taille : 18,7 Ko

    Donc effectivement le problème est peut-être là...

  18. #18
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 650
    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 650
    Points : 14 628
    Points
    14 628
    Par défaut
    bonjour,
    il manque toujours l'espace entre ORDER BY et [T-Sites].[S-Nom-Societe]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "SELECT [T-Sites].IDSites, [T-Sites].[S-Nom-Societe], [T-Sites].[S-Adr1], [T-Sites].[S-CP], [T-Sites].[S-Ville], [T-Sites].Payeur " _
    & "From [T-Sites] WHERE [T-Sites].Payeur = " & Me.IDClient & " ORDER BY [T-Sites].[S-Nom-Societe];"
    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 ?

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 433
    Points : 131
    Points
    131
    Par défaut
    Chapeau bas Tee_grandbois ! ça fonctionne parfaitement, enfin les listes sont classées.

    Merci pour votre patience et votre persévérance.

    Bien cordialement,
    Maringot

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

Discussions similaires

  1. Tri alphabétique dans une liste déroulante
    Par floopi51 dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2009, 10h13
  2. Ordre alphabétique dans une liste déroulante
    Par Z[ee]k dans le forum Access
    Réponses: 2
    Dernier message: 30/05/2006, 15h02
  3. Saisie de plusieurs caractère dans une liste déroulante
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/03/2005, 14h32
  4. Rajouter "Tous" dans une Liste Déroulante
    Par smirold dans le forum IHM
    Réponses: 7
    Dernier message: 25/10/2004, 13h29

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