Tri Table Access via VB6 avec fonction SORT

laurent92370 Messages postés 70 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 20 mars 2007 - 28 août 2006 à 21:25
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 29 août 2006 à 01:20
Bonsoir

N'ayant pas réussi à trouver ce que je cherche, je vous pose donc ma problématique :

comment, via VB6, trier une table access (ordre croissant ou décroissant) sur un ou plusieurs champs de la table.

Un exemple de code serait le bienvenu.

Merci bcp !

11 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 août 2006 à 22:46
Bonsoir,

Décroissant
"SELECT MATABLE.chp1, MATABLE.chp2, MATABLE.chp3" _
& " FROM MATABLE ORDER BY MATABLE.chp1 DESC ," _ 
& " MATABLE.chp2 DESC , & " MATABLE.chp3 DESC;"

Pour croissant tu mets juste ORDRE BY .
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 août 2006 à 22:47
Pardon !
Rectifies :
& " MATABLE.chp2 DESC , MATABLE.chp3 DESC;"
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 août 2006 à 22:54
Pour être plus clair avec le tri croissant
"SELECT MATABLE.chp1, MATABLE.chp2, MATABLE.chp3" _
& " FROM MATABLE ORDER BY MATABLE.chp1," _ 
& " MATABLE.chp2 ,  MATABLE.chp3 ;"

Et je pense que tu peux combiner les deux.
J' ai jamais essayé, mais je crois que c' est possible.
Quoi qu' il en soit; essaies pour voir.

A+
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 août 2006 à 23:05
salut,
croissant par défaut -> ASC
décroissant -> DESC

jamais essayé avec plusieurs champs (et j'ai un doute)
++

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 août 2006 à 23:14
bONSOIR pcpt?
En fait c' est par défaut croissant.
Donc c' est pas la peine d' ajouter ASC.
C' est pourquoi je lui ai dit
Pour croissant tu mets juste ORDRE BY chp1, chp2, chp3
En plus je crois que ASC est yne fonction qui convertit en Ascii.
Mais moi ce que je n' ai pas essayé c' est
ORDRE BY chp1 DESC, chp2, chp3 DESC

A+
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 août 2006 à 23:16
décroissant -> DESC
ça marche avec plusieurs c' est sûr !

Eh !
tu as vu le bonsoir PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 août 2006 à 23:39
bonsoir chaibat05

par défaut en croissant, ce qui n'empêche pas d'informer de la syntaxe qui est ASC

ensuite ASC est aussi une fonction VB mais à part le nom, elle n'a rien à voir avec la commande SQL.
de plus elle ne convertie pas en ASCII mais retourne le code ASCII d'un Char

enfin tant qu'on est est... autant essayer.
donc en direct :

(testé manuellement dans access2000)
SELECT produit.nom, produit.prix, produit.etat
FROM produit
WHERE (((produit.nom)<>"N / A"))
ORDER BY produit.nom ASC, produit.prix DESC;

ma table est un peu bizarre donc pas facile de dire si le résultat est bon, mais la syntaxe est reconnue

++
PCPT   [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 août 2006 à 23:42
(désolé pour les fautes )
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
28 août 2006 à 23:56
Tu veux rire avec ton désolé !
Tu pourras commettre autant de fautes
que tu veux mais tu n' en commetteras pas autant que moi

En fait , pour la requête, on n' a tout les deux raison sauf que

SELECT produit.nom, produit.prix, produit.etat
FROM produit
WHERE (((produit.nom)<>"N / A"))
ORDER BY produit.nom ASC, produit.prix DESC;

Essaies de créer la même requête manuellement dans Access,
choisis Croissant pour produit.nom et Decroissant pour produit.prix
 et cliques sur "Mode SQL", tu verras qu' il supprime le ASC et met juste
ORDER BY produit.nom , produit.prix DESC.

Pour :
^^de plus elle ne convertie pas en ASCII mais retourne le code ASCII d'un Char
 Quelle est la différence entre convertit en Ascii et retourne le code ASCII  ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 août 2006 à 00:26
dur dur !
j 'ai mis ASC pour préciser. mais j'ai indiqué (à 2 reprises) que c'était par défaut.
qui dit "par défaut" dit "argument facultatif"
ps: j 'étais en Mode SQL pour saisir ;)

convertir...
en exemple on peut considérer que le jus d'orange est la conversion de l'orange après avoir été pressée. pas facile de l'éplucher après....

là, ASC laisse intacte la variable.
exemple...
STR retourne une string
CSTR convertit en string

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
29 août 2006 à 01:20
^^dur dur !
T' as rien vu encore

J' ai crée manuellement ...une requête.
//Mode SQL
   Il m' affiche
SELECT JOURNEES.Jour, JOURNEES.Mois
FROM JOURNEES
ORDER BY JOURNEES.Jour ASC, JOURNEES.Mois DESC;
J' ai fermé
J' ai réouvert
//Mode SQL
Il m' affiche
SELECT JOURNEES.Jour, JOURNEES.Mois
FROM JOURNEES
ORDER BY JOURNEES.Jour , JOURNEES.Mois DESC;

je suis d' accord il n' y a pas d' erreur quand on rajoute ASC.
C' est pour ça que j' ai dit qu' on est tout les deux dans "le vrai" .

Quand à ton jus d' orange, il ne m' as pas entièrement convaincu
même s' il est délicieux .
Disant que CSTR Convertit tout en retournant . Vu que c' est une fonction.
Comme ça on aura coupé la poire en deux

PS:
Laurent va prendre peur quand il verra
le nombre de réponses .
Si ça se trouve, c' est pas ça la question !


Désolé Lurent d' avoir pollué ton Topic.
0
Rejoignez-nous