Je pense que le fait d'utiliser une requête d'insertion en SQL (j'imagine que tu fais un DoCmd.RunSQL pour l'exécuter) est plutôt une bonne approche. Par contre, je te propose plutôt d'utiliser la requête suivante - qui est légèrement différente de celle que tu as faite:
1 2
| strSql = "INSERT INTO T_RELATION_GEST_PROG_BOCAGE (ID_BOCAGE_PGB, ID_GESTIONNAIRE, ID_PROGRAMME )"
strSql = strSql & "SELECT ID_BOCAGE, '" & f!LST_GESTIONNAIRE & "' AS ID_GESTIONNAIRE, '" & f!LST_PROGRAMME & "' AS ID_PROGRAMME FROM T_Bocage" |
La requête ci-dessous:
"SELECT ID_BOCAGE, '" & f!LST_GESTIONNAIRE & "' AS ID_GESTIONNAIRE, '" & f!LST_PROGRAMME & "' AS ID_PROGRAMME FROM T_Bocage"
pour chaque ligne de T_Bocage met dans la table T_RELATION le champ ID_BOCAGE (NB: j'ai fait l'hypothèse que c'est comme cela que s'appelle le champ qui contient l'id du bocage dans T_Bocage - il faut mettre le bon nom si celui-ci est différent dans la table T_Bocage que tu as définie) et la valeur du champ id gestionnnaire du formulaire et la valeur du champ id bocage du formulaire. Pas besoin de boucle à priori donc...
Idéalement, il faut que cette requête soit exécuter une seule fois, dès que tous les id bocage ont été renseignés dans T_Bocage par l'utilisateur.
Tiens-moi au courant si cela résoud ton pb ou non...
Partager