Vous êtes sur la page 1sur 10

Section : SS1 SD Formation Passerelle

Module : Microsoft Accès Année : 2022/2023

TP N 05
Chapitre 05:
 Vue d’ensemble
 Créer une relation entre tables avec la fenêtre Relations
 Créer une relation entre tables en utilisant le volet Liste de champs pour ajouter un champ
 Modifier une relation
 Appliquer l’intégrité référentielle
 Supprimer une relation entre tables
 Créer, modifier ou supprimer une relation dans une application web
 Créer ou modifier une relation dans une base de données web Access 2010

Introduction

Une relation dans Access vous aide à combiner des données de deux tables différentes. Chaque relation
implique des champs de deux tables et les données correspondantes.

Par exemple, vous pouvez avoir un champ RéfProduit dans une table Produits et dans une table
DétailsCommande. Chaque enregistrement de la table DétailsCommande présente une RéfProduit qui
correspond à un enregistrement dans la table Produits avec la même RéfProduit.

Lorsque vous utilisez des tables associées dans une requête, la relation laisse Access déterminer quels
enregistrements de chaque table combiner dans le jeu de résultats. Une relation permet d’éviter que des
données manquent, en empêchant que des données supprimées soient désynchronisées. C’est ce qu’on
appelle l’intégrité référentielle.

Avant d’utiliser des relations, vous devez en comprendre les concepts sous-jacents. Pour plus
d’informations, voir Guide pour les relations entre tables et Utiliser des relations entre les tables.

Vue d’ensemble

Dans une base de données Access, vous créez une relation entre tables à l’aide de l’une des méthodes
suivantes :

 Dans la fenêtre Relations, ajoutez les tables que vous voulez mettre en relation, puis faites glisser
le champ pour les lier d’une table à l’autre.
 Faites glisser un champ dans une feuille de données de table depuis le volet Liste des champs.

Lorsque vous créez une relation entre tables, les champs communs ne portent pas obligatoirement le
même nom, bien qu’il en soit souvent ainsi. Les champs communs doivent avoir le même type de
données. Cependant, si le champ de clé primaire est un champ de clé étrangère peut également être un
champ numérique si la propriété TailleChamp des deux champs est identique. Par exemple, vous pouvez
faire correspondre un champ NuméroAuto avec un champ numérique si la valeur de la propriété
TailleChamp des deux champs est Entier long. Lorsque les deux champs communs sont des champs de
type numérique, ils doivent avoir le même paramétrage de la propriété TailleChamp.
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

Créer une relation entre tables avec la fenêtre Relations

1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.
2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Ajouter des tables (ou Afficher la
table dans Access 2013).
3. Sélectionnez plusieurs tables ou requêtes, puis cliquez sur Ajouter. Une fois que vous avez
terminé d’ajouter des tables et des requêtes dans l’onglet de document Relations, cliquez sur
Fermer.
4. Faites glisser un champ (généralement une clé primaire) d’une table vers le champ commun (clé
étrangère) dans l’autre table. Pour faire glisser plusieurs champs, appuyez sur Ctrl, cliquez sur
chaque champ, puis faites-les glisser.

La boîte de dialogue Modifier des relations s’affiche.

5. Vérifiez que les noms de champ affichés sont des champs communs pour la relation. Si le nom
d’un champ est incorrect, cliquez sur le nom du champ et sélectionnez le champ approprié dans la
liste.

Pour appliquer l’intégrité référentielle à cette relation, activez la case à cocher Appliquer
l’intégrité référentielle. Pour plus d’informations sur l’intégrité référentielle, voir la section
Appliquer l’intégrité référentielle.
6. Cliquez sur Créer.

