Re-bonjour,
Pourquoi tu veux dupliquer les informations sur tes prospects dans tes 2 tables ? C'est contraire aux règles d'une base de données. Normalement comme tes prospects ont une identification unique (le champ NUM), à partir du moment où tu as ce champ dans la table devis, tu peux retrouver toutes les informations sur ton prospect.
Tu n'arrives pas à faire une mise à jour des données parce que tu fais une jointure sur les 3 champs NUM, NOM et PRENOM qui sont différents dans les 2 tables (tu veux mettre à jour les NOM et PRENOM de la table devis), donc ton truc est un peu un serpent qui se mord la queue.
1- SI VRAIMENT tu veux rajouter tes nouveaux prospects dans la table devis (même s'ils n'ont pas de devis, sinon tu fais comme j'ai dit dans l'autre sujet), tu fais une première requête ajout des Prospects qui n'ont pas de devis avec la requête :
1 2 3 4
| INSERT INTO T_Devis ( IdProspect_FK, Nom_Prospect, Prenom_Prospect )
SELECT T_Base_Prospects.NUM, T_Base_Prospects.NOM, T_Base_Prospects.Prénom
FROM T_Base_Prospects LEFT JOIN T_Devis ON T_Base_Prospects.NUM = T_Devis.IdProspect_FK
WHERE (((T_Base_Prospects.NUM) Is Not Null) AND ((T_Devis.IdProspect_FK) Is Null)); |
2- Là tes 2 tables ont les mêmes prospects identifiés chacun par le champ NUM unique.
3- Là, tu peux faire une mise à jour des valeurs des champs NOM et PRENOM de la table DEVIS en liant les 2 tables par leur champs NUM (J'utilise IdProspect dans la table Devis pour les différencier) avec le code :
UPDATE T_Devis INNER JOIN T_Base_Prospects ON T_Devis.IdProspect_FK = T_Base_Prospects.NUM SET T_Devis.Nom_Prospect = [NOM], T_Devis.Prenom_Prospect = [Prénom];
Mais je le répète, le point 3 est inutile.
La base exemple est jointe.
Cordialement
Partager