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 :

tri d'une colonne qui est [AC-2007]


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut tri d'une colonne qui est
    Bonjour,


    Est-il possible de trier une colonne qui est construite à partir d'une liste de choix : càd que l'on remplit les enregistrements en choisissant dans une liste de choix. Puis j'ai besoin de trier cette colonne, mais Access ne le fait pas... ? Bug ou réalité ? )
    merci...

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Très vague, trop vague.

    Merci de préciser
    - de quelle colonne et de quelle liste il s'agit (formulaire, table...)
    - la manière de faire le tri

    Cordialement,

    ps : Merci de suivre le lien après la ligne en rouge dans ma signature...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    Bonjour,


    Il s'agit d'une colonne qui contient une liste de choix. Elle a été créée en choisissant "Assistant liste de choix" comme type, La liste est une autre table, et le type de la colonne dans cette table est tout simplement du texte (limité à 100 caractères).

    Pour être plus précis : le contenu dans la colonne qui contient la liste de choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT [MATAB].[IDMATAB], [MATAB].[NOM] FROM MATAB ORDER BY [NOM];
    Ca vous va ?
    merci
    Ps : pourquoi doit-on suivre le lien après la ligne en rouge dans votre signature ??

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    Personnellement, je n'ai pas compris votre question...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    c'est simple : le tri ne se fait pas.
    j'ai la colonne dans laquelle j'ai des noms :
    Bastien, Albéric, Joelle, Pascale
    j'ai besoin de les mettre dans l'ordre alphabétique : Albéric, Bastien, Joelle, Pascale
    mais un clic droit sur le nom de colonne et "tri de A à Z" ne marche pas

  6. #6
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour logiclogic, Christophe, Fabrice,

    On est bien entouré sur ce post

    Je crois que c'est simplement parce que ta colonne est une liste et que selon le SQL que tu nous montres ce qui est réellement inscrit dans cette colonne est [IDMATAB] donc quand tu fais un "trier" le résultat se fait sur le numéro et non sur le nom. Pour régler ton problème et trier sur le nom il faudrait que tu ajoutes dans la requête la table [MATAB] et la colonne [NOM] de cette table, ainsi tu pourrais trier sur le [NOM].

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    càd ?
    Nom y est déjà (voir plus haut) et MATAB est la table d'origine (d'où est tirée la liste de noms). Donc, je mets la table qui contient la liste issue de la table d'origine ? On va nommer TABDEUX pour l'exemple. Dans ce cas, je fais quoi ?
    attention cette requête SQL se situe dans l'onglet "Liste de choix", "Contenu" de la table TABDEUX
    merci...

  8. #8
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour logiclogic,

    Pour être plus précis : le contenu dans la colonne qui contient la liste de choix : SELECT [MATAB].[IDMATAB], [MATAB].[NOM] FROM MATAB ORDER BY [NOM];
    Ce qui veut dire que ta colonne contient un numéro et non pas le nom que tu vois affiché. Tu t'es servi de l'assistant liste de choix. Tu as sélectionné
    La liste est une autre table
    Tu as choisie 2 champs dans cette table, le champ [IDMATAB] et le champ [NOM]. Ce qui veut dire qu'à chaque fois que tu sélectionnes un nom, ce n'est pas le nom qui est enregistré dans la table mais le numéro [IDMATAB].

    Si tu veux en être certain enregistre un nom quelconque de ta liste, puis dans la table [MATAB] va modifier ce nom, tu vas voir ce qui se passe dans la table ou tu avais enregistré ce nom.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Personnellement je ne me sert pas de ces listes de tables, beaucoup trop de choses sont impossibles à maitriser.
    Donc de ce côté-là je ne serais pas d'une grande utilité.

    Par contre le conseil que je peux te donner c'est d'éviter d'utiliser des mots réservés pour tes noms de champs. Notamment le mot "Nom" tu vas au devant de grosse tracasseries.

    Cordialement,

    PS : Pourquoi tu dois suivre le lien ? Si tu l'as suivi qu'Est-ce que tu en a déduit ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    merci @loufab

    du coup, j'ai une autre question qui peut se rejoindre. J'ai besoin de supprimer une colonne ID d'une table, et de la recréer. Pourquoi ? J'ai fait une requête Ajout, qui n'a pas marché (même si normalement, elle était correcte) donc les éléments à ajouter à la table n'ont pas été ajoutés. Par contre, lorsque j'entre un nouvel enregistrement, le ID est passé à 1627!!!! alors que j'étais à 99...
    Donc, j'aimerais supprimer la colonne ID, et en recréer une. Ceci dit, une autre table l'utilise via une liste de choix mais ce sont les noms de TABUN qui sont affichés (et donc l'ID de TABUN est en arrière plan. Effectivement si je copie colle la colonne de TABDEUX, ce sont les ID qui sont collés, et pas les noms). Donc, il faut que je puisse garder les NOMS dans TABDEUX, refaire la colonne ID de TABUN, et refaire la liste de choix dans TABDEUX qui utiliserait le nouvel ID. Pour garder la connexion entre les deux tables, je m'appuyerai sur le NOM qui est donc correct.
    RQ : la requête ajout pour TABUN concerne une TABTROIS qui n'est pas nécessaire de citer ici.


    Deux questions : peut-on faire cela avec l'interface ? doit-on passer par du VBA ?
    merci, je suis débutante sur ce type de question. Le VBA semblerait générer moins d'erreur

  11. #11
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour logiclogic,

    Comme je t'expliquais dans l'autre post, même si tu vois le nom dans TABDEUX ce n'est pas le nom qui est sauvegardé mais le numéro. Si tu supprimes la colonne ID de ta table 1 tu vas perdre toutes les informations dans TABDEUX. Les numéros vont rester dans TABDEUX mais comme ils ne correspondront plus à rien pour table 1 ...

    Maintenant si tu recrées le ID de la table 1 il se peut que ça fonctionne mais le danger est le suivant. Supposons qu'avant la manipulation la table ressemblait à cela:
    ID/Nom
    1/orange
    2/pomme
    3/banane
    Et après la manipulation la table ressemble à ceci:
    ID/Nom
    1/banane
    2/orange
    3/pomme
    Dans TABDEUX les oranges sont devenues des bananes, les pommes des oranges et les bananes des pommes.

    Si tu n'as pas de données qui dépassent l'enregistrement 99 de ta table 1 tu peux remettre le compteur à 100 en compactant ta base.

    Bonne chance
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  12. #12
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour logiclogic,

    Une autre solution est d'enlever la valeur NuméroAuto à ton champ ID dans ta table 1. Tu enregistres la table. Après enregistrement tu crées un nouveau champ (Transition) auquel tu affectes NuméroAuto. La numérotation va recommencer sans trou. Ensuite à l'aide d'une requête Mise à jour tu mets à jour les champs de ta table 2 en fonction de la valeur Transition avec comme critère Table 2.LeNomDuChamp = Table 1.ID. Cela fait tu supprimes le champ ID de la table 1 et tu renommes le champ que tu avais créer (Transition) en ID.

    Bonne chance
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    @robert1957
    non, la dernière solution a tout simplement supprimer le contenu de Table 2.LeNomDuChamp

  14. #14
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour logiclogic,

    Probablement une erreur dans ta requête mise à jour. Le principe fonctionne, j'en suis persuadé.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    effectivement, merci!
    je cherchai aussi une telle façon de faire mais j'avais peur de perdre le ID en manipulant, et je ne savais pas pour la neutralisation du NuméroAuto, donc merci

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    néanmoins, petit point : je ne suis pas passée par le ID, mais par le NOM qui était le même dans les deux tables car dans TABDEUX, le NOM était choisi dans une liste déroulante issue de TABUN.
    Le problème c'est que pour faire le changement de ID, j'ai transformé le NOM de TABDEUX en zone de texte et j'ai fait le lien entre NOM de TABUN et NOM de TABDEUX (et non entre les anciens ID), donc les noms y figurent, mais ce n'est plus une zone de liste.
    Si je remets NOM de TABDEUX en liste de choix, les NOMS ne se voient plus. Si je remets zone de texte en type, les noms reviennent.
    COmment je fais pour garder visibles les noms et transformer le type en zone de liste ???
    merci.

  17. #17
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour logiclogic,

    Tu n'as pas fait la bonne modification. Dans TABDEUX ce n'était pas les noms qui étaient enregistrés mais les ID. Ce que tu viens de faire c'est que tu as modifié la valeur "1" pour la valeur "pomme". Si tu suis pas à pas ce que je t'ai donné ça va fonctionner, si tu modifies ça ne fonctionnera pas.

    Ce qu'il faut que tu comprennes c'est que ce que tu vois à l'écran dans ton champ n'est pas réel, c'est une interprétation d'Access. Ce qui est réellement dans ton champ c'est un nombre. À partir de ce nombre et avec une relation avec la table 1 tu peux faire une liste déroulante.

    Si on veut aller plus loin, tu pourrais faire une relation avec la table 1 en conservant seulement le champ Nom. Ce faisant au lieu d'avoir une liste de choix avec 2 colonnes tu te retrouverais avec une liste de choix d'une seule colonne.

    Regarde l'exemple que je t'ai fait, remarque ce qui est inscrit dans TABLEDEUX quand tu sélectionnes selon la liste déroulante dans le formulaire. C'est ce qui se passe dans ta base.

    Bonne journée
    Fichiers attachés Fichiers attachés
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    @Robert1957 : ok, j'ai compris le principe, mais je fais comment lorsque je veux que la colonne soit triée ?

    En fait, le ORDER BY du code ci-dessous ne trie que la liste de sélection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [MATAB].[IDMATAB], [MATAB].[NOM] FROM MATAB ORDER BY [NOM];
    Je remarque que lorsque je clique sur l'en-tête de la colonne NOM pour faire ensuite le tri, dans la petite fenêtre qui apparaît, seuls "Sélectionner tout, Vides, UNNOM" apparaît, les noms des autres enregistrements de la colonne n'y figure pas! Est-ce normal ?

    merci...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Points : 46
    Points
    46
    Par défaut
    je viens de m'apercevoir que la colonne était en Texte et non en numérique, j'ai du faire cette modification moi-même à un moment donné!

    j'ai recréé tout simplement la colonne en copiant-collant

    merci;

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/05/2012, 20h24
  2. [JSP] tri sur une colonne
    Par soony dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 28/07/2005, 15h02
  3. [C#] [WinForms] Evènement sur le tri d'une colonne
    Par beway dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/03/2005, 16h43
  4. [C#] Connaitre la colonne qui est cliquée dans un ListView
    Par omlip dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/12/2004, 20h01
  5. voir comment est alimentée une vue qui est dans dba_objects
    Par meufeu dans le forum Administration
    Réponses: 15
    Dernier message: 06/10/2004, 17h27

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