Requête SQL ajout sans doublon [Résolu]

Messages postés
26
Date d'inscription
vendredi 17 février 2006
Dernière intervention
25 mars 2007
- - Dernière réponse : KC62
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Dernière intervention
20 juin 2007
- 20 juin 2007 à 16:27
Bonjour,


J'ai créer une requête SQL qui tourne sur une base Access. Cette requête me récupère des données d'une table pour les insérer dans une autre table.


INSERT INTO Save ( Idvéhicule )
SELECT Idvehi.Idvéhicule
FROM Idvehi;


La table avec les données sources est composé d'un seul champ IDvéhi qui est la clé primaire.


Lors de l'execution de la requête il met un message comme quoi il y a violation de la clé primaire. Mon objectif est qu'il ecrase les données sans faire de doublon. Comment pourrai-je modifier mon code SQL pour faire ceci.


Merci de vore aide.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Dernière intervention
25 mars 2007
3
Merci
Bon c'est bon j'ai trouvé, j'ai fait 2 requêtes et ca marche.




SELECT Save.Idvéhicule, Idvehi.Idvéhicule
FROM Idvehi RIGHT JOIN Save ON Idvehi.Idvéhicule=Save.Idvéhicule
WHERE (((Idvehi.Idvéhicule) Is Null));




INSERT INTO Save ( Idvéhicule )
SELECT Idvehi.Idvéhicule
FROM Idvehi;

Merci de votre aide.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_sabrina7
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
Je vais peut-etre dire une grosse connerie Mais ne serait-ce pas une requete UPDATE qu'il te faudrait plutot à la place d'une requette INSERT.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Dernière intervention
25 mars 2007
0
Merci
Merci de ta réponse Casy, en faite ce que je veux c'est que dans la table Idvéhicule, a chaque fois je rentre une données, cette donnée soit récupérer dans la table Save. Sauf que c'est pas une mise à jour UDAPTE car si la donnée a été suprimé dans la table IDvéhicule elle doit rester dans la table Save. Le problème c'est que comme j'ai fait ci-dessus, les valeurs sont réecrite à chaque fois et il y a des doublons car j'arrive pas à gérer la clé primaire dans la table Save.
Commenter la réponse de cs_sabrina7
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Dernière intervention
20 juin 2007
0
Merci
Bonjour,

A priori, il faudrait que tu détecte le doublon par un select.
que tu le supprime si le teste est positif et que tu applique ta nouvelles lignes.

j'ai bien compris ?

On a pas toutes les solutions de tous les probleme mais chaque probleme à ses solutions ...
Commenter la réponse de KC62
Messages postés
3
Date d'inscription
mercredi 14 juin 2006
Dernière intervention
12 août 2011
0
Merci
salut j'ai un soucis avec une de mes requête d'insertion

DoCmd.RunSQL ("insert into devis (CodeDevis,nbVeh,nbjour,datepropose,com_devis,CodeTypeVeh,CodeActivite,CodeOrigine,IdEtat) values (" & codeD & "," & nbVeh.Value & "," & txtnbjour.Value & "," & datepropose.Value & "," & comD & "," & codeT & "," & codeA & "," & corg & "," & idi & ")")

En fait il me lance un message d'erreur du genre "Microsoft Access a attribué la valeur Null à 0 champ(s) à la suite d'une erreur de conversion de type, 1 enregistrement(s) n'ont pas été ajoutés à la table à la suite de violations de clé, 0 enregistrement(s) à la suite de violation de verrou et 0 enregistrement(s) à la suite de violations des règles de validation"

je ne comprend pas pourquoi il affiche ce message surtout qu'il ne le met pas tout le temps
En faite dans le cas présent ma table devis est vide, elle hérite d'une autre table prestation, avec sous access la même clé primaire
donc dans mon code vba je fait d'abord l'ajout dans la table devis puis dans la table prestation, et même en inversant l'ordre des insert le message aparait quand meme

Autre chose, aussi ma table devis comporte d'autre champs que je n'ajoute pas dans ma requête insert, est ce que cela est génant? car j'ai mis le nom des colonnes que je veut ajouter donc normalement ça devrait pas être génant pour l'execution de la requete?



Merci de voter aide



PS: j'sai pas si mon problème correspond a 100% au sujet de ce forum mais il s'en rapproche pas mal lol
Commenter la réponse de S_lapin
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Dernière intervention
20 juin 2007
0
Merci
Salut,

Je vais pas être sûr de moi mais je vais quand même proposé ca :
Assure toi que les valeurs que tu transmet soit du bon type, par exemple je vois nbveh (que je suppose en integer dans ta base, tu lui donne un string (nbveh.value) vois d'abord pour le convertir.

Tu trouveras toutes les méthodes de conversion dans l'explorateur d'objet (CTRL+ E) de mémoire.

dans le débogage assure toi que tout tes champs soit bien remplis, car cela peut être source d'erreur aussi...

Voila essaye ca ! et peut être aprés je pourrais t'aider plus.

KC62

C'est plus de mon âge ces conneries !
Commenter la réponse de KC62

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.