OVH Cloud OVH Cloud

Bouton commande

5 réponses
Avatar
Claire
Encore un peu d'aide
J'ai 3 formulaires FEtudiants, FDossiers et FSemestres
Dans FDossiers, j'ai créé un bouton pour ouvrir FSemestres avec un code VBA
pour que FSemestres soit coordonné avec FDossiers : Dans le formulaire
FSemestres j'ai écrit "Sur Ouverture": If IsOpen("FDossiers") Then
RefDossier.DefaultValue = Forms!FDossiers!RefDossier.
Ceci marche très bien. Mais si je mets FDossiers comme sous formulaire de
FEtudiants, cela ne fonctionne plus. Comment dois-je faire pour avoir un
formulaire FEtudiants contenant un sous formulaire FDossiers, lui même ayant
un bouton ouvrant FSemestres coordonné au dossier en cours? Merci d'avance

5 réponses

Avatar
Tisane
Bonjour Claire,

J'ai 3 formulaires FEtudiants, FDossiers et FSemestres
Dans FDossiers, j'ai créé un bouton pour ouvrir FSemestres avec un
code VBA pour que FSemestres soit coordonné avec FDossiers : Dans le
formulaire FSemestres j'ai écrit "Sur Ouverture": If
IsOpen("FDossiers") Then RefDossier.DefaultValue > Forms!FDossiers!RefDossier.
Ceci marche très bien. Mais si je mets FDossiers comme sous
formulaire de FEtudiants, cela ne fonctionne plus. Comment dois-je
faire pour avoir un formulaire FEtudiants contenant un sous
formulaire FDossiers, lui même ayant un bouton ouvrant FSemestres
coordonné au dossier en cours? Merci d'avance


La syntaxe de la référence à un contrôle dans un sous-formulaire est la
suivante :
Forms![Nom_FormPrincipal]![Nom_SousForm].Form![Nom_Controle_dans_SousForm]

Dans ton exemple, cela doit donner :
Forms![FEtudiants]![FDossiers].Form![RefDossier]

--
Tisane

Avatar
Claire
Hello Tisane,
Je débute en VBA, je n'ai pas bien compris où placer ta syntaxe de
référence...Dans les propriétés du bouton de commande ou sur la propriété
ouverture du formulaire FSemestres que je désire ouvrir avec le bouton ed
commande?
Merci d'avance de ta réponse



Bonjour Claire,

J'ai 3 formulaires FEtudiants, FDossiers et FSemestres
Dans FDossiers, j'ai créé un bouton pour ouvrir FSemestres avec un
code VBA pour que FSemestres soit coordonné avec FDossiers : Dans le
formulaire FSemestres j'ai écrit "Sur Ouverture": If
IsOpen("FDossiers") Then RefDossier.DefaultValue > > Forms!FDossiers!RefDossier.
Ceci marche très bien. Mais si je mets FDossiers comme sous
formulaire de FEtudiants, cela ne fonctionne plus. Comment dois-je
faire pour avoir un formulaire FEtudiants contenant un sous
formulaire FDossiers, lui même ayant un bouton ouvrant FSemestres
coordonné au dossier en cours? Merci d'avance


La syntaxe de la référence à un contrôle dans un sous-formulaire est la
suivante :
Forms![Nom_FormPrincipal]![Nom_SousForm].Form![Nom_Controle_dans_SousForm]

Dans ton exemple, cela doit donner :
Forms![FEtudiants]![FDossiers].Form![RefDossier]

--
Tisane





Avatar
Claire
Hello Tisane,
Merci de ta solution : en fait j'avais oublié de transformer la première
partie de la syntaxe. Pour les débutants comme moi, voici la syntaxe totale :
If IsOpen("FEtudiants") Then RefDossier.DefaultValue =
Forms![FEtudiants]![FDossiers].Form![RefDossier].
Et cela fonctionne
Merci encore de ton aide, cela me retire une sacrée épine du pied. Bon
week-end


Bonjour Claire,

J'ai 3 formulaires FEtudiants, FDossiers et FSemestres
Dans FDossiers, j'ai créé un bouton pour ouvrir FSemestres avec un
code VBA pour que FSemestres soit coordonné avec FDossiers : Dans le
formulaire FSemestres j'ai écrit "Sur Ouverture": If
IsOpen("FDossiers") Then RefDossier.DefaultValue > > Forms!FDossiers!RefDossier.
Ceci marche très bien. Mais si je mets FDossiers comme sous
formulaire de FEtudiants, cela ne fonctionne plus. Comment dois-je
faire pour avoir un formulaire FEtudiants contenant un sous
formulaire FDossiers, lui même ayant un bouton ouvrant FSemestres
coordonné au dossier en cours? Merci d'avance


