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

IHM Discussion :

verouiller sous-form sur valeur de ctrl form


Sujet :

IHM

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut verouiller sous-form sur valeur de ctrl form
    Bonjour,Bonjour sur ACCESS2003, j’ai une base qui répertorie les renseignements sur plusieurs établissements scolaires selon plusieurs formulaires qui enregistrent dans plusieurs tables . Les établissements se classent : public ou privé, ce champs déjà remplis données déjà rentrés dans la table correspondante, et seulement visible pour information sur le formulaire principal dans un contrôle texte STATUT avec soit «public », soit « privé ». Pour synthétiser j’ai fait un formulaire principal FFIdDEff sur lequel j’ai fait glisser tous les sous formulaires dont un FFPrivé qui est essentiellement réservé aux établissements privés recueillant des info spécifiques à ces établissements privés.
    Je voudrais que lorsque le contrôle visible STATUT public/privé sur le FFIdDeff principal prend la valeur « public », que le sous formulaire FFPrivé réservé aux établissements privés soit verrouillé totalement pour éviter des erreurs de saisies ; Pouvez-vous m’aider à rédiger un code VBA du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub STATUT_AfterUpdate() 
    If [FFIdDEff] ![STATUT]= « privé » then 
    ? vérouille tous les contrôle de FFPrivé 
    ? else 
    laisse FFPrivé accessible 
    End Sub
    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 079
    Points : 24 718
    Points
    24 718
    Par défaut
    Bonjour,

    Une boucle for each devrait faire l'affaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim ctrl as control
    for each ctrl in me.controls
        ctrl.enabled = false
    next

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut verouiller ssform sur valeur de ctrl
    Merci de m'avoir ouvert une piste mais disons que je suis complètement profane en VBA, je le place où ton code ? sur afterMAJ de mon contrôle ? ailleurs ? merci de m'aider.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 002
    Points
    20 002
    Billets dans le blog
    67
    Par défaut
    Salut,

    Oui sur afterupdate de ton contrôle...tu ajoute le code de loufab à ton code de départ...

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 079
    Points : 24 718
    Points
    24 718
    Par défaut
    Bonjour,

    Désolé je suis allé un peu trop vite dans la lecture de ta demande.

    Tu ne veux verrouiller QUE le sous-formulaire. Le code devra donc être placé non seulement sur le après MAJ de ton controle mais également l'événement Sur activation qui se produit à chaque changement d'enregistrement.

    D'autre part il doit être modifier comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim ctrl as control
    for each ctrl in me.MonSousForm.Form.controls
        ctrl.enabled = VraiFaux
    next
    Ou la variable VraiFaux (ou le nom que tu y donnera) prendra alternativement la valeur TRue ou False suivant le test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If me.STATUT="privé" then

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut verrouiller sous form sur valeur donnée de contrôle
    Voila ce que j'ai cru comprendre mais ça ne marche pas : lsq mon contrôle STATUT prend la valeur "privé", le sous form FFPrivé reste avec ses contrôles accessibles. Je suis à peine dégrossi et je ne doute pas d'avoir tout fait de travers, pas de message d'erreur cependant revoyant au débogage. ; enabled ça veut bien dire accessible ? ou c'est le contraire ? Merci si tu vois quelque chose à changer..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub STATUT_AfterUpdate()
    Dim ctrl As Control
    For Each ctrl In Me.FFPrivé.Form.Controls
        ctrl.Enabled = True
    Next
    If Me.STATUT = "privé " Then
    ctrl.Enabled = False
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub STATUT_Change()
     
    Dim ctrl As Control
    For Each ctrl In Me.FFPrivé.Form.Controls
        ctrl.Enabled = True
    Next
    If Me.STATUT = "privé " Then
    ctrl.Enabled = False
    End Sub

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 079
    Points : 24 718
    Points
    24 718
    Par défaut
    Il te faut placer ce code sur le after update mais pas sur le change. Mais également sur le Activate du formulaire (pas du formulaire).
    En effet c'est méga balot !

    Merci User

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 102
    Points : 40
    Points
    40
    Par défaut valeur ctrl bloquant tout contrôle sur sous form
    Insérrer le code après maj, ça va, mais pour la suite je ne suis plus :
    "Mais également sur le Activate??? du formulaire (pas du formulaire???)"
    où est le activate du formulaire ? de quel formulaire s'agit-il ? de celui qui contient le ctrl texte public/privé dont seule la valeur "privé" doit rendre FFPrivé accessible ? ou du sous form FFPrivé ? "pas du formulaire" pourquoi ? Merci loufab, je ne suis pas trop calé pour l'instant..

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 002
    Points
    20 002
    Billets dans le blog
    67
    Par défaut
    Rebonjour,

    Si je peux me permettre de répondre à la place de Loufab

    En fait, il te faut mettre ton code sur activation (évènement current) du formulaire principal qui contient le contrôle "Statut", et sur afterupdate de ton contrôle "Statut" dans ce même formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub STATUT_AfterUpdate()
    Dim ctrl As Control
    For Each ctrl In Me.FFPrivé.Form.Controls
        ctrl.Enabled = (me.statut="Privé")
    next
    End Sub
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Current()
    Dim ctrl As Control
    For Each ctrl In Me.FFPrivé.Form.Controls
        ctrl.Enabled = (me.statut="Privé")
    next
    End Sub

    A+

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 079
    Points : 24 718
    Points
    24 718
    Par défaut
    Trop nul ce matin je m'en revais dormir... un edit au lieu d'un nouveau post.

Discussions similaires

  1. [XL-2010] Mise en forme conditionnel sur Valeur Max & #N/A!
    Par Abed_H dans le forum Excel
    Réponses: 4
    Dernier message: 13/05/2013, 07h12
  2. Pop up sous excel sur clic d'une forme automatique
    Par albibak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2008, 11h35
  3. submit form sur changement de valeur
    Par killerhertz dans le forum ASP
    Réponses: 4
    Dernier message: 23/07/2006, 16h05
  4. Réponses: 6
    Dernier message: 10/02/2006, 14h46
  5. [Struts] question bete sur les Action et Form
    Par seb_fou dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/09/2004, 16h24

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