Récupérer le nombre d'enregistrements filtrés dans un formulaire
2 réponses
Tonio
Bonjour,
Lorsque j'applique un filtre dans un formulaire en mode "Feuille de
données", j'aimerai récupérer, en VBA, le nombre d'enregistrements filtrés
afin de l'insérer dans un zone de texte ou une étiquette.
Est-ce possible sans rejouer la requête (c'est-à-dire sans ouvrir un
Recordset avec le filtre, parcourir tous les enregistrements, puis récupérer
la propriété Recordset, ce qui est un peu lourd niveau code) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour,
A l'aide de la propriété RecordCount.
Par exemple comme ceci, le filtre étant juste pour l'exemple: A partir d'un formulaire appelant celui à filtrer via la clause Where: Private Sub Commande0_Click() DoCmd.OpenForm "FormulaireFiltré", acFormDS, , "Question like '[A-C]*'" MsgBox Forms("FormulaireFiltré").Recordset.RecordCount End Sub
ou sur ouverture du dit formulaire qui est filtré: Private Sub Form_Open(Cancel As Integer) Me.Filter = "Question like '[A-C]*'" Me.FilterOn = True MsgBox Me.Recordset.RecordCount End Sub
Bonjour,
Lorsque j'applique un filtre dans un formulaire en mode "Feuille de données", j'aimerai récupérer, en VBA, le nombre d'enregistrements filtrés afin de l'insérer dans un zone de texte ou une étiquette.
Est-ce possible sans rejouer la requête (c'est-à-dire sans ouvrir un Recordset avec le filtre, parcourir tous les enregistrements, puis récupérer la propriété Recordset, ce qui est un peu lourd niveau code) ?
Merci d'avance
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
A l'aide de la propriété RecordCount.
Par exemple comme ceci, le filtre étant juste pour l'exemple:
A partir d'un formulaire appelant celui à filtrer via la clause Where:
Private Sub Commande0_Click()
DoCmd.OpenForm "FormulaireFiltré", acFormDS, , "Question like '[A-C]*'"
MsgBox Forms("FormulaireFiltré").Recordset.RecordCount
End Sub
ou sur ouverture du dit formulaire qui est filtré:
Private Sub Form_Open(Cancel As Integer)
Me.Filter = "Question like '[A-C]*'"
Me.FilterOn = True
MsgBox Me.Recordset.RecordCount
End Sub
Bonjour,
Lorsque j'applique un filtre dans un formulaire en mode "Feuille de
données", j'aimerai récupérer, en VBA, le nombre d'enregistrements filtrés
afin de l'insérer dans un zone de texte ou une étiquette.
Est-ce possible sans rejouer la requête (c'est-à-dire sans ouvrir un
Recordset avec le filtre, parcourir tous les enregistrements, puis récupérer
la propriété Recordset, ce qui est un peu lourd niveau code) ?
Merci d'avance
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Par exemple comme ceci, le filtre étant juste pour l'exemple: A partir d'un formulaire appelant celui à filtrer via la clause Where: Private Sub Commande0_Click() DoCmd.OpenForm "FormulaireFiltré", acFormDS, , "Question like '[A-C]*'" MsgBox Forms("FormulaireFiltré").Recordset.RecordCount End Sub
ou sur ouverture du dit formulaire qui est filtré: Private Sub Form_Open(Cancel As Integer) Me.Filter = "Question like '[A-C]*'" Me.FilterOn = True MsgBox Me.Recordset.RecordCount End Sub
Bonjour,
Lorsque j'applique un filtre dans un formulaire en mode "Feuille de données", j'aimerai récupérer, en VBA, le nombre d'enregistrements filtrés afin de l'insérer dans un zone de texte ou une étiquette.
Est-ce possible sans rejouer la requête (c'est-à-dire sans ouvrir un Recordset avec le filtre, parcourir tous les enregistrements, puis récupérer la propriété Recordset, ce qui est un peu lourd niveau code) ?
Merci d'avance
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Tonio
Merci (et désolé pour le retard) !
Mais le problème est en fait un peu plus complexe...
Il faudrait que, lorsque l'on fait Bouton droit > Filtrer par sélection, le nombre d'enregistrements affiché soit modifié en conséquence. Il y a bien une propriété Form_ApplyFilter, mais je ne peux pas récupérer la propriété RecordCount, car celle-ci fait référence au Recordset avant application du filtre !
L'autre difficulté est que, quand on supprime le filtre (Bouton droit > Afficher tous les enregistrements), je ne trouve pas d'événement associé. Impossible de mettre à jour le nombre d'enregistrements dans ce cas...
Merci (et désolé pour le retard) !
Mais le problème est en fait un peu plus complexe...
Il faudrait que, lorsque l'on fait Bouton droit > Filtrer par sélection, le
nombre d'enregistrements affiché soit modifié en conséquence. Il y a bien une
propriété Form_ApplyFilter, mais je ne peux pas récupérer la propriété
RecordCount, car celle-ci fait référence au Recordset avant application du
filtre !
L'autre difficulté est que, quand on supprime le filtre (Bouton droit >
Afficher tous les enregistrements), je ne trouve pas d'événement associé.
Impossible de mettre à jour le nombre d'enregistrements dans ce cas...
Mais le problème est en fait un peu plus complexe...
Il faudrait que, lorsque l'on fait Bouton droit > Filtrer par sélection, le nombre d'enregistrements affiché soit modifié en conséquence. Il y a bien une propriété Form_ApplyFilter, mais je ne peux pas récupérer la propriété RecordCount, car celle-ci fait référence au Recordset avant application du filtre !
L'autre difficulté est que, quand on supprime le filtre (Bouton droit > Afficher tous les enregistrements), je ne trouve pas d'événement associé. Impossible de mettre à jour le nombre d'enregistrements dans ce cas...