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 :

Trier un champ qui contient une numérotation avec chiffres et lettres


Sujet :

Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Trier un champ qui contient une numérotation avec chiffres et lettres
    Bonjour,
    je suis nouvelle sur ce forum et plutôt novice dans Access.

    Je suis entrain de monter une BD pour les dossiers administratifs du bureau et nous avons déjà en place un système de classement de document qui va de 1 à 10 ensuite de T1 à T20 avec des sous-dossiers numéroté comme suit: 1.1 , 1.2 1.3 ...etc. jusqu'à T20.1.1 , T20.1.2 ...etc.

    Notre classement est conçu en arborescence CAD le 1 contient le 1.1 et le 1.1 contient le 1.1.1 ...

    Tout fonctionne plutôt bien, excepté le tri des numéro de dossiers ne se fait pas sur la base numérique mais sur la base de texte, vue que certains codes contiennent des "T" comme "T3.3.2". alors le tri se fait comme ceci: ...1.8, 1.9, 10.1, 10.2, 10.3, 2.1, 2.2,...
    y a-t-il un moyen de le forcer a trier sur la base numérique sans perdre la possibilité d'avoir un T près de certains codes?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,

    Je ne pense pas qu'on puisse forcer, sauf, mettre les T à la fin du code "3.3.2T".

    Sinon, solution que j'utilise,ajouter un numéro d'ordre à la table pour forcer comme tu dis (ou créer une table d'ordre des codes) :

    N°Ordre ---CodeDossier
    1 1
    2 1.1
    3 2
    .....................
    50 T6.2

    Que tu utilises lors de tes présentations ou classement.

    Bonne continuation

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Avec un peu de VBA tu peux y arriver.

    Code VBA à mettre dans un module :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function titre1(val As String) As String
        ValTitre = Split(val, ".")
        titre1 = ValTitre(0)
    End Function
    Function titre2(val As String) As String
        ValTitre = Split(val, ".")
        titre2 = 0
        If UBound(ValTitre) > 0 Then titre2 = ValTitre(1)
    End Function
    Function titre3(val As String) As String
        ValTitre = Split(val, ".")
        titre3 = 0
        If UBound(ValTitre) > 1 Then titre3 = ValTitre(2)
    End Function

    Ensuite le code pour la requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_TABLE.Val
    FROM T_TABLE
    ORDER BY titre1([t_table]![val]), titre2([t_table]![val]), titre3([t_table]![val]);

    @+.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2013
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Merci madefemere et zoom61 pour vos réponses,

    je vais essayer vos solutions et voir ce que ça donne.

    @zoom61 je ne comprend pas bien le VBA (je le baraguine un peu que represente le "titre1" "titre 2"? est ce que ça represente mes champs de codes?

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Le code VBA va permettre de décomposer par exemple 11.22.33, titre1 va te donner 11, titre2 va te donner 22 et titre3 va te donner 33.
    Mais ces fonctions sont utilisées dans la requête dans le ordre by.

    @+.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/10/2013, 12h31
  2. champ qui contient le résultat d'une requête
    Par sam01 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/10/2012, 18h14
  3. Réponses: 4
    Dernier message: 07/09/2010, 10h12
  4. Réponses: 4
    Dernier message: 11/12/2009, 16h50
  5. Réponses: 4
    Dernier message: 16/04/2007, 00h25

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