Access dessine une ligne de relation entre les deux tables. Si vous avez activé la case à cocher
Appliquer l’intégrité référentielle, la ligne est épaissie à chaque extrémité. En outre, si vous
avez activé la case à cocher Appliquer l’intégrité référentielle, le chiffre 1 apparaît au-dessus de
la partie épaisse sur un côté de la ligne de relation, et le symbole infini (∞) apparaît au-dessus de
la partie épaisse sur l’autre côté, comme illustré ci-dessous.
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

Remarques :

o Pour créer une relation un-à-un Les deux champs communs (généralement, les
champs clé primaire et clé étrangère) doivent comporter un index unique. En d’autres
termes, la propriété Indexé de ces champs doit avoir la valeur Oui (sans doublon). Si ces
deux champs ont un index unique, Access crée une relation un-à-un.
o Pour créer une relation un-à-plusieurs Le champ du côté un (généralement la clé
primaire) de la relation doit comporter un index unique. En d’autres termes, la propriété
Indexé de ce champ doit avoir la valeur Oui (sans doublon). Le champ du côté plusieurs
ne doit pas avoir d’index unique. Il peut avoir un index, mais les doublons doivent être
autorisés. Autrement dit, la propriété Indexé de ce champ doit avoir la valeur Non ou Oui
(avec doublons). Quand un champ a un index unique et que l’autre n’en a pas, Access crée
une relation un-à-plusieurs.

Haut de la page

Créer une relation entre tables en utilisant le volet Liste de champs pour ajouter un champ

Vous pouvez ajouter un champ à une table existante ouverte en mode Feuille de données en le faisant
glisser depuis le volet Liste de champs. Le volet Liste de champs affiche les champs disponibles dans
les tables associées et les autres tables de la base de données.

Lorsque vous faites glisser un champ depuis une « autre » table (non liée) et que vous exécutez
l’Assistant Liste de choix, Access crée automatiquement une nouvelle relation un-à-plusieurs entre la
table du volet Liste de champs et la table dans laquelle vous avez fait glisser le champ. Cette relation,
créée par Access, n’applique pas l’intégrité référentielle par défaut. Pour ce faire, vous devez modifier la
relation. Pour plus d’informations, voir la section Modifier une relation.

Ouvrir une table en mode Feuille de données

 Dans le volet de navigation, double-cliquez sur la table.

Ouvrir le volet Liste de champs


Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

 Appuyez sur Alt+F8. Le volet Liste de champs s’affiche.

Le volet Liste de champs regroupe toutes les autres tables dans la base de données par catégories.
Lorsque vous utilisez une table en mode Feuille de données, Access affiche les champs dans l’une des
deux catégories dans le volet Liste de champs : Champs disponibles dans les tables associées et
Champs disponibles dans les autres tables. La première catégorie répertorie toutes les tables qui ont
une relation avec la table en cours d’utilisation. La seconde catégorie répertorie toutes les tables avec
lesquelles votre table n’a aucune relation.

Dans le volet Liste de champs, cliquez sur le signe plus (+) en regard du nom d’une table pour afficher la
liste de tous les champs disponibles dans cette table. Pour ajouter un champ à la table, faites glisser le
champ du volet Liste de champs vers la table en mode Feuille de données.

Ajouter un champ et créer une relation dans le volet Liste de champs

1. La table étant ouverte en mode Feuille de données, appuyez sur Alt+F8. Le volet Liste de champs
apparaît.
2. Sous Champs disponibles dans les autres tables, cliquez sur le signe plus (+) en regard d’un
nom de table pour y afficher la liste des champs.
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

3. Faites glisser le champ de votre choix du volet Liste de champs vers la table ouverte en mode
Feuille de données.
4. Lorsque la ligne d’insertion apparaît, déposez le champ à l’endroit voulu.

L’Assistant Liste de choix démarre.

5. Suivez les instructions pour exécuter l’Assistant Liste de choix.

Le champ apparaît dans la table en mode Feuille de données.