La syntaxe de la référence à un contrôle dans un sous-formulaire est la
suivante :
Forms![Nom_FormPrincipal]![Nom_SousForm].Form![Nom_Controle_dans_SousForm]

Dans ton exemple, cela doit donner :
Forms![FEtudiants]![FDossiers].Form![RefDossier]

--
Tisane





Avatar
Tisane
Hello Claire,

Merci de ta solution : en fait j'avais oublié de transformer la
première partie de la syntaxe. Pour les débutants comme moi, voici
la syntaxe totale : If IsOpen("FEtudiants") Then
RefDossier.DefaultValue > Forms![FEtudiants]![FDossiers].Form![RefDossier].
Et cela fonctionne


Désolée, je n'avais pas jugé utile de copier l'instruction complète.
Mais tu t'en es bien sortie ;-))
Bon week-end aussi,

--
Tisane

Bonjour Claire,

J'ai 3 formulaires FEtudiants, FDossiers et FSemestres
Dans FDossiers, j'ai créé un bouton pour ouvrir FSemestres avec un
code VBA pour que FSemestres soit coordonné avec FDossiers : Dans le
formulaire FSemestres j'ai écrit "Sur Ouverture": If
IsOpen("FDossiers") Then RefDossier.DefaultValue >>> Forms!FDossiers!RefDossier.
Ceci marche très bien. Mais si je mets FDossiers comme sous
formulaire de FEtudiants, cela ne fonctionne plus. Comment dois-je
faire pour avoir un formulaire FEtudiants contenant un sous
formulaire FDossiers, lui même ayant un bouton ouvrant FSemestres
coordonné au dossier en cours? Merci d'avance


La syntaxe de la référence à un contrôle dans un sous-formulaire est
la suivante :
Forms![Nom_FormPrincipal]![Nom_SousForm].Form![Nom_Controle_dans_SousForm]

Dans ton exemple, cela doit donner :
Forms![FEtudiants]![FDossiers].Form![RefDossier]

--
Tisane





Avatar
Claire
Bonsoir Tisane,
Une réjouissance trop rapide. Il me reste un soucis. J'ai bien un formulaire
FEtudiants contenant un sous formulaire FDossiers ayant pour clé RefDossier.
FDossiers contient un bouton ouvrant le formulaire FSemestres en rapport avec
RefDossier de FDossiers. Cependant j'ai un problème, si j'ouvre FSemestres,
si je rentre les données et si je ferme FSemestres, je ne peux plus
reconsulter les données rentrées et donc je ne peux pas les modifier si
nécessaire. De plus je ne peux pas rajouter un deuxième semestre. Comment
faire pour que FSemestres se comporte comme un sousformulaire de FDossiers
avec les données toujours visibles, modifiables et pouvoir ajouter autant de
semestres que je le désire.
Merci d'avance


Hello Claire,

Merci de ta solution : en fait j'avais oublié de transformer la
première partie de la syntaxe. Pour les débutants comme moi, voici
la syntaxe totale : If IsOpen("FEtudiants") Then
RefDossier.DefaultValue > > Forms![FEtudiants]![FDossiers].Form![RefDossier].
Et cela fonctionne


Désolée, je n'avais pas jugé utile de copier l'instruction complète.
Mais tu t'en es bien sortie ;-))
Bon week-end aussi,

--
Tisane

Bonjour Claire,

J'ai 3 formulaires FEtudiants, FDossiers et FSemestres
Dans FDossiers, j'ai créé un bouton pour ouvrir FSemestres avec un
code VBA pour que FSemestres soit coordonné avec FDossiers : Dans le
formulaire FSemestres j'ai écrit "Sur Ouverture": If
IsOpen("FDossiers") Then RefDossier.DefaultValue > >>> Forms!FDossiers!RefDossier.
Ceci marche très bien. Mais si je mets FDossiers comme sous
formulaire de FEtudiants, cela ne fonctionne plus. Comment dois-je
faire pour avoir un formulaire FEtudiants contenant un sous
formulaire FDossiers, lui même ayant un bouton ouvrant FSemestres
coordonné au dossier en cours? Merci d'avance


La syntaxe de la référence à un contrôle dans un sous-formulaire est
la suivante :
Forms![Nom_FormPrincipal]![Nom_SousForm].Form![Nom_Controle_dans_SousForm]

Dans ton exemple, cela doit donner :
Forms![FEtudiants]![FDossiers].Form![RefDossier]

--
Tisane