Requette de tri des nombres de version

Signaler
Messages postés
5
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
30 mars 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Est-ce que vous avez une idée sur la requête qui permet de faire le tri des nombres de version (1 , 1.1 , 1.2, 1.3 ….1.10, 1.11 ,2, 2.1….) car avec Order By le tri sera comme suit (1, 1.1, 1.10, 1.11, 1.12, …1.2,1.3…) .

NB: La solution 1; 1.01; 1.02, je la connait etne résolue pas mon problème

Merci

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
Confronté à la même question il y a quelques années, j'ai utilisé cette technique :
Les versions étant du type X.YY.ZZ et YY ou ZZ ne dépassant jamais 999, je me suis fait une routine qui convertit la version "1.2.192" (cahine) en "1002192" (long)
Ensuite, la comparaison est facilitée.

A placer dans un modeule, par exemple :
   Public Function ConvertiVersion(ByVal sVersion As String) As Long
       ' Transforme la chaine Version 1.2.192
       '                           en 1002192
       ' plus facile pour comparaison
       Dim aTemp() As String
       ' Ajoute des numéros de version à la suite, au cas où la chaine
       '   fournie en manquerait
       sVersion = sVersion & ".0.0"
       aTemp = Split(sVersion, ".")
       ConvertiVersion = CLng(aTemp(0)) * 1000000 + _
                         CLng(aTemp(1)) * 1000 + _
                         CLng(aTemp(2)) * 1
   End Function

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés


<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Mais y-a pas d'quoi !