Lorsque vous faites glisser un champ depuis une « autre » table (non liée) et que vous exécutez
l’Assistant Liste de choix, Access crée automatiquement une nouvelle relation un-à-plusieurs entre la
table du volet Liste de champs et la table dans laquelle vous avez fait glisser le champ. Cette relation,
créée par Access, n’applique pas l’intégrité référentielle par défaut. Pour ce faire, vous devez modifier la
relation. Pour plus d’informations, voir la section Modifier une relation.

Haut de la page

Modifier une relation

Vous pouvez modifier une relation en la sélectionnant au préalable dans la fenêtre Relations.

1. Positionnez avec soin le curseur pour qu’il pointe sur la ligne de relation, puis cliquez sur la ligne
pour la sélectionner.

Cette ligne de relation est plus épaisse lorsqu’elle est sélectionnée.

2. Une fois la ligne de relation sélectionnée, double-cliquez dessus.

-ou-

Sous l’onglet Créer, dans le groupe Outils, cliquez sur Modifier des relations.

La boîte de dialogue Modifier des relations s’affiche.

Ouvrir la boîte de dialogue Modifier des relations

1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.
2. Sous l’onglet Création du groupe Relations, cliquez sur Toutes les relations.

Toutes les tables avec des relations sont affichées, elles illustrent des lignes de relation. Notez que
les tables masquées (tables pour lesquelles la case à cocher Masqué est activée dans la boîte de
dialogue Propriétés de la table) et leurs relations ne sont pas affichées à moins de sélectionner
l’option Afficher les objets masqués dans la boîte de dialogue Options de navigation.

3. Cliquez sur la ligne de relation correspondant à la relation à modifier. Cette ligne de relation est
plus épaisse lorsqu’elle est sélectionnée.
4. Double-cliquez sur la ligne de relation.

- ou -
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

Sous l’onglet Créer, dans le groupe Outils, cliquez sur Modifier des relations.

La boîte de dialogue Modifier des relations s’affiche.

5. Apportez vos modifications, puis cliquez sur OK.

La boîte de dialogue Modifier des relations vous permet de modifier une relation entre tables.
Vous pouvez en particulier modifier les tables ou les requêtes de chaque côté de la relation, ou les
champs de chaque côté. Vous pouvez également définir le type de jointure ou appliquer l’intégrité
référentielle, et choisir une option en cascade. Pour plus d’informations sur le type de jointure et
son mode d’affichage, voir la section Définir le type de jointure. Pour plus d’informations sur le
mode d’application de l’intégrité référentielle et le choix d’une option en cascade, voir la section
Appliquer l’intégrité référentielle.

Définir le type de jointure

Lorsque vous définissez une relation entre tables, les faits sur la relation renseignent les structures de la
requête. Par exemple, si vous définissez une relation entre deux tables, puis que vous créez une requête
utilisant ces deux tables, Access sélectionne automatiquement les champs correspondants par défaut en
fonction des champs spécifiés dans la relation. Vous pouvez remplacer ces valeurs initiales par défaut
dans la requête, mais les valeurs fournies par la relation s’avèrent souvent être les bonnes. Étant donné
que la correspondance et la collecte de données dans plusieurs tables sont des opérations fréquentes sur
toutes les bases de données à l’exception des plus simples, la définition des valeurs par défaut reposant
sur la création de relations peut vous faire gagner du temps et économiser de l’argent.

Une requête de plusieurs tables combine des informations issues de plusieurs tables en faisant
correspondre les valeurs dans les champs communs. La jointure consiste à faire correspondre et combiner
les valeurs. Imaginons, par exemple, que vous souhaitiez afficher des commandes clients. Vous créez une
requête qui joint la table Clients et la table Commandes dans le champ Référence client. Le résultat de
requête contient les informations sur les clients et les commandes uniquement pour les lignes dotées
d’une valeur correspondante.

Le type de jointure est l’une des valeurs que vous pouvez spécifier pour chaque relation. Le type de
jointure renseigne Access sur les enregistrements à inclure dans un résultat de requête. Imaginons, par
exemple, une requête qui joint la table Clients et la table Commandes dans les champs communs et qui
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

