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 07/01/2011, 14h43   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 0
Points : 0
Par défaut Procédure filtrer case à cocher dans un formulaire

Bonjour à tous,

je débute dans la programmation visual basic (actuellement sur access).
Je travaille actuellement sur la création de formulaire mais sur certain il faut ajouter des contrôles par exemple case à cocher interne ou externe. Mais en mode création du formulaire et la propriété sur la case à cocher puis sur l'onglet Evenement > sur clic > il faut écrire du code ([Procédure événementielle]) pour que ça fonctionne

Au final, il faut qu'à chaque fois je coche sur interne ou externe, le tri fonctionne sur un champ du formulaire dans lequel je travaille (champs : [TY_PERSONNE]) comporte 2 états : INT (indique que la personne est interne) et EXT (indique que la perspnne est externe)

J'ai écris le code ci-dessous et après plusieurs essai ça ne fonctionne pas du tout et je ne sais pas quoi faire d'autre


''' pour la case à cocher pour les externes, le code :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub Filtre_Personne_Externe_Click()
 
 
    If (Me.Filter = "TY_PERSONNE = EXT") Then
 
        Me.Filtre_Personne_Externe = True
        Me.FilterOn = True
 
 
    Else
 
        Me.Filter = ""
 
 
    End If
 
 
End Sub 
 
 
''' pour la case à cocher pour les internes :
 
 
Private Sub Filtre_Personne_Interne_Click()
 
 
    If (Me.Filter = "TY_PERSONNE = INT") Then
 
        Me.Filtre_Personne_INterne = True
        Me.FilterOn = True
 
 
    Else
 
        Me.Filter = ""
 
 
    End If
 
 
End Sub

un expert en visual basic peut-il détecter mon erreur ?
pourriez-vous m'aider svp pour que j'avance.

merci d'avance!
xadidj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 16h08   #2
Invité de passage
 
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 0
Points : 0
Autrement dit, quel est le code vba pour filtrer un champ dans un formulaire ?
le code qu'on écrit dans procédure événementielle sur clic (case à cocher)
SVP un coup de pouce; ou une indication ou un lien ?

merci
xadidj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 10h41   #3
Membre régulier
 
Homme Michaël
Développeur .NET
Inscription : avril 2008
Messages : 80
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : avril 2008
Messages : 80
Points : 84
Points : 84
Bonjour,

Le truc c'est que je ne vois pas bien où tu veux mettre tes cases à cocher et quel formulaire tu veux filtrer...

Mais en tout cas je vais commenter ton code:

Code :
1
2
3
4
5
6
    If (Me.Filter = "TY_PERSONNE = EXT") Then 'Tu vérifie si le filtre courant = "TY_PERSONNE = EXT", impossible car tu n'assignes jamais le filtre
        Me.Filtre_Personne_Externe = True 'Tu souhaites cocher la case à cocher (inutile, c'est access qui le fait)
        Me.FilterOn = True 'Active le filtre dans lequel tu n'as rien mis
    Else
        Me.Filter = "" 'Ne met rien dans le filtre, c'est ce qui se passe toujours
    End If
Essaye donc peut-être ceci:
Code :
1
2
3
4
5
6
7
8
Private Sub Filtre_Personne_Externe_Click()
    If CBool(Filtre_Personne_Externe.value) Then
        Filter = "TY_PERSONNE = EXT"
     Else
        Filter = ""
    End If
    FilterOn = True
End Sub
Mais question: que se passe t'il si on coche tes deux cases à cocher? Ne vaut il pas mieux utiliser un groupe d'options avec deux boutons radio?
mkl238 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 12h41   #4
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
Citation:
Au final, il faut qu'à chaque fois je coche sur interne ou externe, le tri fonctionne sur un champ du formulaire...
A mon humble avis tu ne devrais pas avoir 2 cases à cocher(int et ext) mais plutôt un seul dont l'état cocher devrait permettre de sélectionner les internes par ex et l'état non-cocher les externes.cette case a cocher devra se trouver dans un formulaire principal et les données dans un sous formulaire.

@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web