À quoi servent les relations entre les tables Access et comment les créer ?
8 pages
Français

À quoi servent les relations entre les tables Access et comment les créer ?

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
8 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Tutoriel sur l'utilité des relations Access. Pourquoi et comment créer une relation entre 2 tables ? Comprendre l’intégrité référentielle et les cardinalités (1-1, 1-N et N-N).

Sujets

Informations

Publié par
Publié le 20 janvier 2021
Nombre de lectures 33
Licence : Tous droits réservés
Langue Français

Extrait

Votre Assistante :https://www.votreassistante.net- le 04/04/2013
À quoi servent les relations entre les tables Access et comment les créer ? Lorsque vous créez une base de données complexe, il vous sera fortement utile dutiliser les relations et donc den comprendre leur fonctionnement. Les relations entre les tables permettent déviter les redondances et donc de réécrire les informations plusieurs foiset surtout d’éviter les erreurs. Par exemple, si jutilise Access pour créer mes factures, je peux créer uneTable Clientsoù je saisirai toutes les informations concernant chaque client et je créerai uneTable Facturesoù je
ne saisirai que les informations concernant la facture elle-même comme sonNuméro, saDate démissionet saDescription(quantité, prix unitaire, montant…) et je n’aurais pas besoin de ressaisir à chaque facture les informations du client grâce à la relation que jaurais créée entre les deux tables et je naurais pas de doublon. Rappel des différents types de relations sur Access Pour bien comprendre le fonctionnement des relations, voici un petit rappel. Il existe 3 types de relations (on peut également appeler ces relations "cardinalité") : 1 à 1 (1-1) ; 1 à plusieurs (1-N) ; Plusieurs à plusieurs (N-N). Ndésigne lesymbole infini (∞)dans le logiciel Access. Exemples de relations Access Nous allons prendre 3 exemples pour mieux comprendre ces 3 types de relations. À gauche et à droite nous retrouvons les tables avec, en titre, leur nom suivi de leurs champs (dans ces exemples, les champs ont été simplifiés, mais on peut bien sûr en avoir plus). Au centre, nous utilisons un verbe qui peut être utilisé dans la relation entre les 2 tables.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
1
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
Dans cet exemple, on peut dire quunIndividupossède une seuleCarte didentité. Dans le sens inverse, uneCarte didentiténe peut être possédée que par un seulIndividu. La relation est donc 1 à 1.
Ici, on peut dire quunClientpeut recevoir plusieursFactures. À linverse, une facture ne peut être reçue que par un seulClient. La relation est donc 1 à plusieurs.
Enfin, dans cet exemple, nous pourrons dire quunÉtudiantpeut suivre plusieursCours, mais aussi quunCourspeut être suivi par plusieursÉtudiants. La relation est donc plusieurs à plusieurs. À partir du moment où la réponse est différente de1, je retiens la réponseplusieurs. Maintenant, nous allons mettre en application ce que nous venons de voir pour créer une relation sur Access.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
2
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
Création d’une relation sur AccessPour lexemple, nous allons prendre uneTable Clientset uneTable Facturescomme dans le schéma n°2 où la relation est1 à plusieurs. Vous trouverez une base de données comprenant ces 2 tables, au bas de l’article, afin de mettre en pratique ce tutoriel si vous le souhaitez. Création de la clé primaire Pour créer des relations, je dois dabordavoir un champ en commundans mes 2 tables. Pour cela, je vais créer un champN° clientdans maTable Facturesayant exactement le même nom que le champN° clientde laTable Clients. Le même nom nest pas obligatoire, mais le même type oui.
Jouvre maTable Factures et je clique soit directement surAffichage
, soit sur la
flèche sous le boutonAffichagepour passer enMode Création . Je peux placer mon nouveau champ où je le souhaite, à la fin ou sous monN° de facturepar exemple. Si je souhaite lajouter sous monN° de facture, il suffit de cliquer droit surDate démission(qui
est le champ suivant) et de cliquer surInsérer des lignes . Je nomme mon champN° client, dans ce cas, je ne peux pas choisir leNuméroautocomme type de champ puisque quAccess naccepte quun seul typeNuméroautopar table et queN° facturepossède déjà ce type. Je choisis doncNumérique. Ce champ est uneclé étrangère, cest-à-dire une clé primaire venant dune autre table. Pour savoir quelle table recevra la clé étrangère, il faut retenir que cest la clé primaire du côté1qui sera reprise dans la table du côtéplusieurs. Comme javais indiqué quun client peut recevoir plusieurs factures, ma clé primaire de maTable Clients sera reprise dans maTable Factures. Pour créer une relation, il est important davoir fermé les tables, auquel cas, Access nous le signalera par la suite. Donc, une fois mon nouveau champ créé, je referme ma table par un clic droit sur son nom dans les onglets. On me demande si je souhaite enregistrer, je clique surOui.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
3
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
Création de la relation via la fenêtre Relations
Ensuite, je vais dans longletOutils de base de donnéeset je clique surRelations
.
Dans la boîte de dialogue qui saffiche, je reste sur longletTableset double-clique sur chacune
des 2 tables ou je clique sur chaque table et clique surAjouter
dialogue peut apparaître en cliquant surAfficher la table
.
. La même boîte de
Une fois mes 2 tables présentes sur mon écran, je clique surFermerJe peux . réduire ou agrandir mes tables mais aussi les déplacer sans aucune incidence sur mes relations, cela permet juste une meilleure visualisation. Pour information, il ne faut jamais faire apparaître
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
4
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
2 fois la même table ou requête sur lespace des relations, car il pourrait y avoir des problèmes dans la base de données par la suite.
Pour créer ma relation, jai juste à me placer surN° clientde laTable Clientset à le glisser vers N° clientde laTable Factures. Mon curseur doit faire apparaître un carré blanc avec une croix pour mindiquer que je peux lier ces 2 tables. Dans la boîte de dialogue qui saffiche, jai bien mon champN° clientde laTable Clientset N° client de laTable Facturesvont être liés. Je vais cocher qui Appliquer lintégrité référentielle. Principe de l’intégrité référentielle sur AccessLintégrité référentiellepermet à Access de garantir que les relations entre les enregistrements dans les tables liées sont valides et que vous nallez pas effacer ou modifier par erreur des données liées. Ce qui permet de créer une relationforteentre ces tables. Pour appliquer cette intégrité référentielle: Les tables doivent posséder une clé primaire ou loption dindex sans doublons ; Les tables ne doivent pas contenir de doublons (par exemple si plusieurs clients possèdent le même numéro de client, l’intégrité référentielle est impossible) ; Le champ en commun ne doit pas être vide ; Les tables doivent contenir les mêmes équivalences (si vous avez 5 numéros de produits dans votreTable Facturesque vous n alors en avez que 4 dans votreTable Produits, lintégrité référentielle nest pas possible) ; Les tables que nous souhaitons relier ne doivent pas être ouvertes dans les onglets.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
5
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
Le concept de lintégrité référentielle est un peu complexe, mais, pour simplifier, cest une bonne chose de l’appliquer, car elle permet desynchroniser les informationsetd’éviter les erreurs de gestion d’informations. Cependant, Access peut ne pas laccepter pour les raisons évoquées précédemment. Je ne coche pasMettre à jour en cascade les champs correspondantsetEffacer en cascade les enregistrements correspondants, mais cela permettrait de mettre à jour les tables si lon modifie ou supprime un enregistrement dans les tables liées.
Je clique surCréer.Je constate que ma relation est créée et que jai bien une relation Un-à-plusieurs.
Je peux maintenant fermer lespace de création des relations en cliquant surFermerj’accepte denregistrer.
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
et
6
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
Il me suffit maintenant de renseigner leN° clientma dans Table Factures (pour faire correspondre chaque client et facture). Visualisation des données reliées Grâce à cette relation, lorsque je retourne dans maTable Clients, jai une nouvelle colonne devant chaque enregistrement avec des signes plus (+). Lorsque je clique dessus, je peux voir les factures concernant chaque client.
Grâce à lintégrité référentielle, je ne peux plus créer de factures avec unN° clientqui nexiste pas, car, si dans maTable Factures, jajoute un enregistrement ayant pourN° client(qui 25 nexiste pas dans maTable Clients) et que je souhaite enregistrer ou fermer ma table, Access m"affiche ce message Vous ne pouvez pas ajouter ou modifier un enregistrement car lenregistrement associé est requis dans la table « Clients »." :
Puis, après avoir cliqué surOk, Access vous affichera le message "Impossible denregistrer cet enregistrement pour linstant." :
De même, je ne peux plus supprimer un client de laTable Clientssi une facture le concernant apparaît dans laTable Factures. Auquel cas, jaurais ce message "Impossible de supprimer
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
7
Votre Assistante :https://www.votreassistante.net- le 04/04/2013
ou de modifier lenregistrement car la table « Factures » comprend des enregistrements connexes" :
Par contre, si vous avez cochéMettre à jour en cascade les champs correspondantsetEffacer en cascade les enregistrements correspondantslors de la création de la relation, vous aurez ce message "Les relations qui spécifient les suppressions en cascade provoqueront la suppression de 1 enregistrement(s) dans cette table, ainsi que des enregistrements connexes dans les tables associées." :
Tutoriel réalisé avec Access 2013 Voir la version vidéo de cet article
Article écrit par Lydia Provin du site Votre Assistante :https://www.votreassistante.net
8
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents