Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2011, 11h05   #1
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2011
Messages : 19
Points : 2
Points : 2
Par défaut Filtre d'un formulaire

Bonjour

J'ai créé un formulaire qui filtre les enregistrements en fonction de l'identifiant de l'utilisateur via un premier formulaire d'identification. Ceci fonctionne bien.

Mais voilà, je voudrais que les enregistrements s'affichent en fonction de ceux correspondants à l'utilisateur ou d'un utilisateur "général" que j'ai appelé Equipe. Ainsi, l'utilisateur vois ces enregistrements et ceux fait au nom de l'équipe.

Le code sur chargement est le suivant (code qu'on m'a gentiment donné) :
Code :
1
2
3
4
5
6
Private Sub Form_Load()
    Me.FilterOn = True
    Me.Filter = "[nom_utilisateur]= """ & Forms("f_identification").selectutilisateur.Value & """"
    Me.sf_activite_pro.Form.OrderByOn = True
    Me.sf_activite_pro.Form.OrderBy = "[activite_pro].[date]"
End Sub
Je voudrais ajouter dans l'instruction du filtre de choisir les enregistrements de l'identifiant fais dans le formulaire f_identification OR nom_utilisateur=Equipe. Mais je ne sais pas comment lui écrire l'instruction.

Merci de votre aide.
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 19h03   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Ça doit pouvoir se régler avec l'opérateur In.
Code :
Me.Filter = "[nom_utilisateur] In (""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")"
Ce qui donnera pour l'utilisateur Toto par exemple, le filtre :
[nom_utilisateur] In ("Toto", "Equipe")
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 09h28   #3
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2011
Messages : 19
Points : 2
Points : 2
Merci de ta réponse rapide.

Par contre, il y a un blocage au niveau du FilterOn = true maintenant.

Code :
1
2
3
4
5
Private Sub Form_Load()
    Me.FilterOn = True    
Me.Filter = "[nom_utilisateur]In (""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe ESPPéRA"")"
    Me.sf_activite_pro.Form.OrderByOn = True
    Me.sf_activite_pro.Form.OrderBy = "[activite_pro].[date]"
Vous comprenez pourquoi ?
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 09h40   #4
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2011
Messages : 19
Points : 2
Points : 2
Désolée, il ny a plus de blocage après démarrage. Par contre il ne filtre toujours pas au nom de l'équipe, uniquement sur l'utilisateur.

Dans les propriétés, il y pourtant la mention du filtre [nom_utilisateur] In ("Toto", "Equipe").

Vous voyez où se trouve l'erreur ?

Merci
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 12h36   #5
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Non, je ne vois pas d'erreur.

"Equipe ESPPéRA" est bien orthographié ?

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 13h29   #6
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2011
Messages : 19
Points : 2
Points : 2
Le [nom_utilisateur] est bien orthographié. C'est la première chose que j'ai soupçonnée.
Je suis dans l'impasse.

Je peux faire les enregistrements avec le nom de l'utilisateur sélectionné et le nom "Equipe ESSpéRA" dans le formulaire. Si je referme ce formulaire et que je l'ouvre de nouveau (donc réactive le filtre), il ne me reste que les enregistrements de l'utilisateur sélectionné dans le formulaire f_identification.

???????????
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 16h30   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Essaie en mettant
après le changement du filtre
Code :
1
2
    Me.Filter = "[nom_utilisateur]In (""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe ESPPéRA"")"
    Me.FilterOn = True
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 09h55   #8
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2011
Messages : 19
Points : 2
Points : 2
Je comprends un peu mieux d'où vient le soucis. Le formulaire continu que je veux filtrer est un sous-formulaire. Le code filtre donc en premier lieu sur le formulaire principal qui, à son tour, va filtrer le sous-formulaire avec un lein de un-à-plusieurs. Donc, il a déjà éliminé les enregistrements concernant l'équipe et gardé que ceux de l'utilisateur.

Si je mets le code sur le sous-formulaire, ca ne fonctionne pas. Il me dit qu'il y a une erreur de compilation au niveau du nom du sous-formulaire (qui est bon, j'ai vérifié).

Code :
1
2
3
4
5
Private Sub Form_Load()
    Me.FilterOn = True    
Me.Filter = "[nom_utilisateur]In (""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe ESPPéRA"")"
    Me.sf_activite_pro.Form.OrderByOn = True
    Me.sf_activite_pro.Form.OrderBy = "[activite_pro].[date]"
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 12h16   #9
Invité de passage
 
Femme
Inscription : mai 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mai 2011
Messages : 19
Points : 2
Points : 2
Par défaut C'est réussi

Voilà, j'ai trouvé l'erreur

Il suffit de faire qu'un formulaire (sans sous-formulaire). De mettre le code sur chargement en enlevant le nom du formulaire.

Code :
1
2
3
4
Me.FilterOn = True
    Me.Filter = "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")"
    Me.Form.OrderByOn = True
    Me.Form.OrderBy = "[activite_pro].[date]"
Merci de votre aide précieuse
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h14.


 
 
 
 
Partenaires

Hébergement Web