Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri dans listview

8 réponses
Avatar
d.bostmambrun
Bonjour
je n'arrive pas à trier suivant une clé numérique dans un listview !
j'obtiens le tri suivant :
1 10 100 101 11 etc..
Les dates ne sont pas non plus triées dans l'ordre croissant !!!
comment faire ??
Merci

8 réponses

Avatar
Guy DETIENNE
Salut ;O)

C'est en effet un souci avec ce contrôle.

Vois ici :
http://vbnet.mvps.org/index.html?code/callback/lvsortcallback.htm

Guy


"d.bostmambrun" a écrit dans le message de
news:421259f6$0$2194$
Bonjour
je n'arrive pas à trier suivant une clé numérique dans un listview !
j'obtiens le tri suivant :
1 10 100 101 11 etc..
Les dates ne sont pas non plus triées dans l'ordre croissant !!!
comment faire ??
Merci




Avatar
3stone
Salut,

"d.bostmambrun"
| je n'arrive pas à trier suivant une clé numérique dans un listview !
| j'obtiens le tri suivant :
| 1 10 100 101 11 etc..
| Les dates ne sont pas non plus triées dans l'ordre croissant !!!
| comment faire ??


Dans les listes, il n'y a plus de numérique... tout est considéré comme texte!

Dans la requête source du listview, tu ajoute donc simplement un champ calculé
(non affiché) et qui, une fois trié en tant que texte aura le bon ordre...


Exemple pour ton numérique:

TriNum: Format(ChampNumerique;"000000000")

pour la date :

TriDate: Format(ChampDate;"aaaammjj")


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
db
OK ça marche pour le champ numérique !
Mais comment faire pour empêcher l'agrandissement de la colonne masquée (qui
devient alors visible) ?


"3stone" a écrit dans le message de news:

Salut,

"d.bostmambrun"
| je n'arrive pas à trier suivant une clé numérique dans un listview !
| j'obtiens le tri suivant :
| 1 10 100 101 11 etc..
| Les dates ne sont pas non plus triées dans l'ordre croissant !!!
| comment faire ??


Dans les listes, il n'y a plus de numérique... tout est considéré comme
texte!

Dans la requête source du listview, tu ajoute donc simplement un champ
calculé
(non affiché) et qui, une fois trié en tant que texte aura le bon ordre...


Exemple pour ton numérique:

TriNum: Format(ChampNumerique;"000000000")

pour la date :

TriDate: Format(ChampDate;"aaaammjj")


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw




Avatar
Guy DETIENNE
Salut ;O)

C'est le revère de la médaille...
La solution de 3stone n'est qu'un artifice et contourne le problème. Elle a
ses propres limites. LA solution que je te donne précédemment règle le
problème mais demande une mise en oeuvre plus lourde : on a rien sans rien !

Guy


"db" a écrit dans le message de
news:42126f9e$0$824$
OK ça marche pour le champ numérique !
Mais comment faire pour empêcher l'agrandissement de la colonne masquée
(qui

devient alors visible) ?


"3stone" a écrit dans le message de news:

Salut,

"d.bostmambrun"
| je n'arrive pas à trier suivant une clé numérique dans un listview !
| j'obtiens le tri suivant :
| 1 10 100 101 11 etc..
| Les dates ne sont pas non plus triées dans l'ordre croissant !!!
| comment faire ??


Dans les listes, il n'y a plus de numérique... tout est considéré comme
texte!

Dans la requête source du listview, tu ajoute donc simplement un champ
calculé
(non affiché) et qui, une fois trié en tant que texte aura le bon
ordre...




Exemple pour ton numérique:

TriNum: Format(ChampNumerique;"000000000")

pour la date :

TriDate: Format(ChampDate;"aaaammjj")


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw








Avatar
d.bostmambrun
N'existe-t-il pas d'autres OCX listview (même payants) possédants plus de
paramétrages que le listview Microsoft.

"Guy DETIENNE" a écrit dans le message de news:
%
Salut ;O)

C'est le revère de la médaille...
La solution de 3stone n'est qu'un artifice et contourne le problème. Elle
a
ses propres limites. LA solution que je te donne précédemment règle le
problème mais demande une mise en oeuvre plus lourde : on a rien sans rien
!

Guy


"db" a écrit dans le message de
news:42126f9e$0$824$
OK ça marche pour le champ numérique !
Mais comment faire pour empêcher l'agrandissement de la colonne masquée
(qui

devient alors visible) ?


"3stone" a écrit dans le message de news:

Salut,

"d.bostmambrun"
| je n'arrive pas à trier suivant une clé numérique dans un listview !
| j'obtiens le tri suivant :
| 1 10 100 101 11 etc..
| Les dates ne sont pas non plus triées dans l'ordre croissant !!!
| comment faire ??


Dans les listes, il n'y a plus de numérique... tout est considéré comme
texte!

Dans la requête source du listview, tu ajoute donc simplement un champ
calculé
(non affiché) et qui, une fois trié en tant que texte aura le bon
ordre...




Exemple pour ton numérique:

TriNum: Format(ChampNumerique;"000000000")

pour la date :

TriDate: Format(ChampDate;"aaaammjj")


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw












Avatar
3stone
Salut,

"db"
| OK ça marche pour le champ numérique !
| Mais comment faire pour empêcher l'agrandissement de la colonne masquée (qui
| devient alors visible) ?


Je n'ai pas dit "masqué" mais bien "non affiché" !!!

Crée ta requête et le champ calculé sur lequel tu trie
et décoche la case "Afficher"...

De cette facon, le tri sera correct et il ne sera pas question de colonne masquée!


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
3stone
Salut,

"Guy DETIENNE"
| C'est le revère de la médaille...

pas de revers...
on trie sur un champ que l'on n'affiche pas!

| La solution de 3stone n'est qu'un artifice et contourne le problème.

Pour ce genre de cas simple (simpliste?) je préfère un champ calculé
qui rempli parfaitement son rôle que de traîner du code qui démontre que
l'on peut faire tout ce que Access ne fait pas nativement...

mais les gouts et les couleurs... ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
d.bostmambrun
Il doit y voir quelque chose qui m'échappe !
Voila comment j'ai fait :
Premièrement les colonnes de mon listview sont créées par VB
(Listview.columnHeaders.add ,,,)
Deuxièmement il est rempli par un recordset :
Listview.ListItems.add()
.Text=Rst![N° Chronologique]
.SubItems(1)=Rst![Champ1]
etc...

J'ai basé ce recordset sur une requête dans laquelle il y a TriNum:
Format([N° Chronologique];"000000000")
Je ne comprends pas comment il est possible de trier suivant TriNum (en
cliquant sur les en-têtes de colonnes du listview)
si ce champ n'est pas contenu dans le listview.!!

N'existe-t-il pas d'autres OCX listview (même payants) possédants plus de
paramétrages que le listview Microsoft.

Merci d'avance.


"3stone" a écrit dans le message de news:
es%
Salut,

"db"
| OK ça marche pour le champ numérique !
| Mais comment faire pour empêcher l'agrandissement de la colonne masquée
(qui
| devient alors visible) ?


Je n'ai pas dit "masqué" mais bien "non affiché" !!!

Crée ta requête et le champ calculé sur lequel tu trie
et décoche la case "Afficher"...

De cette facon, le tri sera correct et il ne sera pas question de colonne
masquée!


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw