Kamsa bonjour,
Donc ton formulaire principal ne disposant pas de source de données, il est clair que la relation père-fils ne peut fonctionner.
Deux techniques peuvent s'appliquer pour résoudre ton problème :
a) Modification de la source de données du sous formulaire (par VBA),
b) Définition d'un filtre au niveau de la source de données du sous formulaire.
Pour rester en harmonie avec la démarche suivie jusque maintenant, j'ai opté pour la solution B.
Avant de détailler l'explication, la présence d'un sous formulaire F_Recherche sur l'onglet Recherche n'était pas utile. Tu aurais pu insérer tes contrôles directement dans l'onglet.
J'ai donc repris ta zone de liste en insérant l'id client (qui servira de filtre) dans la source de données de ta listBox :
SELECT R_Recherche.T_CLIENTS.ID, R_Recherche.CLIENTS, R_Recherche.Num_CL, R_Recherche.AGENTS, R_Recherche.HAUTEDC, R_Recherche.MEDIUMDC, R_Recherche.Type, R_Recherche.INSTIT FROM R_Recherche ORDER BY R_Recherche.[CLIENTS];
Afin de ne pas faire apparaître cet id dans la liste j'ai donc modifié la largeur des colonnes : 0cm;3cm;2cm;3cm;2.545cm;2.545cm;2.545cm
La valeur de la listBox récupèrera donc l'id afinde la passer comme filtre de notre source de données du formulaire f_clients :
SELECT T_CLIENTS.ID, T_CLIENTS.CLIENTS, T_CLIENTS.Num_CL, T_CLIENTS.Num_GR, T_AGENTS.AGENTS, T_TYPE.Type, T_MEDIUMDC.MEDIUMDC, T_MEDIUMDC.T_AGENTS_Numéro FROM T_TYPE INNER JOIN ((T_HAUTEDC INNER JOIN (T_AGENTS INNER JOIN T_MEDIUMDC ON T_AGENTS.ID = T_MEDIUMDC.T_AGENTS_Numéro) ON T_HAUTEDC.ID = T_MEDIUMDC.T_HAUTEDC_Numéro) INNER JOIN T_CLIENTS ON T_MEDIUMDC.MEDIUMDC = T_CLIENTS.CodeMediumDC) ON T_TYPE.ID = T_CLIENTS.CodeType WHERE (((T_CLIENTS.ID)=[Formulaires]![FormulaireOnglet]![F_Recherche].[Formulaire]![Liste56]));
En cliquant sur l'onglet Clients, nous opérerons donc un rafraîchissement du formulaire :
Private Sub CtlTab0_Change()
If Me.CtlTab0.Value = 1 Then
Me.F_Client.Requery
End If
End Sub
Cependant, il est possible de trouver n enregistrements correspond à un client (mais ceci est peut être normal dans ta réflexion)
JimboLion
Partager