VBA recuperation à partir d'un sous formulair

Fermé
sergeszebe Messages postés 180 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 8 octobre 2009 - 16 févr. 2006 à 17:17
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 - 16 févr. 2006 à 21:52
salut!
voici mon pb:
j'ai un formulaire Général qui lui contient un sous-formulaire Consultation. dans le sous formulaire il ya un champ txtnom qui se remplit automatiquement sur activation.
je crée un nouvo formulaire Evaluation contenant une zone de text 'txtnom_eval'.je voudrai qu' à l'ouverture du formulaire evaluation la zone de text txtnom_eval (du ss formulaire) prenne la valeure de txtnom qui est dans le sous formulaire.
en faisant ceci: txtnom_eval=[général]!txtnom ça marche pas.
quelqu'un pourrait t'il maider?
il s'agit bien evidement du VBA Access2002

1 réponse

zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
16 févr. 2006 à 21:52
Coucou...(?)

As-tu essayé: txtnom_eval=Forms![général]!txtnom

Si je comprends bien ton problème, tu essaies d'afficher le nom de l'étudiant dont tu veux encoder les notes dans ton formulaire évaluation et tu as un problème parce que la table évaluation ne comporte pas ce renseignement mais seulement le N°eleve...

Le plus simple est de continuer avec un sous-formulaire généré avec l'assistant fondé sur les tables eleve et Eval.

Pour sélectionner l'élève désiré (sur clic dans ton formulaire précédent (général?)), tu peux utiliser une macro (ouvrir formulaire, en définissant une condition Where) ou le faire en VB:

DoCmd.OpenForm "NomDuFormulaireAOuvrir",,,"[N°eleve]=Forms![General]![N°Eleve]...

La syntaxe doit bien sûr être adaptée aux noms de tes tables et champs... A ce propos, évite les espaces et les accents dans les noms: access ajoutera automatiquement les crochets.

De cette manière le mon de l'élève est dans le formulaire principal et le sous-formulaire n'affiche que les notes concernant cet élève. De plus, lorsque tu crées un nouvel enregistrement dans le formulaire, le N°eleve est ajouté automatiquement.

Si tu crées un formulaire indépendant, tu ne dois pas oublier de définir par VB la valeur du champ N°eleve. C'est plus difficile parce qu'il faut veiller à ne le faire que lorsqu'Access pointe sur un enregistrement vide, sinon gare aux erreurs... C'est aussi moins "transparent".
0