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 :

Comment effacer tous les contrôles de plusieurs sous formulaires en même temps [AC-2016]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut Comment effacer tous les contrôles de plusieurs sous formulaires en même temps
    Bonjour à Tous,

    J'ai un formulaire qui contient 8 sous formulaires

    Nom : Capture.JPG
Affichages : 122
Taille : 119,4 Ko

    Je souhaiterai au clic sur un bouton réinitialiser tous les contrôles afin de les vider pour une nouvelle saisie.
    J'ai tenté le code ci-dessous mais il ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub but_refresh_forms_Click()
     
    For Each ctl In Me.Controls 'cette procédure efface la totalité du contenue des champs (controles)
        If ctl.ControlType = acTextBox Then
            ctl.Value = ""
        End If
    Next
     
    End Sub
    Je penses qu'il en faut plus mais je sèche

    Merci pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Dans un module standard
    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 Function ToutVider(frm As Form)
    Dim ctrl As Control
    Dim i As Integer
     
    For i = 0 To frm.Count - 1
        Set ctrl = frm(i)
            Select Case ctrl.ControlType
                Case acTextBox
                    ctrl = ""
                Case acOptionGroup, acComboBox, acListBox
                    ctrl = Null
                Case acCheckBox
                    ctrl = False
            End Select
    Next i
    End Function
    et sur le btn de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ToutVider_Click()
    Call ToutVider(Me)
    Call ToutVider(Me!sform1.Form)
    Call ToutVider(Me!sform2.Form)
    ...
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    merci hyperion13,

    Je viens de faire le test, j'ai un code erreur.
    Nom : Capture.JPG
Affichages : 123
Taille : 20,4 Ko

    sur la ligne en jaune

    Nom : Capture-2.JPG
Affichages : 123
Taille : 131,1 Ko

    J'ai supprimé la variable "Public ctrl as Control" de peur quelle fasse doublon avec le module mais même code erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub but_refresh_forms_Click()
     
    Call ToutVider(Me)
    Call ToutVider(Me!SF_ML.Form)
    Call ToutVider(Me!SF_CAF.Form)
    Call ToutVider(Me!SF_H24.Form)
    Call ToutVider(Me!SF_SF_NDF.Form)
    Call ToutVider(Me!SF_PM.Form)
    Call ToutVider(Me!SF_SF_A7.Form)
    Call ToutVider(Me!SF_MKD.Form)
    Call ToutVider(Me!SF_RLM.Form)
    End Sub

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2009
    Messages : 408
    Points : 216
    Points
    216
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call M_toutvider.toutvider(me)
    par exemple

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Re,
    Il semblerait qu'il y ait un ou des objets (textbox ou autre) qui ne soient pas indépendant !
    Dans ce cas on les TAG pour les exclure du Reset.
    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
    Public Function ToutVider(frm As Form)
    Dim ctrl As Control
    Dim i As Integer
     
    For i = 0 To frm.Count - 1
        Set ctrl = frm(i)
            If ctrl.Tag <> "NoReset" Then ' Propriétés - Autres - Remarque
                Select Case ctrl.ControlType
                    Case acTextBox
                        ctrl = ""
                    Case acOptionGroup, acComboBox, acListBox
                        ctrl = Null
                    Case acCheckBox
                        ctrl = False
                End Select
            End If
    Next i
    End Function
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par dodo28 Voir le message
    Merci dodo28, j'ai testé car logique aussi selon moi mais j'avais un autre message d'erreur

    Citation Envoyé par hyperion13 Voir le message
    Merci hyperion13 j'ai modifié le code mais même message d'erreur sur la même ligne 10

  7. #7
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à Tous,

    Je viens de relance le code mais toujours le meme message

    Citation Envoyé par mgascult Voir le message
    merci hyperion13,

    Je viens de faire le test, j'ai un code erreur.
    Nom : Capture.JPG
Affichages : 123
Taille : 20,4 Ko

    sur la ligne en jaune

    Nom : Capture-2.JPG