représente la référence client. Si vous utilisez le type de jointure par défaut (appelé jointure interne), la
requête renvoie uniquement les lignes Client et Commande pour lesquelles les champs communs
(également appelés champs joints) sont égaux.

Cela dit, vous pouvez inclure tous les clients , même ceux qui n’ont pas encore passé de commandes.
Pour ce faire, vous devez modifier le type de jointure, en passant d’une jointure interne à une jointure
externe gauche. Une jointure externe gauche renvoie toutes les lignes de la table sur le côté gauche de la
relation et les valeurs correspondantes dans la table sur le côté droit. Une jointure externe droite renvoie
toutes les lignes de droite et les valeurs correspondantes sur le côté gauche.

Remarque : Dans ce cas de figure, « gauche » et « droite » font référence à l’emplacement des tables
dans la boîte de dialogue Modifier des relations, et non dans la fenêtre Relations.

Vous devez réfléchir au résultat que vous souhaitez généralement obtenir d’une requête qui joint les
tables de cette relation, puis définir le type de jointure en conséquence.

Définir le type de jointure

1. Dans la boîte de dialogue Modifier des relations, cliquez sur Type de jointure.

La boîte de dialogue Propriétés de la jointure apparaît.

2. Cliquez sur votre choix, puis sur OK.

Le tableau suivant (contenant les tables Clients et Commandes) répertorie les trois choix affichés dans la
boîte de dialogue Propriétés de la jointure, le type de jointure utilisé et indique si toutes les lignes ou
lignes correspondantes sont renvoyées pour chaque table.

Jointure
Choix Table de gauche Table de droite
relationnelle
1. Inclure seulement les lignes des deux tables pour Lignes Lignes
Jointure interne
lesquelles les champs joints sont égaux. correspondantes correspondantes
2. Inclure TOUS les enregistrements de la table
Jointure externe Lignes
Clients et seulement ceux de la table Commandes Toutes les lignes
gauche correspondantes
lorsque les champs joints sont égaux.
3. Inclure TOUS les enregistrements de la table
Jointure externe Lignes
Commandes et seulement ceux de la table Clients Toutes les lignes
droite correspondantes
lorsque les champs joints sont égaux.

Lorsque votre choix est le deuxième ou le troisième de cette liste, une flèche s’affiche sur la ligne de
relation. Cette flèche pointe sur le côté de la relation qui ne présente que des lignes correspondantes.

Apporter des modifications dans la boîte de dialogue Propriétés de la jointure

1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.
2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Afficher toutes les relations.

Toutes les tables avec des relations sont affichées et illustrent des lignes de relation. Notez que les
tables masquées (tables pour lesquelles la case à cocher Masqué est activée dans la boîte de
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

dialogue Propriétés de la table) et leurs relations ne sont pas affichées à moins de sélectionner
l’option Afficher les objets masqués dans la boîte de dialogue Options de navigation.
3. Cliquez sur la ligne de relation correspondant à la relation à modifier. Cette ligne de relation est
plus épaisse lorsqu’elle est sélectionnée.
4. Double-cliquez sur la ligne de relation. La boîte de dialogue Modifier des relations apparaît.
5. Cliquez sur Type de jointure.
6. Dans la boîte de dialogue Propriétés de la jointure, cliquez sur une option, puis cliquez sur OK.

7. Apportez éventuellement des modifications supplémentaires à la relation, puis cliquez sur OK.

Haut de la page

Appliquer l’intégrité référentielle

L’intégrité référentielle permet d’éviter les enregistrements orphelins, c’est-à-dire les enregistrements en
référencent d’autres qui n’existent plus. Vous appliquez l’intégrité référentielle en l’activant pour une
relation entre tables. Une fois qu’elle est appliquée, Access bloque toute opération susceptible
d’enfreindre cette intégrité. En d’autres termes, Access rejette les mises à jour qui modifient la cible
d’une référence et les suppressions qui suppriment la cible d’une référence. Si vous souhaitez qu’Access
propage les mises à jour et les suppressions référentielles afin de modifier toutes les lignes associées en
conséquence, voir la section Définir les options en cascade.

