Access VB - Commande pour trier

Résolu/Fermé
orderby - 5 mai 2009 à 21:36
 Immalie - 19 mai 2011 à 10:38
Bonjour,
Dans un formulaire, je voudrais placer un bouton activant un tri (sur plusieurs champs).
Qui peut me donner les instructions à écrire ??
d'avance merci

2 réponses

Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
6 mai 2009 à 08:18
Bonjour Orderby,

Voici une solution. Il en est de plus élégantes, mais ça fonctionne....
- Au préalable, il convient de créer une requête satisfaisant le résultat escompté. Elle sera lancée à chaque fois que le bouton sera actionné :


Sur clic

Dim DocName As String
DocName = "<Nom_du_formulaire>"

DoCmd.OpenForm DocName, acNormal, "<Nom_de_la_requete>"

end sub

Cordialement
1
orderby Messages postés 19 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 4 février 2014 19
6 mai 2009 à 09:44
Oui, j'ai bien pensé à cette solution mais je vais vous expliquer la situation complètement.
L'utilisateur ouvre un formulaire dans lequel j'ai inclus une sélection et un tri (cdes SQL en 3ième paramètre de DoCmd.OpenForm). Ce tri étant fait sur un champ masqué.
L'utilisateur a ensuite la possibilité de continuer la sélection et de modifier ce tri en utilisant les boutons de tri A-Z et Z-A.
Ce que me demande l'utilisateur est de revenir au tri du début sans changer les conditions de sélection.
La solution que j'ai trouvé pour le moment est d'afficher le champ avec texte et fond de la même couleur et d'une petite largeur.
L'utilisateur doit donc positionner le curseur sur ce champ puis activer le bouton de tri standard.
Je voudrais que sur le clic de ce champ je puisse programmer la même fonctionnalité que ce bouton standard.

Un peu long comme explication, mais j'espère que vous avez compris
Cordialement
0
blux Messages postés 26310 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 septembre 2024 3 300 > orderby Messages postés 19 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 4 février 2014
6 mai 2009 à 11:39
Salut,

le troisième paramètre de openform est le nom d'un filtre/requête, pas un ordre de tri.

Mais on peut créer un bouton avec un peu de code qui indique l'ordre de tri à appliquer sur un formulaire avec le code suivant :

Forms("nom_form").OrderByOn = True
Forms("nom_form").OrderBy = "champ1 champ2... ASC"
Forms("nom_form").Recalc

Ou alors réappliquer le filtre d'origine avec Forms("nom_form").FilterBy = "nom_du_filtre", qui devrait être le fameux troisième paramètre de l'ouverture
0
orderby Messages postés 19 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 4 février 2014 19 > blux Messages postés 26310 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 septembre 2024
6 mai 2009 à 11:52
Un grand merci à vous Blux, votre réponse fonctionne super.
C'était donc bien cette commande "order by" que je devais utiliser et que je n'arrivais pas à écrire correctement.
Ah ces syntaxes que de soucis elle nous donne
Bisous à vous tous
0
Merci beaucoup Blux, effectivement c'est une solution idéal !!
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
6 mai 2009 à 10:07
Orderby,

Désolé, je ne sais pas faire.

Mais peut-être qu'un filtre serait approprié ?
Ci-après un copié/collé d'un exemple de filtre prélevé sur : Développez.com
Je vous laisse expérimenter, mais je ne maîtrise pas ...


Me.Filter = "DateLimite = Date() or Datelimite >Date() and Statut = 'En cours' or Statut = 'Partiel' or Datelimite <date() and Statut ='Gestion'"
Me.FilterOn = True 'Applique le filtre

Cordialement
0
orderby Messages postés 19 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 4 février 2014 19
6 mai 2009 à 10:50
Merci pour votre aide.
Ce n'est pas la solution que je recherche mais votre réponse m'a permis de connaitre le site "developpez.com".
Cordialement
0