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 :

[Access2003]nettoyé tout les combo/txt de tout les onglets de mon formulaire


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut [Access2003]nettoyé tout les combo/txt de tout les onglets de mon formulaire
    Bonjour,

    Voila j'aimerais en un clic(boutton 'nettoyer') pouvoir nettoyer tout les combo/textbox de chacun de mes onglets(chacuns des onglets etant associé a un sous formulaire.

    j'ai une boucle qui parcourt tout les objet d'un seul formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    For Each MyObjects In MonForm
            'si le nom de l'objet commence par cmb ou txt
            If (Left(MyObjects.Name, 3) = "Cmb") Or (Left(MyObjects.Name, 3) = "Txt") Then
                'mise a nul des champs
                MyObjects.Value = ""
            End If
            'objet suivant
        Next
    mais je ne sais pas comment parcourir tout mes formulaire et appliquer cette boucle pour chacuns d'entre eux.

    quelqu'un saurait (et j'en doute pas une seconde) comment faire pour parcourir les sous formulaires de mon formulaire principal (ces sous formulaires etant chacuns dans un onglet) ?

    merci de vos reponses

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    Une idée à l'arrache, avant de partir en utilisant un module appellable partout et ce code (collection allforms). Une boucle sur l'ensemble des formulaires et à l'intérieur sur les objets

    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
     Sub AllForms()
        Dim obj As AccessObject, dbs As Object
        Set dbs = Application.CurrentProject
        ' Recherche les objets AccessObject ouverts 
        ' dans la collection AllForms.
        For Each obj In dbs.AllForms
     
    If obj.IsLoaded = TRUE then
             For Each MyObjects In MonForm
            'si le nom de l'objet commence par cmb ou txt
            If (Left(MyObjects.Name, 3) = "Cmb") Or (Left(MyObjects.Name, 3) = "Txt") Then
                'mise a nul des champs
                MyObjects.Value = ""
            End If
            'objet suivant
        Next   
            End If
        Next obj
    End Sub
    ??

    Christophe

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    merci bcp, je vais tester ca, mais la ligne If obj.IsLoaded = TRUE then me chagrine. est ce que si mon objet n'est pas afficher(je joue avec les onglets) va t il etre pris en compte?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    La proposition de christrabin pourrait marcher mais la collection Forms est plus approprié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    For Each MonForm In Application.Forms
    ...
    Citation Envoyé par hoaxpunk
    me chagrine. est ce que si mon objet n'est pas afficher(je joue avec les onglets) va t il etre pris en compte?
    Amicalement

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2007
    Messages : 62
    Points : 62
    Points
    62
    Par défaut
    bon DMboup est plus rapide

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par DMboup
    La proposition de christrabin pourrait marcher mais la collection Forms est plus approprié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    For Each MonForm In Application.Forms
    ...


    merci pour cette precision, mais je ne veut pas tout les formulaires de mon apllication, mais seulement ceux qui sont "sous" formulaire a mon formulaire principal afficher (sachant que tout ces "sous" formulaires, son chacuns dans un onglet d'un tab controle qui lui est dans le formulaire principal...)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    bon j'ai retourné le truk dans tous les sens mais pas moyen...

    j'ai pris le code que vous m'avez donner, je l'ai modifier, mais rien a faire.

    j'arrive a avoir le nom de tout mes formulaires, mais le nom des objets a l'interieurs je n'y arrive pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim obj As AccessObject, dbs As Object
        Set dbs = Application.CurrentProject
        For Each obj In dbs.AllForms
            Debug.Print obj.Name
            For Each MyObject In obj
                Debug.Print MyObject.Name
            Next MyObject
     
        Next obj
    et sur la ligne
    For Each MyObject In obj
    j'ai une erreur qui me dit que l'objet ne suporte pas cette propriété ou cette methode.

    une autre solution?

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    MyObject doit être déclaré comme Control

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim MyObject As Control
    ...
    For Each MyObject In obj.Controls
    Amicalement

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    j'ai modifier ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function listeObjets() As String
     
        Dim obj As AccessObject, dbs As Object
        Dim MyObject As Control
        Set dbs = Application.CurrentProject
        For Each obj In dbs.AllForms
            Debug.Print obj.Name
            For Each MyObject In obj.Controls
                Debug.Print MyObject.Name
            Next MyObject
     
        Next obj
     
    End Function
    mais rien a faire :
    object doesn't support this property or method
    sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each MyObject In obj.Controls
    ...

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Voila.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim MonForm As Form, Mctrl As Control
        For Each MonForm In Application.Forms
              For Each Mctrl In MonForm.Controls
                    Debug.Print "Control : " & Mctrl.Name & " formulaire => " & MonForm.Name
              Next
        Next
    Amicalement

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/08/2014, 22h05
  2. Réponses: 7
    Dernier message: 23/09/2009, 10h02
  3. Réponses: 0
    Dernier message: 21/09/2009, 23h41
  4. Réponses: 3
    Dernier message: 28/04/2009, 00h42
  5. Les Bases de Données! tout un monde!!
    Par kikimnet dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/04/2004, 18h26

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