Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Recherche



Je débute...

Fermer La normalisation

Fermer VBA

Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Visites

   visiteurs

   visiteurs en ligne

Divers ;-)
Nous contacter
Forum - Questions générale - Sujet n°774

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par 3Stone le 26/10/2016 : 02:22  Sujet n° 774  Dans un état, imposer un tri par VBA

le 17/10/2016 : 20:17
par possible924

Anonyme

visiteur

Bonjour à tous,
Dans un état, l'ordre de tri n'est pas celui de la requête sous jacente, mais celui imposé dans la fenêtre "Trier et grouper".
Je souhaiterais pouvoir imposer l'ordre de tri par VBA, mais je n'ai aucune idée de la façon de procéder.
Merci par avance pour votre aide
Pierre

 sujet clos  Haut
Réponse n° 1
--------
le 17/10/2016 : 23:59
par 3Stone

3Stone

Administrateur

Bonjour,
 
Citation :

Dans un état, l'ordre de tri n'est pas celui de la requête sous jacente, mais celui imposé dans la fenêtre "Trier et grouper".

 
Oui, et c'est normal... inutile d'ajouter un tri à la requête.

 
Citation :

Je souhaiterais pouvoir imposer l'ordre de tri par VBA

 
Le plus simple est de créer des copies de l'état qui va bien et de configurer dans chacun le tri que tu souhaite.
Un état ne contient pas de données et est donc plutôt "léger".

Cordialement,
Pierre (3Stone)
  clos par 3Stone le 26/10/2016 : 02:22  Haut
Réponse n° 2
--------
le 18/10/2016 : 08:06
par possible924

Anonyme

visiteur
Merci pour la réponse.
Cette nuit en réfléchissant au problème, j'ai trouvé une réponse qui marche très bien.
Sur un formulaire, j'ai deux boutons, l'un pour ouvrir l'état en tri alpha sur le nom de l'usager, l'autre en tri numéro de son dossier. Je défini avant l'ouverture la valeur de la variable AlphaNum en 0 ou -1 et à l'ouverture de l'état, le code suivant s'exécute :

Private Sub EntêteÉtat_Format(Cancel As Integer, FormatCount As Integer)
If AlphaNum = False Then
Me.Titre = "Liste des usagers ordonnancement alphabétique"
Else
Me.Titre = "Liste des usagers ordonnancement numérique"
End If
End Sub

Private Sub Report_Load()
If AlphaNum = False Then
Me.OrderBy = "Usager_Nom, Usager_Prénom"
Me.OrderByOn = True
Else
Me.OrderBy = "CléP_Usager"
Me.OrderByOn = True
End If
End Sub

Cher 3Stone, je te souhaite une très belle journée
Pierre
  clos par 3Stone le 26/10/2016 : 02:22  Haut
Réponse n° 3
--------
le 18/10/2016 : 13:26
par 3Stone

3Stone

Administrateur

Bonjour,

Je n'avais pas pensé à cela lorsque j'avais lu "trier par VBA" k

Étant donné que l'on peu même créer un état complet par VBA, comme expliqué par exemple ici.

Ceci dit, l'usage de l'utilisation de variable globale est à éviter...
Une solution plus sûre est d'écrire la valeur dans une zone de texte cachée) et de la lire a partir de l'état.

Cordialement,
Pierre (3Stone)
  clos par 3Stone le 26/10/2016 : 02:22  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut