J'espère que mes explications ne sont pas trop confuses...
Il faut essayer d'^tre le plus explicit possible afin d'éviter les erreurs du à un mauvais interprétation
C'est normal si la clé est "projet" et non pas "NAuto"
En fait il faut que ça ouvre le formulaire "projet" en fonction du n° de projet indiqué dans le champ "projet" du formulaire de recherche "F_RappelAction-AttenteRep"
...
La clef principal de la table projet est : projet
Donc si je comprend bien dans le champ "Projet", j'ai un numérique qui représente le N° unique du projet ?
Dans ce cas il faut faire la condition where ainsi :
docmd.OpenForm "Projet",acDesign,,"Projet=" & Projet
et en plus que l'on puisse pointer sur l'enregistrement du sous-formulaire "ProjetSousFormHistorique" du formulaire "projet"
La clef principal de la table en lien avec la table projet s'affichant dans le sous-formulaire "ProjetSousFormHistorique" dont est : NAuto
Chaque chose en son temps.
Ouvron déjà le formulaire projet sur le bon projet
Ensuite la relation père fils permetra automatiquement d'afficher les bonnes information dans le sous formulaire "ProjetSousFormHistorique"
La question, est : peux tu avoir plusieurs lignes dans ce sous formulaire ?
Si oui, regarde ce petit lien ou j'explique comment se positionner directement sur le bon enregistrement dans un formulaire: ici
Ensuite l'appel à cette procédure pourra se faire à l'ouverture de ton formulaire.
Tu peux passer en paramètre lors de l'ouverture de ton formulaire le champ NAuto avec la syntaxe suivante :
docmd.OpenForm "Projet",acDesign,,"Projet=" & Projet,,,[NAuto]
Ensuite à l'ouverture de ton formulaire "Projet", tu peux tester si un argument à été passé ou pas afin de te positionner le cas échéant sur ta bonne ligne.
Avec le code suivant :
1 2 3 4 5
| Private Sub Form_Open(Cancel As Integer)
If Me.OpenArgs <> "" Then
Positionne [ProjetSousFormHistorique].Form, "Nauto", Me.OpenArgs, vbLong
End If
End Sub |
Partager