Filtré un formulaire grâce à un autre

Fermé
Perdu dans access Messages postés 6 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 16 décembre 2007 - 13 déc. 2007 à 15:58
Perdu dans access Messages postés 6 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 16 décembre 2007 - 16 déc. 2007 à 10:18
Bonsoir,

Je demande conseil à plus érudit que moi, (et ça ne doit pas être difficile à trouver !!).
J'ai créé deux formulaire:
-le premier (intitulé => CMOS): un qui recense une liste de personnes avec des caractéristiques
- le deuxième (intitulé => Formation) : un autre pour un suivi de formation

Je voudrais ouvrir le deuxième formulaire avec, comme référence, le nom de la personne sélectionné dans le premier formulaire.
Et je veux accéder à mon deuxième formulaire grâce à un bouton.
J'ai déjà rentrer le code suivant:

Private Sub Commande131_Click()
'Ouvrir Validation hôtels
DoCmd.Close
DoCmd.OpenForm "Validation hôtel"
End Sub

Et effectivement, je veux qu'il garde en mémoire le nom du CMOS (du premier formulaire) pour qu'il puisse filtré le deuxième formulaire qu'avec les données de ce même CMOS (champ agent dans le deuxième formulaire)

Le champ de référence s'appelle CMOS dans le formulaire CMOS
Le champ à référencer s'appelle Agent dans le formualire Formation

Merci d'avance

Perdu dans Access

4 réponses

phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
13 déc. 2007 à 17:39
Première grosse erreur : "comme référence, le nom de la personne"
tu trouves que "M Dupont" est une réf à une seule personne dans le monde entier ? Tsk, tsk, tsk. Il faut utiliser un ID sinon houlaaaa ça donnera des surprises.

2ème erreur : "Commande131", ça devrait s'appeller p.ex. btnOpenForm ou cmdView Client ou que sais-je. Une fois dans le code tu ne sauras plus sans vérifier à quoi sert Commande131.

3ème erreur : "Validation hôtel". On n'utilise pas d'éspace ou des caractères ASCII > 127, ça fait que poser des pb. Si tu veux un beau titre utilise la propriété Caption

Private Sub Commande131_Click()

dim f as new MyForm ' cad "Validation hôtel"

f.DataSource="SELECT * FROM MyTable WHERE ID = '" & me.txtID & "'"

End Sub

mais OpenForm a aussi un param (le dernier) que tu peut exploiter à l'ouverture de l'autre form (Me.OpenArgs)

D'ailleurs : pas beesoin de fermer le premier formulaire
0
Perdu dans access Messages postés 6 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 16 décembre 2007
13 déc. 2007 à 19:42
J'ai fait comme du à écrit, mais ça ne marche pas.
Il bloque sur & me.txtID
0
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
14 déc. 2007 à 10:16
Est-ce que tu as un champ txtID dans ta forme. si oui qu'y a-t-il dedans

Si tu vas en debogage et tu t'arretes juste apres f.DataSource = , tu fais CTRL-G puis ?f.DataSource quel est le résultat ?

sinon quel message d'erreur ?
0
Perdu dans access Messages postés 6 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 16 décembre 2007
16 déc. 2007 à 10:18
Bonjour

Désolé pour le retard de réponse, mais travail oblige.

Je n'ai pas de champ appelé txtID.
Quand je fais la manip "exécution" de "?f.DataSource", il m'indique "Erreur d'éxécution 424" "Objet requis"
0