Bonjour,
Je suis en train de créer un formulaire comprenant 2 onglets :
- dans le premier, l'utilisateur saisit des informations sur une entreprise (formulaire principal entreprise),
- dans le deuxième onglet, l'utilisateur saisit des informations sur ses salariés (sous-formulaire salariés).
Dans mon deuxième onglet, j'ai créé une zone de liste (lst_sal) qui affiche tous les salariés de l'entreprise correspondant à la saisie en cours. Je souhaite qu'en cliquant sur un salarié de cette zone de liste, sa fiche apparaisse à l'écran.
Voici ma Requête : dans le champ Contenu des propriétés de cette zone de liste, j'ai demandé d'afficher :
- Id_entreprise de la table T_entreprise
- Id_sal, nom et prénom de la table T_salaries
- Commune de résidence de la table T_communes
Précision : T_entreprise et T_salaries sont liées par une table intermédiaire T_entr_sal qui comprend les deux champs : Id_entreprise et Id_sal.
Voici ma procédure évènementielle, appliquée à lst_sal :
Quand je lance mon formulaire et que je clique sur un salarié dans lst_sal, j'ai un message d'erreur qui me dit que Id_sal appartient à 2 tables différentes (T_salaries et T_entr_sal). Par conséquent, FindFisrt ne trouve pas à quel champ se référer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub lst_sal_AfterUpdate() Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[Id_sal] = " & Str(Nz(Me![lst_sal], 1)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub 'affiche l'enregistrement qu'on aura sélectionné dans lst_sal'
Comment indiquer que c'est dans T_salaries que je veux qu'il recherche Id_sal ? Est-ce dans ma requête ou dans ma procédure évènementielle ? Dans tous les cas, comment l'écrire ?
Je vous remercie d'avance pour votre aide.
Partager