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 :

Classer un champ type texte par ordre numérique


Sujet :

Access

  1. #1
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut Classer un champ type texte par ordre numérique
    Bonjour,

    voilà mon problème est simple, mais je pense qu'il ne peut pas y avoir de solution .... j'essaye quand même ...

    J'ai un champ de type "Texte" mais qui représente une référence du style : "D31" ou "V45"

    quand je veux classer ce champ par ordre croissant, Access me fait ça :
    - D1
    - D10
    - D100
    - D2
    - D20

    Je sais que ça viens du fait que mon champ est de type texte ... mais j'aimerai quand même essayer de classer ces références comme ceci :

    - D1
    - D2
    - D3
    - D4
    ....
    - D10
    par ordre numérique ...

    A mon avis c'est impossible mais je tente ma chance !! si quelqu'un a une idée !

  2. #2
    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,

    je veux classer ce champ par ordre croissant
    Le classer où, avec quoi ?

  3. #3
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    Avec un Order by dans une requête

  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    je pense que cela est impossible dans une requête il faudrait le faire dans du code et donc tester tous les cas de nombre possible ca serait possible mais galère donc essai de voir si tu en a réelement besoin.

  5. #5
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    EEEEEHHHH OOOUUUIII !!
    en avoir réellement besoin ou ne pas en avoir besoin telle est la question !

    Le problème c'est que le logiciel n'est pas pour moi mais pour une entreprise ... je sens le coup venir du chef qui va me dire : " Eh! ces références ne sont pas classées comme dans mon tableau Excel ! je savais bien qu'il ne fallait pas évoluer ! j'aurai dû garder mes fichiers Excel qui débordent de partout ! "

    Merci quand même pour les réponses !! je ne pense pas que je vais m'embêter à faire du code ... je vais laisser comme ça, on verra ..

    Je laisse le sujet ouvert AU CAS OU !!

  6. #6
    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,

    Si tu as toujours une seule lettre au début essaye de décomposer le tri :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Order by Left(Ref,1), Val(Mid(Ref,2))
    D'abord on trie sur la lettre du début, et ensuite sur le chiffre qui suit.
    Val renvoit un double donc ça devrait trier dans le bon ordre.

  7. #7
    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
    je commence par créer deux fonctions
    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
    17
    18
    19
    20
    21
    22
    23
    24
     
    Function lett(mach As String) As String
    Dim tempo As Variant
    Dim maboucle As Integer
    For maboucle = 1 To Len(mach)
    If Not IsNumeric(Mid(mach, maboucle, 1)) Then
    tempo = tempo & Mid(mach, maboucle, 1)
    Else
    lett = tempo
    Exit Function
    End If
    Next maboucle
    End Function
     
    Function chiff(mach As String) As Long
    Dim tempo As Variant
    Dim maboucle As Integer
    For maboucle = 1 To Len(mach)
    If IsNumeric(Mid(mach, maboucle, 1)) Then
    tempo = tempo & Mid(mach, maboucle, 1)
    End If
    Next maboucle
    chiff = CLng(tempo)
    End Function
    si on sait jouer aux chiffres et aux lettres c'est du gâteau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT mavaleur, lett([mavaleur]) AS tri1, 
    chiff([mavaleur]) AS tri2
    FROM matable
    ORDER BY lett([mavaleur]), chiff([mavaleur]);

  8. #8
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    Si tu as toujours une seule lettre au début essaye de décomposer le tri :

    Code :
    Order by Left(Ref,1), Val(Mid(Ref,2))D'abord on trie sur la lettre du début, et ensuite sur le chiffre qui suit.
    Val renvoit un double donc ça devrait trier dans le bon ordre.

    OOOHHH !! MERCI MERCI !!!

    T'es trop balèze !!

    ça marche NICKEL !!

    Grâce à toi peut-être je vais avoir une promotion !! ou peut-être pas !!

    Merci et à bientôt !

  9. #9
    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
    pardon arkham je n'avais pas vu ta réponse

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/08/2012, 10h33
  2. transmettre le contenu d'un champs de texte par URL
    Par etincelle01 dans le forum Langage
    Réponses: 14
    Dernier message: 29/05/2010, 23h56
  3. Trier un champ VARCHAR par ordre numérique
    Par boteha dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/12/2007, 15h30
  4. action reaction avec champs type="text"
    Par ericmart dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/04/2005, 17h00
  5. [access] champs type text sur un pc blob sur un autre
    Par Harry dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/07/2004, 09h30

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