Tri numériques dans une requète

cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 4 déc. 2006 à 16:04
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 4 déc. 2006 à 19:15
bonjour
j'envoi des données dans une requète ACCESS,
et je voudais faire un tri numérique dans cette requète
voila un exemple qui est dans ma requète :
a=6
b=2
c=3
d=7
et voila se que je voudrais si c'est faisable
d=7
a=6
c=3
d=2
en fait les chiffres ne sont que des exemples,car ils evoluront
au fur et mesure.
mais c'est surtout le tri qui m'intéresse
merci
@ plus
petchy

2 réponses

Fianchetto Messages postés 41 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 14 décembre 2006
4 déc. 2006 à 17:57
si le champs qui t'interesse est "MonChampNumérique", alors dans ta requete il te faudra mettre à la fin :
SELECT ...
FROM ...
WHERE ...
ORDER BY "MonChampNumérique" DESC.

D'ailleurs j'imagine que le sujet sera mieux sur sql.fr .
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
4 déc. 2006 à 19:15
 Bonsoir à tous,

J'utilise un dictionary, mais on peut aussi utiliser un array, pour passer les variables.

Dim oDico, k  
Set oDico = CreateObject("Scripting.Dictionary")
oDico.Add k, "a=6" :  k = k + 1
oDico.Add k, "b=2" :  k = k + 1
oDico.Add k, "c=3" :  k = k + 1
oDico.Add k, "d=7" :  k = k + 1



bpermute = True               'Il faut au moins parcourir une fois
Do While bpermute = True      'On tourne tant que l'on bouge des valeurs                  
   bpermute = False           
   For i = oDico.Count To 1 Step -1
       If Len(oDico(i)) > 1 Then
          For j = 0 To i - 1
              If Len(oDico(j)) > 1 Then
                 If Split(oDico(j), "=")(1) > Split(oDico(j + 1), "=")(1) Then
                    cprovisoire = oDico(j)        'On inverse les deux chaines
                    oDico(j) = oDico(j + 1)       'bis
                    oDico(j + 1) = cprovisoire    'bis
                    bpermute = True
                 End If
              End If
          Next
       End If
   Next 
Loop
 
Dim liste
For i = 0 To oDico.Count
    If Len(oDico(i)) > 1 Then liste = oDico(i) &vbCrLf& liste
Next
MsgBox liste



jean-marc
0
Rejoignez-nous