Problème violation de clé

Résolu/Fermé
geoffrey0258 Messages postés 4 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 3 avril 2013 - 11 déc. 2012 à 17:24
geoffrey0258 Messages postés 4 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 3 avril 2013 - 11 déc. 2012 à 19:35
Bonjour,

J'ai un souci pour remplir des tables sous accès j'ai un message d'erreur correspondant à une violation de clé. J'ai cherché partout je n'arrive pas à résoudre ce problème.

Voici sur ce lien mon schéma relationnel
http://www.zimagez.com/zimage/sanstitrec10674e0ebe184fa7f1a1fa897bb76fb.php

Pour créer ces tables j'ai fait les requêtes suivantes :

create table client
(numéro integer,
nom char(50),
prénom char(50),
ville char(50),
département char(50),
région char(50),
constraint PK_client primary key (numéro))


create table produit
(référence char(10),
désignation char(50),
marque char(50),
catégorie char(50),
secteur char(50),
[taux tva] single,
constraint PK_produit primary key (référence))


create table temps
([date facture/achat] date,
mois char,
année integer,
constraint PK_temps primary key ([date facture/achat]))


create table vente
(ID counter,
réfprod char(10),
[date facture] date,
numéro integer,
quantité integer,
montant single,
constraint PK_vente primary key (id),
constraint FK_vente foreign key ([date facture]) references temps ([date facture/achat]),
constraint FK2_vente foreign key (réfprod) references produit (référence),
constraint FK3_vente foreign key (numéro) references client (numéro))


Je veux ensuite remplir mes tables à partir d'une autre base de données sur mon ordinateur.

J'ai donc fait les instructions d'enregistrement suivant pour chaque table :

INSERT INTO client ( numéro, nom, prénom, ville, département, région )
SELECT client.numéro, client.nom, client.prénom, ville.nom, département.nomdépt, région.nomrégion
FROM [Intermédiaire 1 remplissage table client], [Intermédiaire 2 remplissage table client]
WHERE [Intermédiaire 1 remplissage table client].[code postal]=val([Intermédiaire 2 remplissage table client].[code postal]);


INSERT INTO produit ( référence, désignation, marque, catégorie, secteur, [taux tva] )
SELECT produit.référence, produit.désignation, produit.marque, produit.catégorie, produit.secteur, produit.tauxtva
FROM produit IN 'C:\Users\Geoffrey\Documents\cours (ORDIDEGEO)\M1 MER\Hubert\FRINGUES_CLIENTS.mdb';


INSERT INTO temps ( [date facture/achat], mois, année )
SELECT facture.[date facture], month(facture.[date facture]) & "/" & year(facture.[date facture]), year(facture.[date facture])
FROM facture IN 'C:\Users\Geoffrey\Documents\cours (ORDIDEGEO)\M1 MER\Hubert\FRINGUES_CLIENTS.mdb';


INSERT INTO vente ( réfprod, [date facture], numéro, quantité, montant )
SELECT référencer.réfprod, facture.[date facture], facture.numéro, référencer.quantité, round(produit.prixunitht*(1-référencer.remise)*(1+produit.tauxtva)*référencer.quantité,2) AS montant
FROM facture, référencer, produit IN 'C:\Users\Geoffrey\Documents\cours (ORDIDEGEO)\M1 MER\Hubert\FRINGUES_CLIENTS.mdb'
WHERE facture.numéro=référencer.n°facture And référencer.réfprod=produit.référence;


Les enregistrements dans les tables clients et produits fonctionnent. Mais pas dans les tables vente et temps. Voici les deux message d'erreur suivant respectivement pour la table vente et la table temps :

http://www.zimagez.com/zimage/sanstitre19270f85a64fb0d174b5f11f20306c270.php 67 enregistrements sur 67 ne fonctionnent pas

http://www.zimagez.com/zimage/sanstitre25339b4a6802832b508a58d36ab915328.php 15 enregistrements sur 34 ne fonctionnement pas


voici les liens des schémas relationnels des 2 bases de données source dans laquelle je vais chercher les infos :

http://www.zimagez.com/zimage/sanstitre37527be7cfc9ec0de4d66329459c44019.php

http://www.zimagez.com/zimage/sanstitre42ca06df5522d7ffa16d3f42cdff3664a.php

Merci pour votre aide

1 réponse

geoffrey0258 Messages postés 4 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 3 avril 2013
11 déc. 2012 à 19:35
Si ça intéresse quelqu'un c'est bon j'ai résolu le problème. C'est juste que je devait exécuter les enregistrement de la table vente en dernier. Concernant les 15 enregistrements sur
34 qui ne marchent pas dans la table temps c'est parce que les doublons sont supprimés
0