OVH Cloud OVH Cloud

Filtre et formulaire

4 réponses
Avatar
Luc de Kin
Bonjour,

Comment faire simple pour filtrer un formulaire en mode continu (colonnes)
en cliquant sur le titre de la colonne "a la maniere d'Outlook" ?

Merci et bonne journee a tous...

Luc

4 réponses

Avatar
Luc de Kin
Sorry,

ce n'est PAS UN FILTRE que je vex mais bien un TRI ALPHABETIQUE descendant
ou ascendant suivant un premier ou un deuxieme clic !

Merci...


Bonjour,

Comment faire simple pour filtrer un formulaire en mode continu (colonnes)
en cliquant sur le titre de la colonne "a la maniere d'Outlook" ?

Merci et bonne journee a tous...

Luc




Avatar
Eric
Bonjour,

J'avais fait un truc comme ça:

1 - Pour chaque étiquette des colonnes, définir la propriété Tag
(Remarque) avec le nom du champ.

2 - Déclarer une variable booléenne en tête de module sous option
Compare database et option explicit
Dim ordre As Boolean

3 - Sur l'évènement click de chaque étiquette :

Private Sub LeChamp_Étiquette_Click()
Call tri(LeChamp_Étiquette.Tag, ordre)
ordre = Not ordre
End Sub

4 - La procédure suivante dans le même module:

Sub tri(NomChamp As String, btype As Boolean)
Static AncienChamp As String
' si on ne vient pas ici en cliquant 2 fois sur la ême étiquette
If AncienChamp <> NomChamp Then ordre = True
Me.OrderBy = Me.Controls(NomChamp).Name & IIf(ordre, " ASC", " DESC")
Me.OrderByOn = True
AncienChamp = NomChamp ' stocke d'où on vient pour le tri
End Sub



Sorry,

ce n'est PAS UN FILTRE que je vex mais bien un TRI ALPHABETIQUE descendant
ou ascendant suivant un premier ou un deuxieme clic !

Merci...



Bonjour,

Comment faire simple pour filtrer un formulaire en mode continu (colonnes)
en cliquant sur le titre de la colonne "a la maniere d'Outlook" ?

Merci et bonne journee a tous...

Luc





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Eric
.../...
OOOPs ! Quelques erreurs.Dans la procédure Tri(...)
remplaces ordre par btype mais je pense que tu aurais rectifié de toi même.
D'autre part, je pense qu'on peut se passer de btype ce qui donnerait en
plus simple:

Private Sub LeChamp_Étiquette_Click()
Call tri(LeChamp_Étiquette.Tag)
ordre = Not ordre
End Sub

et

Sub tri(NomChamp As String)
Static AncienChamp As String
' si on ne vient pas ici en cliquant 2 fois sur la ême étiquette
If AncienChamp <> NomChamp Then ordre = True
Me.OrderBy = Me.Controls(NomChamp).Name & IIf(ordre, " ASC", " DESC")
Me.OrderByOn = True
AncienChamp = NomChamp ' stocke d'où on vient pour le tri
End Sub

le reste inchangé.



4 - La procédure suivante dans le même module:

Sub tri(NomChamp As String, btype As Boolean)
Static AncienChamp As String
' si on ne vient pas ici en cliquant 2 fois sur la ême étiquette
If AncienChamp <> NomChamp Then ordre = True
Me.OrderBy = Me.Controls(NomChamp).Name & IIf(ordre, " ASC", " DESC")
Me.OrderByOn = True
AncienChamp = NomChamp ' stocke d'où on vient pour le tri
End Sub




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Luc de Kin
Ce ne sera plus aujourd'hui mais on essaye demain...
Ca a l'air astucieux !

Merci,

L.



..../...
OOOPs ! Quelques erreurs.Dans la procédure Tri(...)
remplaces ordre par btype mais je pense que tu aurais rectifié de toi même.
D'autre part, je pense qu'on peut se passer de btype ce qui donnerait en
plus simple:

Private Sub LeChamp_Étiquette_Click()
Call tri(LeChamp_Étiquette.Tag)
ordre = Not ordre
End Sub

et

Sub tri(NomChamp As String)
Static AncienChamp As String
' si on ne vient pas ici en cliquant 2 fois sur la ême étiquette
If AncienChamp <> NomChamp Then ordre = True
Me.OrderBy = Me.Controls(NomChamp).Name & IIf(ordre, " ASC", " DESC")
Me.OrderByOn = True
AncienChamp = NomChamp ' stocke d'où on vient pour le tri
End Sub

le reste inchangé.



4 - La procédure suivante dans le même module:

Sub tri(NomChamp As String, btype As Boolean)
Static AncienChamp As String
' si on ne vient pas ici en cliquant 2 fois sur la ême étiquette
If AncienChamp <> NomChamp Then ordre = True
Me.OrderBy = Me.Controls(NomChamp).Name & IIf(ordre, " ASC", " DESC")
Me.OrderByOn = True
AncienChamp = NomChamp ' stocke d'où on vient pour le tri
End Sub




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr