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 06/06/2011, 14h53   #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 Bouton bascule multi filtre

Bonjour

Avant tout, je remercie tous ceux responsables et participants à ce forum : votre aide est précieuse et vraiment apprécié.

J'ai encore une question :

Je voudrais un bouton bascule qui filtre sur deux critères (la date et le nom d'un utilisateur). Il ne doit pas me manquer grand chose dans le code (le lien "AND" entre les deux critères de filtre). J'ai mis & mais ce ne doit pas être ça puisque ça bloque.

Quelqu'un peut m'aider ?

Code :
1
2
3
4
5
6
7
8
Private Sub BasculeFiltre_Click()
If Me.BasculeFiltre.Value Then
        Me.Form.FilterOn = True
        Me.Form.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "#" & "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value)"
    Else
        Me.Form.FilterOn = False
    End If
End Sub
Merci de votre aide
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 16h00   #2
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
2 choses
-Je mettrais le Me.Form.FilterOn = True après Me.Filter=
- pour le citère utilisateur je mettrais plutôt :
Code :
Me.Form.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "#" & "[nom_utilisateur]=""" & Forms("f_identification").selectutilisateur.Value & """"
Bon courage
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 12h21   #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
J'ai déplacé Me.form.filter comme tu l'as suggéré, fgiambelluco, mais il y a un problème encore. Peut être une erreur de guillemet ou autre caractère.
Quelqu'un peut vérifier ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub BasculeFiltre_Click()
If Me.BasculeFiltre.Value Then
 
        Me.Form.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "#" & "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")" & """"
        Me.Form.FilterOn = True
    Else
        Me.Form.FilterOn = False
        Me.Filter = "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")"
    Me.Form.OrderByOn = True
    Me.Form.OrderBy = "[activite_pro].[date]"
 
    End If
 
End Sub
Merci
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h26   #4
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
pour ce code, je pense qu'il manque le And
Code :
Me.Form.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "#" & "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")" & """"
C'est à dire :
Code :
Me.Form.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "# and [nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")" & """"
---------------
Pour le code :
Code :
1
2
3
Else
        Me.Form.FilterOn = False
        Me.Filter = "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")"
Je mettrais plutôt:
Code :
1
2
3
Else
        Me.Filter = "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")"
        Me.Form.FilterOn = True
-> j'ai testé le dernier, il fonctionne

Dans le cas contraire, as-tu une erreur de compilation, une erreur d'excécution ou ni l'un l'autre, mais ceal ne fonctionne pas ?
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h05   #5
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
J'avais une erreur de compilation. Mais maintenant c'est une erreur d'exécution.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub BasculeFiltre_Click()
If Me.BasculeFiltre.Value Then
 
        Me.Form.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "#" AND [nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")" & """"
        Me.Form.FilterOn = True
    Else
 
        Me.Form.FilterOn = False
 
    Me.Filter = "[nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")"
    Me.Form.OrderByOn = True
    Me.Form.OrderBy = "[activite_pro].[date]"
 
    End If
 
End Sub
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h19   #6
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Re
On peut savoir sur quel ligne de ton code il se met en erreur ?
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h47   #7
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
sur la 4e (me.form.filter)
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h53   #8
Membre habitué
 
Avatar de Orakle
 
Homme Laurent Chevrier
Chef de projet collaboratif
Inscription : mars 2004
Messages : 171
Détails du profil
Informations personnelles :
Nom : Homme Laurent Chevrier
Âge : 43
Localisation : France, Aube (Champagne Ardenne)

Informations professionnelles :
Activité : Chef de projet collaboratif
Secteur : Industrie

Informations forums :
Inscription : mars 2004
Messages : 171
Points : 113
Points : 113
Envoyer un message via MSN à Orakle
C'est pas Me.Filter plutôt que ME.Form.Filter?
Orakle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 15h55   #9
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Re
Essaye de faire comme dans le Else
Supprime le Form dans la mise ne place du filtre et du tri
Code :
1
2
3
4
Me.Filter
Me.FilterOn
Me.OrderBy
Me.OrderByOn
Essaye de respecter cet ordre,
1-tu créé le filtre (ou le tri)
Me.Filter=... (Me.OrderBy=)
2-tu filtre (ou tu tris)
Me.FilterOn=True (Me.OrderByOn=True)

PS : Bien vu Orakle, j'ai mis trop longtemps à répondre
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h14   #10
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 pour vos réponses.

J'ai mis dans l'ordre comme vous avez suggéré. Ce qui semble bon puisque maintenant j'ai qu'une erreur de syntaxe sur la ligne de filtre :

Code :
Me.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "# and [nom_utilisateur]In(""" & Forms("f_identification").selectutilisateur.Value & """, ""Equipe"")" & """"
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h32   #11
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
De visu, je pense qu'il manque un espace devant le In.
Je ne sais toujours pas ce que c'est que ce champ : [date]
Comme dis précédemment, si c'est la date du jour, il faut remplacer par Date()
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 12h16   #12
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 champ [date] est le champ de la date d'activité que saisie l'utilisateur. Ce formulaire permet de saisir ces différentes activités quotidiennes. Le bouton filtre permettrait de retrouver les activités d'une journée en particulier.
Meyra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 13h21   #13
Membre Expert
 
Homme Frédéric
Développeur informatique
Inscription : juin 2009
Messages : 944
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2009
Messages : 944
Points : 1 249
Points : 1 249
Bonjour
Donc si j'ai bien compris, le champ que tu appelles [date] est le champ où sont stockées les date des activités et Me.Ladate est le champ oû l'on saisit la date à rechercher.
Dans ce cas,
Essaye de faire un copier colle du code ci dessous.
Code :
Me.Filter = "[date] = #" & Format(Me.ladate, "mm/dd/yyyy") & "# and [nom_utilisateur] In('" & Forms("f_identification").selectutilisateur.Value & "', 'Equipe')"
Si c'est l'inverse, il faut inverser les 2 dates dans ton filtre.
__________________
Frédéric
Développeur d'Applications Access
fgiambelluco est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h01.


 
 
 
 
Partenaires

Hébergement Web