Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2012, 09h59   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 1
Points : 1
Par défaut Code vérification des enregistrements

Bonjour,
Tout d'abord je m'excuse de ce titre peu explicite mais je n'arrivais pas à résumer mon problème en une phrase.

Actuellement en stage, je dois réaliser une base de données pour l'entreprise qui m'accueille. Cette base doit fonctionner sous Access 2003 et Access 2007.
Cette base est constitué de 4 tables : fournisseurs, Matière premières (ces deux tables sont liées par une 3ème (table intermédiaire) dans une relation de plusieurs à plusieurs) et une table Documents.

Le "code fournisseur" est la clé primaire de la table intermédiaire et le lien vers la table "documents".

Un fournisseur produit une matière première et le tout est lié à 3 (ce chiffre n'évolue pas) documents de type différents (champs dans la table document "Type de documents" avec une liste de choix contenant : "fiche technique", "contrat" et "Engagement").

Mon patron m'a demander un code qui permet de vérifier que chaque MP est bien liée à 3 documents et que ces trois documents sont bien les trois cités au dessus (il veut eviter les erreurs du type : il y a bien trois documents mais en fait il s'agit de 2 Fiches techniques et 1 engagement (il manque donc le contrat)).

J'ai essayé avec une requète de regroupement. Je pouvais donc vérifier que j'avais bien les trois documents mais je n'arrivais pas a vérifier que ces documents était bien les trois voulus.
Actuellement je suis coincée.

En espérant avoir été assez clair.
Merci d'avance.
K-rol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h14   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Bonjour K-rol,

Citation:
Envoyé par K-rol
Le "code fournisseur" est la clé primaire de la table intermédiaire
==> surtout pas !

Si j'ai bien compris, il te faudrait les tables suivantes (souligné=clé primaire, #=clé étrangère) :
Fournisseur(Id_Fournisseur, Nom, ...) ;
Matiere_Premiere(Id_Matiere_Premiere, Libelle, ...) ;
Document(Id_Document, {champs communs à tous les documents}) ;
Fiche_Technique(Id_Document, {champs spécifiques aux fiches techniques}) ;
Contrat(Id_Document, {champs spécifiques aux contrats}) ;
Engagement(Id_Document, {champs spécifiques aux engagements}) ;
Fournisseur_Matiere_Premiere(#Id_Fournisseur, #Id_Matiere_Premiere, ...) ;
Fournisseur_Matiere_Premiere_Document(#Id_Fournisseur, #Id_Matiere_Premiere, #Id_Document, ...).
avec, pour relations :
Fournisseur 1---∞ Fournisseur_Matiere_Premiere ;
Matiere_Premiere 1---∞ Fournisseur_Matiere_Premiere ;
Fournisseur_Matiere_Premiere 1---∞ Fournisseur_Matiere_Premiere_Document ;
Document 1---1 Fiche_Technique ;
Document 1---1 Contrat ;
Document 1---1 Engagement.
Dès lors, la requête dont tu as besoin... coule de source.

MCD à vérifier/valider par tes soins.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h00   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 1
Points : 1
Je ne pense pas qu'il y est un intérêt à faire une table spécialement pour chaque type de documents car il n'y a aucun champ spécifique à l'un d'entre eux. De plus, je trouve que ça complique les relations et la mise en place des formulaires.
Et puis, pourquoi créer deux tables intermédiaires ? On est pas obliger d'avoir la table Fournisseur+Matière première.

Il est vrai que la requète est plus simple après (il suffit de vérifier que l'on retrouve bien le même Id_documents dans chaque table et comme il s'agit de clé primaire pas de doublon).

Merci de cette réponse, mais ma base est bien avancée et je n'ai plus le temps de tout refaire une seule fonctionnalité. C'est pour ça que je pensais au code.
K-rol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 13h24   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Citation:
Envoyé par K-rol
Je ne pense pas qu'il y est un intérêt à faire une table spécialement pour chaque type de documents car il n'y a aucun champ spécifique à l'un d'entre eux.
==> si tu es sûr que ce sera toujours le cas dans le futur (aucun champ spécifiqe par type de document), alors :
Fournisseur(Id_Fournisseur, Nom, ...) ;
Matiere_Premiere(Id_Matiere_Premiere, Libelle, ...) ;
Document(Id_Document, Type_Document (F/C/E), ...) ;
Fournisseur_Matiere_Premiere(#Id_Fournisseur, #Id_Matiere_Premiere, ...) ;
Fournisseur_Matiere_Premiere_Document(#Id_Fournisseur, #Id_Matiere_Premiere, #Id_Document, ...).
avec, pour relations :
Fournisseur 1---∞ Fournisseur_Matiere_Premiere ;
Matiere_Premiere 1---∞ Fournisseur_Matiere_Premiere ;
Fournisseur_Matiere_Premiere 1---∞ Fournisseur_Matiere_Premiere_Document ;
Document 1---∞ Fournisseur_Matiere_Premiere_Document.
Citation:
Envoyé par K-rol
pourquoi créer deux tables intermédiaires ? On est pas obliger d'avoir la table Fournisseur+Matière première.
==> eh bien, si. Sinon, si tu ne conserve que Fournisseur_Matiere_Premiere_Document, le couple {Id_Fournisseur, Id_Matiere_Premiere} ne sera jamais isolé en tant que tel : il se répètera 3 fois dans Fournisseur_Matiere_Premiere_Document.

Citation:
Envoyé par K-rol
C'est pour ça que je pensais au code.
==> compter sur le code pour compenser une conception minimaliste n'est pas une solution perenne.

Ensuite, tu peux créer une requête par type de document R1, R2 et R3 et donc les "voir" comme des tables à part entière.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 15h04   #5
Invité de passage
 
Inscription : janvier 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 3
Points : 1
Points : 1
Je n'avais pas penser a faire une requète par type de document.

Okay mon problème est résolu.
Merci de m'avoir mis sur la voie.
K-rol est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h46.


 
 
 
 
Partenaires

Hébergement Web