[VBA]Modifier la source contrôle d'un champ d'un sous-formulaire

dedecodes Messages postés 9 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 14 décembre 2011 - 15 nov. 2011 à 13:16
 Pistolstar57 - 24 oct. 2012 à 10:35
Bonjour à tous,

Voilà, j'ai un pti problème ^^
Je cherche à changer la source contrôle d'un champ de mon sous formulaire lorsque je clique sur "Non" dans ma msgbox.

Merci pour votre aide

5 réponses

dedecodes Messages postés 9 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 14 décembre 2011
15 nov. 2011 à 13:17
En VBA (j'ai oublié de préciser, je suis sur une BDD Access)
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 6
15 nov. 2011 à 13:23
Bonjour,

Si tu es en vba, merci de faire attention à la catégorie dans laquelle tu postes, il y a une catégorie pour ça.

Source contôle d'un champ

-> c'est à dire? tu veux charger un autre champ de ta table dans un contrôle?

Si tu veux avoir de l'aide il va falloir être plus explicite expliquer ce que tu as déjà fait ou tenté, et où tu bloques...


L'expérience, c'est une connerie par jour, mais jamais la même..
0
dedecodes Messages postés 9 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 14 décembre 2011
15 nov. 2011 à 13:34
Désolé pour l'erreur de post sur le forum :s

Je voudrais que quand je réponds "Non" à ma msgbox (qui se déclenche sur le changement d'une valeur dans mon formulaire principal),

La source contrôle du champ NOM_CLIENT devienne NOM_LIVRAISON dans mon sous-formulaire,
Les 2 champs font partie de la même requête et sont contenus dans le même sous-formulaire

Si besoin demandez j’essaierai d'être plus précis
0
dedecodes Messages postés 9 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 14 décembre 2011
15 nov. 2011 à 13:37
J'ai déjà essayé Forms![FORM-PRICIPAL]![FORM-SOUS_FORM]![NOM_CLIENT].ControlSource = "NOM_LIVRAISON"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pistolstar57
24 oct. 2012 à 10:35
Bonjours c'est peut-être un peut tard mais essaye ceci :

Si ta msgBox est dans une procédure du formulaire principal, tu peux écrire;
if msgBox("...") = VBYes then
     Me.Nom_du_cadre_du_sous_formulaire.Form.nom_du_control_dans_le_sous_formulaire.ControlSource = "NOM_LIVRAISON"
end if

Sinon si tu le fait à partie d'un autre formulaire,
Il faut penser à vérifier que ton formulaire "FORM-PRINCIPAL" est ouvert:
if (msgBox("...") = VBYes) AND (CurrentProject.AllForms![FORM-PRINCIPAL].IsLoaded)  then
     Forms![FORM-PRINCIPAL]![Nom_du_cadre_du_sous_formulaire].Form.nom_du_control_dans_le_sous_formulaire.ControlSource = "NOM_LIVRAISON"
end if


L'important étant de donner un nom explicite au cadre de ton sous formulaire et de bien utiliser [Nom_du_cadre_du_sous_formulaire].Form pour dire à l’interpréteur que dans ce cadre tu fait référence à un Formulaire.
0