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 :

Activer ou désactiver une zone de texte selon un item d'une liste déroulante


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 37
    Points : 47
    Points
    47
    Par défaut Activer ou désactiver une zone de texte selon un item d'une liste déroulante
    Bonjour

    votre aide SVP.

    J'ai une liste déroulante "SMM" qui contient deux items "Oui" et "Non".
    Quand je choisis "Oui" les autres zones de texte s'activent automatiquement pour y ajouter des données
    si le contraire je veux qu'elles soient désactivées, voir le fichier attaché

    j'ai essayé avec

    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
    Private Sub SalleSMM_AfterUpdate()
    If Me.SalleSMM = "Oui" Then
        Me.ConnexSMM.Locked = False
        Me.ConnexSMMType.Locked = False
        Me.PcBurSMMT.Locked = False
        Me.ImpSMMT.Locked = False
     
    Else
        Me.ConnexSMM.Locked = True
        Me.ConnexSMMType.Locked = True
       Me.PcBurSMMT.Locked = TRue
        Me.ImpSMMT.Locked = True
    End If
     
    End Sub
    et même au lieu de Locked j'ai essayé avec Enabled, mais ça marche pas

    et merci.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonjour,
    vous ne testez pas la bonne colonne. Voici ce qu'il y a dans la propriété Contenu du contrôle SalleSMM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Oui_non].[Id], [Oui_non].[Oui_Non] FROM Oui_non;
    la première colonne contient [Id] donc 1 ou 2 et la seconde "Oui" ou "Non". Même si la première colonne est cachée (dans la propriété Largeur colonnes 0cm;2,54cm), 0cm = invisible la valeur reste quand même visible par le code.
    Il faut soit tester la première colonne ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.SalleSMM.Column(0) = 1   ' mais If Me.SalleSMM = 1 fonctionne aussi car colonne(0) est la valeur par défaut
    soit modifier le code existant en précisant quelle colonne contient "Oui" ou "Non" : comme l'index commence à 0, la 2ème colonne contenant ces valeurs est 1.
    On aura donc :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub SalleSMM_AfterUpdate()
    If Me.SalleSMM.Column(1) = "Oui" Then
        Me.ConnexSMM.Locked = False
        Me.ConnexSMMType.Locked = False
        Me.PcBurSMMT.Locked = False
        Me.ImpSMMT.Locked = False
        Me.PcBurSMMNF.Locked = False
        Me.ImpSMMNF.Locked = False
       ' Me.OndulSMMT.Locked = False
       ' Me.OndulSMMNF.Locked = False
        Me.PcPortSMMT.Locked = False
        Me.DataShowSMMT.Locked = False
        Me.PcPortSMMNF.Locked = False
        Me.DataShowSMMNF.Locked = False
    Else
        Me.ConnexSMM.Locked = True
        Me.ConnexSMMType.Locked = True
        Me.PcBurSMMT.Locked = True
        Me.ImpSMMT.Locked = True
        Me.PcBurSMMNF.Locked = True
        Me.ImpSMMNF.Locked = True
       ' Me.OndulSMMT.Locked = True
       ' Me.OndulSMMNF.Locked = True
        Me.PcPortSMMT.Locked = True
        Me.DataShowSMMT.Locked = True
        Me.PcPortSMMNF.Locked = True
        Me.DataShowSMMNF.Locked = True
    End If
     
    End Sub
    Personnellement, je préconiserai la première solution (tester le champ [Id]), notamment dans un environnement multilingue et utiliser Enabled plutôt que Locked : cela a l'avantage d'être visible car les champs sont grisés.
    j'ai mis 4 lignes en commentaires car les contrôles OndulSMMT et OndulSMMNF n'existaient pas dans le formulaire donc : messages d'erreur.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 37
    Points : 47
    Points
    47
    Par défaut Merci
    Merci, c'est bien ça.
    Le problème est résolu

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

Discussions similaires

  1. [Toutes versions] Remplir une zone texte selon le choix dans la liste déroulante
    Par ornans dans le forum InfoPath
    Réponses: 5
    Dernier message: 27/10/2014, 16h57
  2. onSelect d'une zone de texte selon le navigateur
    Par Shargat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/04/2009, 16h03
  3. Réponses: 4
    Dernier message: 23/08/2007, 18h23
  4. Réponses: 4
    Dernier message: 23/04/2007, 15h01
  5. Réponses: 14
    Dernier message: 30/05/2006, 17h55

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