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 :

Changer la propriète "control source" par code [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut Changer la propriète "control source" par code
    Bonjour à tous,

    je voudrais savoir si c'est possible de changer la propriète "control source" d'un champ present en plusieurs etats d'une application. Je m'explique:

    J'ai une application avec une trentaine d'etats. Dans plusieurs de ces etats, j'ai une textbox avec source "adr_complet.ville".

    Je suis en train de faire un grand changement, et j'avais besoin de changer tous ces sources à "T_comptes.ville".
    J'essaye de le faire un par un, mais il sont beaucoup

    Est-ce qu'il y a une faisson de le faire par code, avec une boucle For-Each, par exemple? C'est-à-dire, ouvrir chaque etat, verifier la source de controle des champs et faire le changement?

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim et As Access.Report
    For Each et In application.CurrentProject
        MsgBox et.Name
        DoCmd.OpenReport et.Name, acViewDesign
        Dim txt As TextBox
        For Each txt In et
            If txt.ControlSource = "adr_complet.ville" Then txt.ControlSource = "T_comptes_complet.ville"
            DoCmd.Close acReport, et.Name, acSaveYes
        Next txt
    Next et
    mais il na marche pas... (BUG sur application.CurrentProject je pense)


    Merci d'avance pour vos reponses...

  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 137
    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 137
    Par défaut
    Bonjour,
    L'utilisation des All.... est un peu spéciale. Ils n'acceptent que le variable Object.
    Par contre pour parcourir il faut une variable Report.

    Voici l'astuce.

    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
     
    Dim rpt As Object
    Dim vrpt As Form
    dim ctrl as Control
     
    For Each rpt In CurrentProject.AllReports
           DoCmd.OpenReport rpt.Name, acDesign
           Set vrpt = Reports("[" & rpt.Name & "]")
     
           For Each ctrl in vrpt.controls
                if ctrl.controlSource = "AncienneSource" then ctrl.controlSource = "NouvelleSource"
     
           Next
     
           DoCmd.Close acreport, rpt.Name, acSaveYes
     
    Next
    A partir de 2010 la modif d'un champ d'une table met à jour tous les controles associés.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    Bonjour et merci de ta reponse loufab

    J'ai un erreur de compatibilité de type sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set vrpt = Reports("[" & rpt.Name & "]")

    Any idea?

    EDIT:

    Par contre si je change
    pour
    ou même:
    J'ai un erreur sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ctrl.ControlSource = "adr_complet.ville"
    ("propriete ou methode non gerée par cet objet")

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    J'ai reussi

    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
    Dim rpt As Object
    Dim vrpt As Report
    Dim ctrl As Control
     
    For Each rpt In CurrentProject.AllReports
           DoCmd.OpenReport rpt.Name, acDesign
           Set vrpt = Reports("[" & rpt.Name & "]")
     
           For Each ctrl In vrpt.Controls
                If TypeOf ctrl Is TextBox Then
                    If ctrl.ControlSource = "adr_complet.ville" Then ctrl.ControlSource = "T_comptes_complet.ville"
                End If
           Next
     
           DoCmd.Close acReport, rpt.Name, acSaveYes
     
    Next
    Il a manqué de vérifier s'il y avait la propriète ControlSource...

    Merci beaucoup encore une fois

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

Discussions similaires

  1. [Source]Supprimer par code des lignes de codes ou un Module
    Par mortalino dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/01/2007, 16h37
  2. Réponses: 1
    Dernier message: 09/11/2006, 13h34
  3. Datareport changer la propriété picture d'un controle image
    Par Acrobat dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/08/2006, 19h01
  4. Réponses: 1
    Dernier message: 20/02/2006, 10h59

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