Affichages : 123
Taille : 131,1 Ko

    J'ai supprimé la variable "Public ctrl as Control" de peur quelle fasse doublon avec le module mais même code erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub but_refresh_forms_Click()
     
    Call ToutVider(Me)
    Call ToutVider(Me!SF_ML.Form)
    Call ToutVider(Me!SF_CAF.Form)
    Call ToutVider(Me!SF_H24.Form)
    Call ToutVider(Me!SF_SF_NDF.Form)
    Call ToutVider(Me!SF_PM.Form)
    Call ToutVider(Me!SF_SF_A7.Form)
    Call ToutVider(Me!SF_MKD.Form)
    Call ToutVider(Me!SF_RLM.Form)
    End Sub

  8. #8
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    re,
    Je vais me répéter, vous avez parmi tous vos objets un objet qui n'est pas indépendant !
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  9. #9
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    désolé, je vais voir

    j'ai aussi des boutons, groupes d'options et listes déroulantes

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    c'est un contrôle de type Textbox qui génère l'erreur
    ajoute cet espion: debug.? frm.name & " / " & ctrl.name au début de ta boucle de manière à donner les noms du formulaire et du contrôle qui génère l'erreur ensuite on pourra regarder de quoi il s'agit.
    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 ?

  11. #11
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à tous,

    merci tee_grandbois,

    ça ne fonctionne pas, bloque sur la ligne 7 "erreur 91 Variable objet ou variable de bloc With non définie"

    pourtant frm et ctrl sont bien déclarés

    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
    Public Function ToutVider(frm As Form)
    Dim ctrl As Control
    Dim i As Integer
     
     
    For i = 0 To frm.Count - 1
    Debug.Print frm.Name & " / " & ctrl.Name
        Set ctrl = frm(i)
            If ctrl.Tag <> "NoReset" Then ' Propriétés - Autres - Remarque
                Select Case ctrl.ControlType
                    Case acTextBox
                        ctrl = ""
                    Case acOptionGroup, acComboBox, acListBox
                        ctrl = Null
                    Case acCheckBox
                        ctrl = False
                End Select
            End If
    Next i
    End Function

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 585
    Points : 1 074
    Points
    1 074
    Par défaut
    Bonjour,

    Je ne comprends pas d''abord cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 0 To frm.Count - 1
    Tu veux le comptes de formulaire ? Mais tu n'en passes qu'un en paramètre.

    De plus

    Tu affectes à une variable objet Control un formulaire ????

    ONTAYG

  13. #13
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    perso je suis loin d'avoir toutes les compétences d'où ma demande d'aide et dont je renouvelle encore mes remerciements.

    J'ai un formulaire "F_fond" qui contient 8 sous_formulaires Tous contiennent des contrôles indépendants.

    Le souhait est de pouvoir effacer toutes les données saisies ou importées suite à une erreur.
    Et en écrivant ces lignes, je penses que ce qui pourrait poser un souci est une liste déroulante qui est basée sur une requête de sélection

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 585
    Points : 1 074
    Points
    1 074
    Par défaut
    Re

    Je pense que tu devrais lire ce tuto : https://loufab.developpez.com/tutori...pelformulaire/

    Il te donnera toutes les syntaxes pour accéder aux sous-formulaires et aux contrôles de ceux-ci.

    ONTAYG

  15. #15
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    merci ONTAYG, je vais regarder cela.

  16. #16
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Dans le form principal frm_ML il y a 8 subform !
    Citation Envoyé par ONTAYG Voir le message
    Bonjour,
    Je ne comprends pas d''abord cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 0 To frm.Count - 1
    ONTAYG
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  17. #17
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 585
    Points : 1 074
    Points
    1 074
    Par défaut
    Autant pour moi

  18. #18
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    ça ne fonctionne pas, bloque sur la ligne 7 "erreur 91 Variable objet ou variable de bloc With non définie"
    pourtant frm et ctrl sont bien déclarés
    déclaré mais pas défini pour ctrl, il faut mettre le Debug en début de boucle mais après l'instruction Set ctrl = frm(i) car c'est là qu'il est défini

    @ ONTAYG:
    pour la boucle : For i = 0 To frm.Count - 1 la syntaxe est correcte car Count désigne ici par défaut le nombre de contrôles dans un formulaire (car le Count de Form n'est pas le même que celui de Forms qui donne le nombre de formulaires de la collection des formulaires)
    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 ?

  19. #19
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 585
    Points : 1 074
    Points
    1 074
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    pour la boucle : For i = 0 To frm.Count - 1 la syntaxe est correcte car Count désigne ici par défaut le nombre de contrôles dans un formulaire (car le Count de Form n'est pas le même que celui de Forms qui donne le nombre de formulaires de la collection des formulaires)
    Exact, c'est ce qui m'avait induit en erreur

  20. #20
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Merci tee_grandbois,

    effectivement je n'y ai pas pensé

    Malgré l'avoir bien placé, je reviens avec l'erreur 2448 sur le ligne "ctrl = "".
    Et pas d'arrêt ou d'info sur le contrôle qui fait défaut

    Par contre j'ai remarqué que le code Debug.? est remplacé automatiquement par Debug.Print

    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
    Public Function ToutVider(frm As Form)
    Dim ctrl As Control
    Dim i As Integer
     
     
    For i = 0 To frm.Count - 1
        Set ctrl = frm(i)
        Debug.Print frm.Name & " / " & ctrl.Name
            If ctrl.Tag <> "NoReset" Then ' Propriétés - Autres - Remarque
                Select Case ctrl.ControlType
                    Case acTextBox
                        ctrl = ""
                    Case acOptionGroup, acComboBox, acListBox
                        ctrl = Null
                    Case acCheckBox
                        ctrl = False
                End Select
            End If
    Next i
    End Function

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. Affichez tous les élément d'un sous-Formulaire
    Par Beaudelicius dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/08/2012, 22h56
  2. Comment récupérer tous les valeurs(dynamique) d'un formulaire post.
    Par olikhvar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 22/03/2012, 16h32
  3. Comment effacer tous les fichiers d'un répertoire
    Par colorid dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2010, 13h55
  4. Réponses: 5
    Dernier message: 23/10/2008, 17h34
  5. Effacer tous les contrôles d'un formulaire
    Par guen dans le forum Access
    Réponses: 4
    Dernier message: 08/09/2006, 22h19

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