OVH Cloud OVH Cloud

l'appliquer filtre n'st pas toujours pris en compte

10 réponses
Avatar
Bonjour,
J'ai une application avec plusieurs formulaires et je=20
bascule de l'un vers l'autre en voulant garder le m=EAme=20
identifiant. J'ai cr=E9=E9 une variable public et sur activ=E9=20
du formulaire je fais un appliqu=E9 filtre :=20
DoCmd.ApplyFilter , "T_CONVOCATION.RDPRONO_CD =3D " &=20
iNumDossier

Cela marche, mais par momement, il ne prend pas en compte=20
la variable qui est pourtant renseign=E9 et m'affiche un=20
=E9cran vide.

Pouvez-vous m'aider, merci

10 réponses

Avatar
Patrick
Je n'ai pas eu de réponse, vous faut-il des précisions,
merci ?
-----Message d'origine-----
Bonjour,
J'ai une application avec plusieurs formulaires et je
bascule de l'un vers l'autre en voulant garder le même
identifiant. J'ai créé une variable public et sur activé
du formulaire je fais un appliqué filtre :
DoCmd.ApplyFilter , "T_CONVOCATION.RDPRONO_CD = " &
iNumDossier

Cela marche, mais par momement, il ne prend pas en
compte

la variable qui est pourtant renseignée et m'affiche un
écran vide.

Pouvez-vous m'aider, merci
.



Avatar
Patrick
Je n'ai pas eu de réponse, vous faut-il des précisions,
merci ?
-----Message d'origine-----
Bonjour,
J'ai une application avec plusieurs formulaires et je
bascule de l'un vers l'autre en voulant garder le même
identifiant. J'ai créé une variable public et sur activé
du formulaire je fais un appliqué filtre :
DoCmd.ApplyFilter , "T_CONVOCATION.RDPRONO_CD = " &
iNumDossier

Cela marche, mais par momement, il ne prend pas en
compte

la variable qui est pourtant renseignée et m'affiche un
écran vide.

Pouvez-vous m'aider, merci
.



Avatar
Raymond [mvp]
Bonjour.

La commande DoCmd applique sa méthode sur l'objet actif, c'est-à-dire le
formulaire qui a le focus. lorsque tu exécutes ton docmd, as-tu le bon
formulaire actif ? pourquoi ne pas utiliser Me.filter et Me.FilterOn dans le
formulaire lui-même ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" a écrit dans le message de
news: 143301c4a532$7d4fb4e0$
Je n'ai pas eu de réponse, vous faut-il des précisions,
merci ?
-----Message d'origine-----
Bonjour,
J'ai une application avec plusieurs formulaires et je
bascule de l'un vers l'autre en voulant garder le même
identifiant. J'ai créé une variable public et sur activé
du formulaire je fais un appliqué filtre :
DoCmd.ApplyFilter , "T_CONVOCATION.RDPRONO_CD = " &
iNumDossier

Cela marche, mais par momement, il ne prend pas en
compte

la variable qui est pourtant renseignée et m'affiche un
écran vide.

Pouvez-vous m'aider, merci
.



Avatar
Merci pour la réponse, j'ai appliqué cette méthode
(Me.filter) et j'obtiens le même résultat, j'ai tracé le
traitement (débug) et il est bien sur le bon formulaire.
-----Message d'origine-----
Bonjour.

La commande DoCmd applique sa méthode sur l'objet actif,
c'est-à-dire le

formulaire qui a le focus. lorsque tu exécutes ton
docmd, as-tu le bon

formulaire actif ? pourquoi ne pas utiliser Me.filter et
Me.FilterOn dans le

formulaire lui-même ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Patrick" a écrit
dans le message de

news: 143301c4a532$7d4fb4e0$
Je n'ai pas eu de réponse, vous faut-il des précisions,
merci ?
-----Message d'origine-----
Bonjour,
J'ai une application avec plusieurs formulaires et je
bascule de l'un vers l'autre en voulant garder le même
identifiant. J'ai créé une variable public et sur activé
du formulaire je fais un appliqué filtre :
DoCmd.ApplyFilter , "T_CONVOCATION.RDPRONO_CD = " &
iNumDossier

Cela marche, mais par momement, il ne prend pas en
compte

la variable qui est pourtant renseignée et m'affiche un
écran vide.

Pouvez-vous m'aider, merci
.




.




