cs_sabrina7
Messages postés26Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention25 mars 2007
-
13 sept. 2006 à 15:41
Habiboss -
20 avril 2022 à 15:54
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.
cs_sabrina7
Messages postés26Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention25 mars 20071 13 sept. 2006 à 16:36
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.
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
KC62
Messages postés229Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention20 juin 2007 20 juin 2007 à 16:27
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.