Activer ou désactiver l’intégrité référentielle

1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.
2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Toutes les relations.

Toutes les tables avec des relations sont affichées, elles illustrent des lignes de relation. Notez que
les tables masquées (tables pour lesquelles la case à cocher Masqué est activée dans la boîte de
dialogue Propriétés de la table) et leurs relations ne sont pas affichées à moins de sélectionner
l’option Afficher les objets masqués dans la boîte de dialogue Options de navigation.
3. Cliquez sur la ligne de relation correspondant à la relation à modifier. Cette ligne de relation est
plus épaisse lorsqu’elle est sélectionnée.
4. Double-cliquez sur la ligne de relation. La boîte de dialogue Modifier des relations apparaît.
5. Activez ou désactivez la case à cocher Appliquer l’intégrité référentielle.
6. Apportez éventuellement des modifications supplémentaires à la relation, puis cliquez sur OK.

Si vous appliquez l’intégrité référentielle, les règles suivantes s’appliquent :

 Vous ne pouvez pas entrer de valeur dans le champ clé étrangère d’une table associée si cette
valeur n’existe pas dans le champ clé primaire de la table primaire (cette opération revient à créer
des enregistrements orphelins).
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

 Vous ne pouvez pas supprimer d’enregistrement dans une table primaire si les enregistrements
correspondants existent dans une table associée. Par exemple, vous ne pouvez pas supprimer
l’enregistrement d’un employé dans la table Employés si des commandes lui sont affectées dans la
table Commandes. En revanche, vous pouvez supprimer un enregistrement primaire et tous les
enregistrements correspondants en une seule fois, si vous activez la case à cocher Effacer en
cascade les enregistrements correspondants.
 Vous ne pouvez pas modifier une valeur de clé primaire dans la table primaire si cette opération se
solde par des enregistrements orphelins. Par exemple, vous ne pouvez pas modifier un numéro de
commande dans la table Commandes si des éléments de lignes sont affectées à cette commande
dans la table Détails commande. En revanche, vous pouvez mettre à jour un enregistrement
primaire et tous les enregistrements correspondants en une seule fois, si vous activez la case à
cocher Mettre à jour en cascade les champs correspondants.

Remarques : Si vous avez des difficultés à activer l’intégrité référentielle, notez que les
conditions suivantes doivent être réunies :

o Le champ commun de la table primaire doit être une clé primaire ou posséder un index
unique.
o Les champs communs doivent avoir le même type de données, à l’exception du champ
NuméroAuto que vous pouvez lier à un champ numérique, à condition que la propriété
TailleChamp de ce dernier ait la valeur Entier long.
o Les deux tables existent dans la même base de données Access. Vous ne pouvez pas
appliquer l’intégrité référentielle sur des tables attachées. Cependant, si le format des
tables sources est Access, vous pouvez ouvrir la base de données, où ces tables sont
stockées, et y appliquer l’intégrité référentielle.

Définir les options en cascade

Il est probable que vous ayez besoin de modifier la valeur sur le côté « un » d’une relation. Si tel est le
cas, Access doit automatiquement mettre à jour toutes les lignes affectées en une seule fois. Ainsi, la mise
à jour est entièrement terminée et votre base de données reste cohérente , vous n’avez pas des lignes
mises à jour et d’autres pas. Access vous permet de contourner ce problème en mettant à votre disposition
l’option Mettre à jour en cascade les champs correspondants. Lorsque vous appliquez l’intégrité
référentielle, lorsque vous choisissez l’option Mettre à jour en cascade les champs correspondants et
lorsque vous mettez à jour une clé primaire, Access met automatiquement à jour tous les champs qui
référencent la clé primaire.

