Salut Sandra,
Je vois très bien ce que tu veux faire.
A première vue, Access ne t'offre aucune propriété qui te permettrait de faire ce que tu veux.
Néanmoins, tu peux utiliser un subterfuge qui fonctionne parfaitement.
- Tu crées un bouton par colonne situé juste au dessus de ta zone de liste. Tu n'as donc plus besoin de faire apparaitre les en-têtes.
Le caption de chaque bouton sera le nom de la colonne situé juste en dessous.
- dans l'évènement 'clic' de chaque bouton tu mets nomdeliste.rowsource = "ta_requête_SQL ORDER BY ton_champs ASC "
Tu peux pomper l'instruction SQL de ta requête en allant dans les propriétés de ta zone de liste, dans l'onglet 'Données' et tu fais un copier de la sélection de la zone 'Contenu'
ATTENTION : N'oublie surtout pas les ' avant et après ta requête SQL et supprime le ';' à la fin.
Je te laisse réfléchir sur la façon de procéder pour inverser le tri (ASC ou DESC). Exemple lorsque tu cliques sur le bouton une première fois il fait un tri ASC et la deuxième un tri DESC. On peut envisager de stocker le tri actuel dans une variable ou un champ masqué par exemple.
Voici un exemple d'évènement click :
Private Sub bouton_Click()
ZoneListe.RowSource = "SELECT [T_Production].[NumDevis], [T_Site].[NomSite] " & _
"FROM T_Production " & _
"INNER JOIN T_Site ON [T_Production].[NomSite]=[T_Site].[NumAutoSite] " & _
"ORDER BY [T_Production].[NumDevis] DESC"
End Sub
Voilà, j'espère avoir pu t'apporter mon aide. Bon Dév.
Lionel
Message édité par yoyogott le 14-04-2005 à 18:16:39