Bonjour,
J'essaye en vain de faire en sorte que la source de la zone texte "parentidtextZTX" de mon formulaire ait une formule qui va chercher la clé de l'enregistrement sélectionné dans le sous-formulaire du cadre "PrimaireSFM".
Auriez vous une idée du code VBA a utilisé ?
Quand je met directement "=[PrimaireSFM].[Formulaire]![Profession_IdTxt]" dans la propriété "Source contrôle" de mon champ "parentidtextZTX", cela fonctionne.
Mais lorsqu'en VBA je mets le code suivant, cela inscrit "#Nom*?" dans le champ "parentidtextZTX" :
Comme vous le voyez j'inscris en VBA le même code que dans la propriété du champ. Alors pourquoi cela ne fonctionne il pas SVP ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Forms("F__Home").Controls("[ParentIdTxtZTX]").ControlSource = "=[PrimaireSFM].[Formulaire]![Profession_IdTxt]"
- "F__Home" est le nom du formulaire principal
- "[ParentIdTxtZTX]" est le champ sur lequel je souhaite changer la source.
- "[PrimaireSFM]" est le cadre du sous-formulaire contenant la clé que je souhaite récupérer.
- "[Profession_IdTxt]" est la clé du sous formulaire.
Pour vous situez mon projet :
J'ai deux sous-formulaire dans mon formulaire. Le premier contient la liste des enregistrements. Le second contient le formulaire de saisie de l'enregistrement sélectionné dans le premier sous-formulaire.
L'utilisation des propriétés "Parent/enfant" du sous-formulaire ne peut se faire qu'avec son formulaire principal. J'ai donc créé un champ texte qui doit récupérer la clé de l'enregistrement du premier sous-formulaire.
Je pourrais mettre en dur "=[PrimaireSFM].[Formulaire]![Profession_IdTxt]" dans la propriété "Source contrôle" de mon champ "parentidtextZTX" mais mon formulaire principal d'affiche pas toujours les mêmes sous-formulaire. Donc une fois çà peut être "=[PrimaireSFM].[Formulaire]![Profession_IdTxt]" ou "=[PrimaireSFM].[Formulaire]![Tiers_IdTxt]" ou "=[PrimaireSFM].[Formulaire]![Contrat_IdTxt]" ou ...
Partager