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

VBA Access Discussion :

Verrouiller tous les champs texte avec VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut Verrouiller tous les champs texte avec VBA
    Bonjour à tous,
    petit problème de débutant en VBA: je cherche à verrouiller tous les champs texte d'un formulaire (par une boucle type for each ou autre) au lieu de citer tous les noms des champs et les verrouiller un à un

    merci de votre aide

  2. #2
    Expert éminent

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim C as control
    for each c in me.controls 
    if type of c is textbox then
    next c

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut Trouvée dans le FAQ mais ne marche pas !
    Désolé pour avoir manqué d'efficacité dans mes recherches sur le forum.
    La solution préconisée par cette fonction ne marche pas ! y-t-il une erreur dans le code ? (j'ai gardé la fonction telle que proposée dans le FAQ)

    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
     
    Private Sub Form_Current()
    Dim ctl As Control
     
     'Pour chaque contrôle du formulaire
    For Each ctl In frm.Controls
        ' On verifie que le contrôle soit bien une zone de texte
        If TypeOf ctl Is TextBox Then
            ' On verifie le contenu du contrôle
            If Nz(ctl.Value,"") = "" Then
                ' Il est vide on le rend invisible
                ctl.Visible = False
            End If
        End If
    Next ctl
    End sub

  4. #4
    Expert éminent

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    L'exemple de la FAQ correspond à :

    Comment masquer toutes les zones de texte vides

    Vous voulez :

    Comment vérouiller toutes les zones de texte

    Il est évident qu'il faut adapter le code non ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Comment as-tu déclaré frm ?

    Philippe

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut
    Deux petites erreurs se sont glissée dans le code proposé dans ce FAQ.
    Il a fallu déclarer le frm, comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim frm as Forms ' je pense !
    et ajouter un petit "s" à la fin de la déclaration de ctl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim ctl As Controls
    ' Au lieu de 
    Dim ctl As Control
    Par contre, je n'arrive pas à trouver le bon conseil sur le verrouillage de mon contrôle de type textBox, si vous voulez bien m'aider

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2009
    Messages : 81
    Par défaut Solution définitive !?
    Voici comment je suis arrivé à résoudre ce petit tracas.
    Ce que je propose ici est une procédure privée à un formulaire. Le top serait de proposer ça dans une fonction publique (dans un module séparé des fromulaires) pour l'appeler de n'importe où afin de verouiller tous les champs. Traitement qu'on peut envisager de mettre en place dans le cadre d'une gestion de droits pour utilisateurs.
    Si quelqu'un a une solution meilleure, elle sera la bienvenue !
    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
     
    Private Sub verouillerTextBox()
    Dim ctl As Control
    Dim frm As Form
     
    Set frm = Forms("MonFormulaire")
    'Pour chaque contrôle du formulaire
    For Each ctl In frm.Controls
        ' On verifie que le contrôle soit bien une zone de texte
        If TypeOf ctl Is TextBox Then
            ' Verouiller la zone de texte
            ctl.Locked = True
            End If
    Next ctl
     
    End Sub

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

Discussions similaires

  1. Limiter la taille d'un champ texte avec VBA
    Par Lehobbit78 dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/05/2018, 12h02
  2. Réponses: 11
    Dernier message: 19/11/2013, 21h36
  3. Calculer la somme de tous les champs texte
    Par Maroxye dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/06/2008, 14h32
  4. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

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