Access VB - Commande pour trier

Résolu
orderby -  
 Immalie -
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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   19
 
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 27113 Date d'inscription   Statut Modérateur Dernière intervention   3 359 > orderby Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   19 > blux Messages postés 27113 Date d'inscription   Statut Modérateur Dernière intervention  
 
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
Immalie
 
Merci beaucoup Blux, effectivement c'est une solution idéal !!
0
Jean_Jacques Messages postés 1040 Date d'inscription   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   19
 
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