Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer un recordset d'un formulaire filtré

2 réponses
Avatar
Pogo
Access 2003 / windows XP


bonjour,

Set X=3Dme.recordset, permet de r=E9cup=E9rer le recordset d'un formulaire.
si le formulaire est filtr=E9, me.recordset ne prend pas en compte le
resultat du filtre et renvoie l'int=E9gralit=E9 des enregistrement.
Comment r=E9cup=E9rer le recordset qui correspond aux donn=E9es filtr=E9es
dans un formulaire

D'avance merci

2 réponses

Avatar
Argyronet
Bonjour,

Vous pouvez appeler la propriété Filter :
Ex : MsgBox Me.Filter

Et si votre filtre est une requête constante au niveau de son nom mais
varia,te au niveau de sa propriété sql (Si peu que vous la fassiez évoluer
via un QueryDef) vous pouvez utiliser une fonction générique :

Private Function GetCurrentFilter(ByVal QueryName As String)
Dim oFilterQuery As QueryDef
On Error Resume Next
Set oFilterQuery = CurrentDb.QueryDefs(QueryName)
GetCurrentFilter = oFilterQuery.SQL
Set oFilterQuery = Nothing
End Function

--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)



"Pogo" a écrit :

Access 2003 / windows XP


bonjour,

Set X=me.recordset, permet de récupérer le recordset d'un formulaire.
si le formulaire est filtré, me.recordset ne prend pas en compte le
resultat du filtre et renvoie l'intégralité des enregistrement.
Comment récupérer le recordset qui correspond aux données filtrées
dans un formulaire

D'avance merci




Avatar
Pogo
bonjour,

Merci pour votre réponse.
J'ai bricolé une fonction similaire. ma fonction est un peu
compliquée car je filtre avec des listes déroulantes contenant des
clés masquées, ce qui génerent des filtres "lookup_fields" que n'ont
de sens que dans le formulaire. En postant mon courrier, j'espérais
qu'il y avait une méthode ou propriété qui m'aurait échappée et q ui
aurait pu m'éviter ma fonction "bricolage"

cordialement

Argyronet a écrit :
Bonjour,

Vous pouvez appeler la propriété Filter :
Ex : MsgBox Me.Filter

Et si votre filtre est une requête constante au niveau de son nom mais
varia,te au niveau de sa propriété sql (Si peu que vous la fassiez évoluer
via un QueryDef) vous pouvez utiliser une fonction générique :

Private Function GetCurrentFilter(ByVal QueryName As String)
Dim oFilterQuery As QueryDef
On Error Resume Next
Set oFilterQuery = CurrentDb.QueryDefs(QueryName)
GetCurrentFilter = oFilterQuery.SQL
Set oFilterQuery = Nothing
End Function

--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442)
VBA pour Office 2007 (ISBN 2742983910)



"Pogo" a écrit :

> Access 2003 / windows XP
>
>
> bonjour,
>
> Set X=me.recordset, permet de récupérer le recordset d'un formula ire.
> si le formulaire est filtré, me.recordset ne prend pas en compte le
> resultat du filtre et renvoie l'intégralité des enregistrement.
> Comment récupérer le recordset qui correspond aux données filtr ées
> dans un formulaire
>
> D'avance merci
>
>