Bonjour,
j'ai un formulaire [F_Adherents] (relié à une table) : je voudrais que le champ [Fed.ref] se remplisse automatiquement en fonction de ce qu'on a rentré comme code postal dans [Adh_CodePostal]
Un peu compliqué à expliquer donc je vais tenter de simplifier.
Un Adhérent [T_Adherents] dépend d'une fédération [T_Federations] qui gère un ou plusieurs départements [T_Departements].
Là où ça se complique (sinon c'est trop simple) c'est que malgré qu'une fédération gère un ou plusieurs départements, un adhérents peut-être géré par une fédération qui ne gère pas normalement le département de l'adhérent.
Du coup, mes relations sont construites comme ça :
Pour qu'on puisse donc changer la fédération par défaut, il n'y a pas de relation directe entre les tables adhérents et départements
Je voudrais donc que dans mon formualaire [F_Adherents] le champ Fed_ref se remplisse automatiquement quand on rentre le code postal (mais qu'on puisse donc faire la modif à la main si ça n'est pas la bonne fédé)
j'ai tenté une requête mise à jour (avec une requête access puis une requête sql dans VBA), mais elle ne fonctionne pas.
Elle s'exécute sans problème apparent mais la mise à jour n'est pas celle que j'attends :
parfois il met à jour quelque chose (puisque j'ai un message qui me dit qu'une ligne a été modifiée dans ma base) mais pas la mise à jour que j'attends (et impossible de savoir ce qu'il met à jour ! ) et parfois, il ne met rien à jour (message avec 0 ligne modifiée dans la base)
je vous mets le code de ma requête (en sql donc, mais j'avais fait l'équivalent en requête access, avec le même résultat) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim StrSql As String StrSql = "UPDATE (T_Federations INNER JOIN T_Departements ON T_Federations.Fed_ref = T_Departements.Fed_Ref) INNER JOIN T_Adherents ON T_Federations.Fed_ref = T_Adherents.Fed_ref" StrSql = StrSql & " SET [Forms]![F_Adherents].[Fed_ref] = T_Departements.Fed_Ref " StrSql = StrSql & " WHERE (((T_Adherents.Adh_ref)=[Forms]![F_Adherents].[Adh_ref]) AND ((T_Departements.Depart_num)=Left([Forms]![F_Adherents].[Adh_CodePostal],2)));" DoCmd.RunSQL StrSql
merci d'avance !
Partager