IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Masquer un champ en fonction de la valeur liste modifiable


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Masquer un champ en fonction de la valeur liste modifiable
    Bonjour,
    Je souhaite masquer des champs de mon formulaire en fonction de la valeur sélectionnée dans mon contrôle 'liste déroulante'. Cette liste est située sur le même formulaire .Comment dois je procéder (Je suis novice)

    1-Dois je placer la portion de code sur l'évènement 'AfterMAJ' du controle?
    2-Comment programmer cet évènement . Si je sélectionne la valeur 1 de ma liste, cacher champ1 et champ2...

    Pour masquer les champs je pense que l'instruction Me![NomDuChamp].Visible=False doit fonctionner mais pour le reste?

    Merci de votre aide

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Salut
    Oui l'evenement semble etre la mise à jour de ta liste.
    Interesse toi à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me!zdl.ItemsSelected
    Me!zdl.ItemData(var)
    Podz

  3. #3
    Membre régulier Avatar de Sonic
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 96
    Points
    96
    Par défaut
    Salut
    Place ton code à l'évènement After_update
    Ensuite tu peux faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public sub MaListe_AfterUpdate()
    On Error GoTo Erreur
     
        Select Case MaListe
        Case 1 :
              Texte1.Visible=False
        Case 2 : 
              Texte2.Visible=False
        End Select
     
        Exit Sub
    Erreur:
        MsgBox Err.Description
    End Sub

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses,

    Je suis tenté par la méthode de Podz qui ne demande pas de déclarer une variable public (enfin je crois)!

    J'aimerais avoir un peu plus de précision sur l'utilisation de ces deux commandes. Je patauge un peu. J'ai regardé l'aide Access mais cela reste pour moi assez vague. Je suis novice.

    Faut 'il déclarer une variable. ItemSelected sert'il à indiquer la valeur selectionnée dans ma liste déroulante? A quoi sert la commande ItemsData?

    Merci de votre compréhension!

  5. #5
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello Speedy,


    Non la méthode de Sonic est bonne, si tu appelles la procédure MaListe_AfterUpdate() que dans un seul formulaire, celui ouvert, tu peux même remplacer Public par Private.

    Pour ce qui est de la commande ItemsData, eh, bien, n'oublie pas la touche magique <F1>.



    :-)

  6. #6
    Membre régulier Avatar de Sonic
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 96
    Points
    96
    Par défaut
    Il n'y a absolument pas besoin de déclarer une variable
    MaListe correspond au nom de ta liste déroulante. Tu as juste à écrire dans l'évènement AfterUpdate de ta liste.
    Le case, par contre, dépend des valeurs contenus dans ta liste. Exemple, ta liste contient 2 colonnes, la 1° est l'identifiant et la 2° le libellé correspondant : 1;"Madame";2;"Mademoiselle";3;"Monsieur"
    En fonction de l'item choisit dans ta liste, le Select Case MaListe contiendra soit 1,2 ou 3
    Ainsi si tu veux remplir un champ texte Sexe correspondant par exemple ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public sub MaListe_AfterUpdate() 
    On Error GoTo Erreur 
     
        Select Case MaListe 
        Case 1 :  'on a choisit "Madame" 
              Sexe.Value = "Femme"
        Case 2 :  'on a choisit "Mademoiselle"
              Sexe.Value = "Femme"
        Case 3 :  'on a choisit Monsieur
              Sexe.value = "Monsieur"
        End Select 
     
        Exit Sub 
    Erreur: 
        MsgBox Err.Description 
    End Sub
    Mais en aucun cas on ne déclare de variables, les seules choses déclarées sont les noms de tes composants que tu as placés sur ton formulaire.
    En espérant t'avoir aidé un peu plus.
    Bon courage

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    C'est encore moi! et encore merci

    J'ai suivi les conseils de sonic et voici la portion de code intégré à l'évènement AfterUpdate de ma liste déroulante TypeContact.Lorsque je sélectionne la valeur 1 de ma liste déroulante, il ne se passe rien. Pouvez vous encore m'aider svp.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub TypeContact_AfterUpdate()
    On Error GoTo Erreur
     
        Select Case TypeContact
        Case 1:
              [Activite].Visible = False
         End Select
            Exit Sub
    Erreur:
        MsgBox Err.Description
    End Sub

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Bonjour
    Citation Envoyé par Speedy08
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub TypeContact_AfterUpdate()
    On Error GoTo Erreur
     
        Select Case TypeContact
        Case 1:
              [Activite].Visible = False
         End Select
            Exit Sub
    Erreur:
        MsgBox Err.Description
    End Sub
    Tu devrais essayer plutot comme sonic l'a ecris au depart ds son 1er post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Case 1 : 
    Me.Activite.Visible = False
    Podz

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour Podz, J'avais testé toutes les écritures avant de poster.

  10. #10
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je ne pense pas que le
    :
    soit requis.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub TypeContact_AfterUpdate() 
    On Error GoTo Erreur 
     
        Select Case TypeContact 
        Case 1: 
              [Activite].Visible = False 
         End Select 
            Exit Sub 
    Erreur: 
        MsgBox Err.Description 
    End Sub
    Euh, il faudrait essayer de faire du code le plus otpimisé possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub TypeContact_AfterUpdate() 
    On Error GoTo Erreur 
    Activite.Visible = TypeContact =1
    Exit Sub 
    Erreur: 
        MsgBox Err.Description 
    End Sub

  12. #12
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut Re: Masquer un champ en fonction de la valeur liste modifiab
    Citation Envoyé par Speedy08
    Bonjour,
    Je souhaite masquer des champs de mon formulaire en fonction de la valeur sélectionnée dans mon contrôle 'liste déroulante'. Cette liste est située sur le même formulaire.
    Donc si tu sélectionnes un seul enregistrement dans ta liste, tu peux faire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'recuperation de l'enregistrement selectionné
    NbIssusListe = Me.TaListe.Column(0)
     
    'Suivant les différentes valeurs de ta 1ere colonne (j'imagine que c'est des nombres et qu'il ne peut pas y avoir de doublons...)   
    If NbIssusListe = 1 then
    Me.Champ1.Visible = True
    Me.Champ2.Visible = False 
    End if
    If NbIssusListe = 2 then
    Me.Champ1.Visible = True
    Me.Champ2.Visible = False 
    End if...
    L'utilisation d'un case me semblait plus propre ms essais tjrs ça...
    Podz

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci à tous pouur votre aide.Après avoir suivi les conseils, le select case ne fonctionne pas.J'ai donc appliqué le code proposée par Podz.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TypeContact_AfterUpdate()
    'recuperation de l'enregistrement selectionné
    NbIssusListe = Me.TypeContact.Column(0)
    'Suivant les différentes valeurs de ta 1ere colonne (j'imagine que c'est des nombres et qu'il ne peut pas y avoir de doublons...)
    If NbIssusListe = 1 Then
    Me.Activite.Visible = False
    Me.[Raison Sociale].Visible = False
    End If
    End Sub
    Ca ne marche toujours pas. Est ce que l'évènement AfterUpdate est approprié?

  14. #14
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Si ta liste déroulante contient une colonne avec pour valeur 1 et 2,j'ose espérer que ta colonne liée est à 1.

    Dans ce cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TypeContact_AfterUpdate()
    Select Case TypeContact
        Case 1:
              Me.Activite.Visible = False
        Case 2:
              Me.Activite.Visible = True
         End Select
    End Sub
    Fonctionne.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci de m'avoir mis sur la voie et désolé de vous avoir fait peut être perdre votre temps.

    Ma colonne liée etait initialement 1.Pour que cela fonctionne, j'ai mis 0 en colonne liée et le select case fonctionne.Merci...mais

    à l'ouverture de mon formulaire, la liste déroulante est positionnée sur la valeur 0 mais elle ne prend pas en compte la condition du select case. Il faut que je resélectionne la valeur dans ma liste déroulante pour que les champs non désirés disparaissent. Est ce que la commande requery pourrait m'aider à résoudre cet inconvénient?
    :oops:

  16. #16
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Salut
    Sur l'évènement ouverture de ton formulaire, tu as juste à cacher les champs que tu souhaites par le code Me.Champ.Visible=false.
    Podz

  17. #17
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Initialement, tu applique ton select case sur l'événement AfterUpdate de ton contrôle. Si tu ne fais pas d'update de ton contrôle, la procédure ne s'effectue pas.

    Pour qu'il s'effectue à un autre moment, tu doit aussi le place sur un événement de ton formulaire, sur OnLoad ou OnCurrent.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    J'ai copié le code au chargement de mon formulaire et tout fonctionne comme je veux. Je suis nul en programmation

    Merci à tous pour votre participation et la rapidité de vos réponses.



    Comment passe t'on le sujet en résolu?

  19. #19
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 148
    Points : 103
    Points
    103
    Par défaut
    Content d'avoir pu t'aider
    Clique sur le bouton en bas à gauche de ce message
    A+
    Podz

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer le format d'un champ en fonction d'une valeur
    Par zoom61 dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/06/2007, 21h35
  2. Réponses: 1
    Dernier message: 23/04/2007, 10h13
  3. Réponses: 21
    Dernier message: 21/04/2007, 08h00
  4. Réponses: 12
    Dernier message: 13/02/2007, 14h21
  5. Réponses: 5
    Dernier message: 30/12/2006, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo