OVH Cloud OVH Cloud

Requête ajout sans doublons

12 réponses
Avatar
Bauwens François
Bonjour,

Je souhaite réaliser une requête d'ajout qui vérifie avant l'ajout que les
enregistrements ajoutés ne sont pas déjà présent dans la table.

J'ai trouvé ce tuto
http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap16.htm (point 4)
mais je ne comprends pas comment "créer un index sans doublons sur les
champs de la première table communs avec ceux de la seconde table". Dans la
table d'origine il y a une clef prim numauto et dans celle d'arrivée aussi.
Le clef prim ne porte donc pas les mêmes numéros.

Quelqu'un connaît-il la marche à suivre ?
Merci pour votre aide et bonne journée

François

2 réponses

1 2
Avatar
Bauwens François
Avec ton code ça marche aussi mais ça me donne le même message d'erreur. Ce
qui est bizarre c'est que le champ objet ne posait pas de problème tant
qu'il n'y avait pas de NOT IN.

Et il n'y a pas de moyen 'plus automatique' pour être certain que ce qu'on
colle dans une table ne s'y trouve pas déjà ?
Un truc à developper pour les version futures d'access ;o)

Merci en tout cas pour l'aide...
François
Avatar
Bauwens François
Ok là, il semble que ça fonctionne !
INSERT INTO [arrêtés sub extra1] ( année, objet, [N° arrêté], FK_DG_extra,
montant, [N° d'ordre bénéficiaire] )
SELECT [T-INSCRIPTION].Année, [T-INSCRIPTION].Objet, [T-INSCRIPTION].[N°
arrêté], [T-INSCRIPTION].FK_DG_extra, [T-INSCRIPTION].Montant,
[T-INSCRIPTION].[N° d'ordre bénéficiaire]
FROM [T-INSCRIPTION]
WHERE [T-INSCRIPTION].Année=[année ?] AND [T-INSCRIPTION].[N°
arrêté]=[arrêté ?] AND [T-INSCRIPTION].Année &" "& [T-INSCRIPTION].[N°
arrêté] &" "& [T-INSCRIPTION].FK_DG_extra &" "& [T-INSCRIPTION].Montant &"
"& [T-INSCRIPTION].[N° d'ordre bénéficiaire] NOT IN (SELECT année &" "&
[N° arrêté] &" "& FK_DG_extra &" "& montant &" "& [N° d'ordre
bénéficiaire] FROM [arrêtés sub extra1]);

Un peu trop rapide à te contacter sur le message précédent, sorry. L'aide
précise bien que les champs memo ne peuvent pas être comparé. J'ai donc
supprimer le champs objet !

Tout semble en ordre.
Merci pour ton aide, ce fut bien appréciable et bien apprécié.
Bonne journée !
François
1 2