Vous risquez aussi de devoir supprimer une ligne et tous les enregistrements correspondants , par
exemple, un enregistrement Expéditeur et toutes les commandes associées à cet expéditeur. C’est
pourquoi, Access prend en charge l’option Effacer en cascade les enregistrements correspondants.
Lorsque vous appliquez l’intégrité référentielle et que vous activez la case à cocher Effacer en cascade
les enregistrements correspondants, Access supprime automatiquement tous les enregistrements qui
référencent la clé primaire lorsque vous supprimez l’enregistrement contenant la clé primaire.

Activer ou désactiver la mise à jour en cascade et/ou la suppression en cascade

1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.
2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Toutes les relations.

Toutes les tables avec des relations sont affichées, elles illustrent des lignes de relation. Notez que
Section : SS1 SD Formation Passerelle
Module : Microsoft Accès Année : 2022/2023

les tables masquées (tables pour lesquelles la case à cocher Masqué est activée dans la boîte de
dialogue Propriétés de la table) et leurs relations ne sont pas affichées à moins de sélectionner
l’option Afficher les objets masqués dans la boîte de dialogue Options de navigation.
3. Cliquez sur la ligne de relation correspondant à la relation à modifier. Cette ligne de relation est
plus épaisse lorsqu’elle est sélectionnée.
4. Double-cliquez sur la ligne de relation.

La boîte de dialogue Modifier des relations s’affiche.


5. Activez la case à cocher Appliquer l’intégrité référentielle.
6. Activez la case à cocher Mettre à jour en cascade les champs correspondants ou Effacer en
cascade les enregistrements correspondants, ou activez les deux.
7. Effectuez les modifications supplémentaires dans la relation, puis cliquez sur OK.

Remarque : Si la clé primaire est un champ de type NuméroAuto, il est inutile d’activer la case à cocher
Mettre à jour en cascade les champs correspondants, car il est impossible de modifier les valeurs d’un
champ de type NuméroAuto.

Haut de la page

Supprimer une relation entre tables

Important : Lorsque vous supprimez une relation, vous supprimez également la prise en charge de
l’intégrité référentielle pour cette relation si elle est activée. Par conséquent, Access n’empêchera plus
automatiquement la création d’enregistrements orphelins sur le côté « plusieurs » d’une relation.

Pour supprimer une relation entre les tables, vous devez supprimer la ligne de relation dans la fenêtre
Relations. Positionnez avec soin le curseur pour qu’il pointe sur la ligne de relation, puis cliquez sur la
ligne. Cette ligne de relation est plus épaisse lorsqu’elle est sélectionnée. Avec la ligne de relation
sélectionnée, appuyez sur Suppr.

1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.
2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Toutes les relations.

Toutes les tables avec des relations sont affichées, elles illustrent des lignes de relation. Notez que
les tables masquées (tables pour lesquelles la case à cocher Masqué est activée dans la boîte de
dialogue Propriétés de la table) et leurs relations ne sont pas affichées à moins de sélectionner
l’option Afficher les objets masqués dans la boîte de dialogue Options de navigation.
3. Cliquez sur la ligne de relation correspondant à la relation à supprimer. Cette ligne de relation est
plus épaisse quand elle est sélectionnée.
4. Appuyez sur la touche Suppr.
5. Access peut afficher le message suivant : Êtes-vous sûr de vouloir supprimer la relation
sélectionnée dans votre base de données de manière permanente ?. Si ce message de confirmation
s’affiche, cliquez sur Oui.

Remarque : Si l’une des tables dans la relation est utilisée , soit par une autre personne ou processus, soit
dans un objet de base de données ouvert, tel qu’un formulaire , vous ne pouvez pas supprimer la relation.
Vous devez fermer tous les objets ouverts qui utilisent ces tables avant de tenter de supprimer la relation.

Vous aimerez peut-être aussi