{Access}

Fermé
Djo - 25 oct. 2009 à 20:32
 Djo - 28 oct. 2009 à 12:58
Bonjour,

Je suis débutant en Base de Données et j'ai une petite question pour laquelle vous n'aurez pas de mal à apporter une réponse je pense.

Comment forcer l'utilisateur à saisir une donnée d'une relation (je sais pas si je me fais bien comprendre)

Explications :
J'utilise Toad Data Modeler pour modéliser ce dont j'ai besoin (si vous m'apportez une réponse pour data modeler c'est parfait, sinon pour access c'est déjà très bien).

J'ai crée 3 tables :
- une table "Objet_acheté"
- une table "Non-conformité"
- une table de relation entre les 2 premières.

Un objet acheté n'a pas forcément de Non conformité
Par contre une Non conformité est forcément liée à, au moins, un objet acheté.

Je souhaiterais donc que quand l'utilisateur saisi une Non conformité, qu'il y attache forcément au moins un numéro de série d'un objet acheté.

Il est possible de spécifier Not Null pour les champs d'une table mais là, la référence de l'objet acheté n'est pas un champ de la table Non Conformité mais simplement une donnée provenant de la relation.

J'espère que je suis clair lol n'hésitez pas à me demander de clarifier.

Merci beaucoup.

A+

2 réponses

Bonjour,

Ce que tu décris est une "contrainte de clé étrangère", Foreign Key pour Shakespeare. À savoir : si quelque chose est entré, ce doit être existant ailleurs (la démo traditionnelle est la facturation d'un client : le client doit exister).

Dans les SGBD "normaux", le système propose toujours un mécanisme pour contraindre une clé étrangère.
En ce qui concerne Access, j'ai l'impression que cela doit être écrit par l'utilisateur, en VBA ou en macro de manière à refuser la saisie si la ligne référencée n'existe pas.

désolé de ne pouvoir t'aider plus
0
Merci.

Je vais faire des recherches sur ces clef étrangere mais je pense que Toad le propose.

Thx

A+
0