Avatar
Raymond [mvp]
tu as mis le Me.FilterOn = true ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le message de news:
143701c4a539$79468480$
Merci pour la réponse, j'ai appliqué cette méthode
(Me.filter) et j'obtiens le même résultat, j'ai tracé le
traitement (débug) et il est bien sur le bon formulaire.
Avatar
Oui, je l'ai fais, tu trouveras ci après la commande
passée :
If iNumDossier <> 0 Then
Me.Filter = "T_CONVOCATION.RDPRONO_CD = " & iNumDossier
Me.FilterOn = True
End If

-----Message d'origine-----
tu as mis le Me.FilterOn = true ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le
message de news:

143701c4a539$79468480$
Merci pour la réponse, j'ai appliqué cette méthode
(Me.filter) et j'obtiens le même résultat, j'ai tracé le
traitement (débug) et il est bien sur le bon formulaire.


.



Avatar
Raymond [mvp]
C'est quoi le point et T_CONVOCATION ? le nom de la table ?

dans le formulaire tu ne mets que le nom du champ ou alors tu as des noms en
doublons ?
Me.Filter = "[RDPRONO_CD] = " & iNumDossier

iNumDossier est-il bien numérique ?
si non il faut des '
Me.Filter = "[RDPRONO_CD] = '" & iNumDossier & "'"

si le nom de la table est obligatoire:
Me.Filter = "[T_CONVOCATION].[RDPRONO_CD] = " & iNumDossier

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le message de news:
139b01c4a553$42f8b280$
Oui, je l'ai fais, tu trouveras ci après la commande
passée :
If iNumDossier <> 0 Then
Me.Filter = "T_CONVOCATION.RDPRONO_CD = " & iNumDossier
Me.FilterOn = True
End If
Avatar
T_CONVOCATION est bien la table (il existe une jointure
entre deux tables dans le source) et le point est là pour
séparer le nom du champ de la table. J'ai repris ta ligne
et j'ai toujours le même résultat.

-----Message d'origine-----
C'est quoi le point et T_CONVOCATION ? le nom de la
table ?


dans le formulaire tu ne mets que le nom du champ ou
alors tu as des noms en

doublons ?
Me.Filter = "[RDPRONO_CD] = " & iNumDossier

iNumDossier est-il bien numérique ?
si non il faut des '
Me.Filter = "[RDPRONO_CD] = '" & iNumDossier & "'"

si le nom de la table est obligatoire:
Me.Filter = "[T_CONVOCATION].[RDPRONO_CD] = " &
iNumDossier


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le
message de news:

139b01c4a553$42f8b280$
Oui, je l'ai fais, tu trouveras ci après la commande
passée :
If iNumDossier <> 0 Then
Me.Filter = "T_CONVOCATION.RDPRONO_CD = " &
iNumDossier

Me.FilterOn = True
End If


.



Avatar
Raymond [mvp]
il t'est possible de m'envoyer ta base dans un fichier zip en enlevant XYZ.
dans mon adresse ? si oui tu expurges tout ce qui n'est pas nécessaire au
formulaire.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le message de news:
13af01c4a562$21d1eb80$
T_CONVOCATION est bien la table (il existe une jointure
entre deux tables dans le source) et le point est là pour
séparer le nom du champ de la table. J'ai repris ta ligne
et j'ai toujours le même résultat.
Avatar
Je ne peux pas t'envoyer la base, car elle contient des
données confidentielles. J'ai contourné le problème en
recréant la requête à chaque fois que le formulaire est
appelé, exemple :

Dim sSelSource As String
If iNumDossier <> 0 Then
sSelSource = "SELECT T_CONVOCATION.* FROM T_DOSSIER
INNER JOIN T_CONVOCATION ON T_DOSSIER.RDPRONO_CD = " _
& "T_CONVOCATION.RDPRONO_CD WHERE CONVOCATION.RDPRONO_CD
= " & iNumDossier "
Me.RecordSource = sSelSource
End If

Cela marche, je te remercie pour ton aide.

A+
-----Message d'origine-----
il t'est possible de m'envoyer ta base dans un fichier
zip en enlevant XYZ.

dans mon adresse ? si oui tu expurges tout ce qui n'est
pas nécessaire au

formulaire.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le
message de news:

13af01c4a562$21d1eb80$
T_CONVOCATION est bien la table (il existe une jointure
entre deux tables dans le source) et le point est là pour
séparer le nom du champ de la table. J'ai repris ta ligne
et j'ai toujours le même résultat.


.