cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 2015
-
4 déc. 2006 à 16:04
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 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
Fianchetto
Messages postés41Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention14 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 .
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 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