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 :

Accéder à un control d'un sous formulaire dont le nom est une variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut Accéder à un control d'un sous formulaire dont le nom est une variable
    Bonjour tout le monde,

    Je viens vers vous car je bloque sur une pauvre ligne de code :

    Je dispose de 3 variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim str_form_source As String 'nom du formulaire source
    Dim str_lst_source As String    'nom de la listbox
    Dim str_sousForm_source As String 'nom du sous formulaire source
    L'architecture est la suivante le formulaire (dont le nom est dans str_form_source) contient un sous-formulaire (dont le nom est dans str_sousForme_source) qui lui même contient une listbox (dont le nom est dans str_lst_source)

    Dans une fonction, je souhaite modifier la propriété rowsource de ma listbox "str_lst_source".

    Ce que j'arrive à faire :

    En mettant directement le nom de mon sous-formulaire "en dur", ce que je souhaite faire fonctionne (le sous formulaire se nomme SF_RULE_DETAIL) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Form_SF_RULE_DETAIL.Controls(str_lst_source).RowSource = "ma source"
    Form_SF_RULE_DETAIL.Controls(str_lst_source).Requery

    Par contre, je ne parviens pas à faire la même chose avec mes variable str_form_source ou/et str_sousForm_source. j'ai tenté avec la collection, Forms, mais je ne doit pas trouver la bonne syntaxe.

    Quelqu'un peut-il m'aider ??

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,
    si je comprends bien ta question, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms(str_form_source ).Controls(str_lst_source).RowSource = "masource"
    Forms(str_form_source ).Controls(str_lst_source).Requery
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    Non, cela ne fonctionne pas, car la listbox se trouve dans le sous formulaire (str_sousForm_source)

    Donc, au début, j'avais fait quelquechose dans le même style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms(str_sousForm_source).Controls(str_lst_source).RowSource = "ma source "
       Forms(str_sousForm_source).Controls(str_lst_source).Requery
    mais ca ne lui plait pas :

    Impossible de trouver le formulaire 'SF_RULE_DETAIL' auquel il est fait référence dans une expression de macro ou un code Visual Basic.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    So ?

    Personne n'a déjà été confronté à ce problème ?

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    Ajoute l'encapsulation du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    forms("leFormulaire")!Forms(str_sousForm_source).Controls(str_lst_source).RowSource = "ma source"
       forms("leFormulaire")!Forms(str_sousForm_source).Controls(str_lst_source).Requery

  6. #6
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    un Excellent article : http://loufab.developpez.com/appelformulaire


  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    Je viens d'essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       Forms(str_form_source)!Forms(str_sousForm_source).Controls(str_lst_source).RowSource = "ma source"
       Forms(str_form_source)!Forms(str_sousForm_source).Controls(str_lst_source).Requery
    Mais ca ne marche pas :

    Impossible de trouver le champ 'Forms' auquel il est fait référence dans votre expression.

  8. #8
    Membre expérimenté Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 135
    Par défaut
    Citation Envoyé par micniv Voir le message
    Ajoute l'encapsulation du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    forms("leFormulaire")!Forms(str_sousForm_source).Controls(str_lst_source).RowSource = "ma source"
       forms("leFormulaire")!Forms(str_sousForm_source).Controls(str_lst_source).Requery
    Bonsoir micniv,
    l'encapsulation du formulaire
    Pourriez vous m'expliquer comment programme t on une zone de liste attachée à un sous formulaire encapsulé dans
    un formulaire principal ?
    Cordialement.

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

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. Appel de procédure dont le nom est une variable
    Par TOF1414 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/08/2012, 16h36
  3. [AC-2003] Propriétés d'un champ dont le nom est une variable
    Par AndréPe dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/02/2012, 09h36
  4. [PowerShell] Acces variable dont le nom est une variable
    Par marion782 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 12/09/2011, 11h16
  5. Instancier une classe dont le nom est une variable
    Par bendev dans le forum Langage
    Réponses: 1
    Dernier message: 06/11/2006, 06h01

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