Vous êtes sur la page 1sur 18

Guide pour les relations entre tables

Une conception appropriée de base de données permet de supprimer les données redondantes
(doublons). Pour atteindre cet objectif, vous devez diviser vos données en plusieurs tables en
fonction de leurs sujets, ainsi chaque fait n'est représenté qu'une seule fois. Vous configurez ensuite
Microsoft Office Access de manière à rassembler les informations divisées . Pour ce faire, vous
insérez les champs communs des tables liées. Ceci dit, vous effectuerez cette opération correctement
après avoir assimilé les relations entre les tables, puis après les avoir spécifiées dans la base de
données Office Access.

Introduction

Après la création d'une table pour chaque sujet de la base de données, vous devez permettre à Office
Access 2007 de renvoyer ces informations en cas de besoin. Pour ce faire, vous insérez les champs
communs dans les tables liées et vous définissez les relations entre ces tables. Vous pouvez alors
créer des requêtes, des formulaires et des états qui affichent des informations issues de plusieurs
tables simultanément. Par exemple, le formulaire suivant comporte des informations issues de
plusieurs tables :

Les informations de ce formulaire proviennent de la table Clients...

...de la table Commandes...

...de la table Produits...

...et de la table Détails commande.

Le nom du client dans la zone Facturer à provient de la table Clients, les valeurs Réf commande et
Date de commande sont issues de la table Commandes, le nom Produit est issu de la table Produits,
et les valeurs Prix unitaire et Quantité sont issues de la table Détails commande. Ces tables sont liées
entre elles de diverses façons pour permettre l'insertion des informations de chacune d'elle dans un
formulaire.

Dans l'exemple précédent, les champs de tables doivent être coordonnés pour afficher des
informations sur la même commande. Les relations entre tables rendent cette coordination possible.
Une relation entre les tables fonctionne en faisant correspondre les données dans les clés  , il est
fréquent d'associer un champ au nom identique dans les deux tables. Dans la plupart des cas, ces
champs correspondants constituent la clé primaire issue d'une table, fournissant un identificateur
unique pour chaque enregistrement, et une clé étrangère dans l'autre table. Par exemple, les
employés peuvent être associés aux commandes dont ils sont responsables, en créant une relation
entre les tables entre les champs RéfEmployé dans les tables Employés et Commandes.

RéfEmployé apparaît dans les deux tables , comme clé primaire...

... et clé étrangère.

 Haut de la page

Types de relations entre les tables

Il existe trois types de relations entre les tables.

Relation un-à-plusieurs

Considérez une base de données de suivi des commandes, dotée d'une table Clients et d'une table
Commandes. Un client peut passer toutes les commandes qu'il souhaite. Pour tout client représenté
dans la table Clients peuvent correspondre les commandes représentées dans la table Commandes.
Ainsi, la relation entre la table Clients et la table Commandes est une relation un-à-plusieurs.

Pour représenter une relation un-à-plusieurs dans la structure de votre base de données, prenez la
clé primaire sur le côté « un » de la relation et ajoutez-la comme champ supplémentaire à la table sur
le côté « plusieurs » de cette relation. Dans ce cas, par exemple, vous ajoutez un nouveau champ  ; le
champ Réf de la table Clients , à la table Commandes et vous l'appelez Réf client. Access peut alors
utiliser le numéro de la Réf client dans la table Commandes pour rechercher le client approprié pour
chaque commande.

Relation plusieurs-à-plusieurs

Considérez la relation entre une table Produits et une table Commandes. Une commande peut
comprendre plusieurs produits. En revanche, un produit peut apparaître dans plusieurs commandes.
Ainsi, vous pouvez avoir plusieurs enregistrements dans la table Produits pour chaque
enregistrement de la table Commandes. En outre, vous pouvez avoir plusieurs enregistrements dans
la table Commandes pour chaque enregistrement dans la table Produits. Ce type de relation est
appelée relation plusieurs-à-plusieurs car vous pouvez avoir plusieurs enregistrements pour tout
produit, et plusieurs produits pour toute commande. Vous pouvez détecter les relations plusieurs-à-
plusieurs existantes entre les tables si vous prenez en considération les deux côtés de la relation.

Pour représenter une relation plusieurs-à-plusieurs, vous devez créer une troisième table, souvent
appelée une table de jonction, qui décompose la relation plusieurs-à-plusieurs dans deux relations
un-à-plusieurs. Vous devez ajouter la clé primaire de chacune des deux tables dans la troisième table.
Par conséquent, la troisième table enregistre chaque occurrence ou instance de cette relation. Par
exemple, la table Commandes et la table Produits ont une relation plusieurs-à-plusieurs qui est
définie en créant deux relations un-à-plusieurs avec la table Détails commande. Une commande peut
porter sur plusieurs produits et chaque produit peut apparaître dans plusieurs commandes.

Relation un-à-un

Dans une relation un-à-un, chaque enregistrement de la première table ne comporte qu'un seul
enregistrement correspondant dans la deuxième table, et chaque enregistrement de cette deuxième
table ne comporte qu'un seul enregistrement correspondant dans la première table. Ce type de
relation n'est pas courant sachant que les informations ainsi liées sont en général stockées dans la
même table. Vous pouvez utiliser une relation un-à-un pour diviser une table à plusieurs champs,
pour isoler une partie d'une table pour des raisons de sécurité, ou pour stocker des informations ne
s'appliquant qu'à un sous-ensemble de la table principale. Lorsque vous identifiez une telle relation,
les deux tables doivent partager un champ commun.

Pourquoi créer des relations entre les tables ?

Vous pouvez explicitement créer des relations entre tables en utilisant la fenêtre Relations, ou en
faisant glisser un champ depuis le volet Liste de champs.Office Access 2007 a recours aux relations
entre les tables pour joindre les tables dont vous avez besoin dans un objet de base de données. Il
existe plusieurs raisons pour créer des relations entre tables avant de créer d'autres objets de base
de données, tels que des formulaires, des requêtes et des états.

Les relations entre tables renseignent les structures de requêtes

Pour utiliser des enregistrements issus de plusieurs tables, vous devez souvent créer une requête qui
joint les tables. La requête fonctionne en faisant correspondre les valeurs de la clé primaire dans la
première table avec une clé étrangère dans la deuxième table. Par exemple, pour renvoyer les lignes
qui répertorient toutes les commandes pour chaque client, vous devez créer une requête qui joint la
table Clients à la table Commandes en fonction du champ Réf client. Dans la fenêtre Relations, vous
pouvez préciser manuellement les champs à joindre. Néanmoins, si la relation est déjà définie entre
les tables, Office Access 2007 fournit la jointure par défaut, en fonction de la relation existante entre
tables. En outre, si vous utilisez l'un des Assistants Requête, Access exploite les informations des
relations entre tables que vous avez déjà définies pour vous proposer plusieurs choix pertinents et
pour renseigner au préalable les paramètres de propriété avec les valeurs par défaut appropriées.

Les relations entre tables renseignent les structures de formulaires et d'états

Lorsque vous concevez un formulaire ou un état, Office Access 2007 exploite les informations des
relations entre tables que vous avez déjà définies pour vous proposer plusieurs choix pertinents et
pour renseigner au préalable les paramètres de propriété avec les valeurs par défaut appropriées.

Les relations entre tables vous permettent d'appliquer l'intégrité référentielle pour éviter les
enregistrements orphelins dans votre base de données. Un enregistrement orphelin est un
enregistrement qui fait référence à un autre enregistrement qui n'existe pas   ; par exemple un
enregistrement de commande qui fait référence à un enregistrement de client non existant.

Lorsque vous créez une base de données, vous divisez les informations entre plusieurs tables, dont
chacune comporte une clé primaire. Vous ajoutez alors des clés étrangères aux tables liées qui font
référence à ces clés primaires. Ces paires de clés représentent la base des relations entre tables et
des requêtes à plusieurs tables. Par conséquent, il est important que ces références de clés
primaires-étrangères demeurent synchronisées. L'intégrité référentielle permet de synchroniser les
références ; elle dépend des relations entre tables.

Comprendre l'intégrité référentielle

Lorsque vous créez une base de données, vous divisez vos informations en plusieurs tables en
fonction de leurs sujets pour réduire la redondance de données. Vous configurez alors Office Access
2007 de manière à rassembler les données en plaçant les champs courants dans les tables liées. Par
exemple, pour représenter une relation un-à-plusieurs, vous prenez la clé primaire de la table
« une », et vous l'ajoutez comme champ supplémentaire à la table « plusieurs ». Pour rassembler les
données, Access prend la valeur de la table « plusieurs » et recherche la valeur correspondante dans
la table « une ». Ainsi, les valeurs de la table « plusieurs » font référence aux valeurs
correspondantes dans la table « une ».

Imaginons que vous ayez une relation un-à-plusieurs entre les tables Expéditeurs et Commandes et
que vous souhaitiez supprimer une table Expéditeur. Si l'expéditeur à supprimer comporte des
commandes dans la table Commandes, celles-ci deviennent « orphelines » dès lors que vous
supprimez l'enregistrement Expéditeur. Ceci dit, les commandes comprennent une référence de
l'expéditeur, sans qu'elle ne soit valide pour autant, car l'enregistrement référencé n'existe plus.

L'intégrité référentielle consiste à empêcher les orphelins et à synchroniser les références pour éviter
que cette situation hypothétique ne se produise.

Vous appliquez l'intégrité référentielle en l'activant pour une relation entre tables (voir Appliquer
l'intégrité référentielle pour obtenir des instructions détaillées). Une fois cette intégrité appliquée,
Access bloque toute opération susceptible de l'enfreindre. En d'autres termes, Access bloque les
mises à jour qui modifient la cible d'une référence, et les suppressions qui l'éliminent. Cependant,
une modification de clé primaire pour un expéditeur dans la table Commandes peut s'avérer
totalement justifiée. Dans ces cas de figure, vous souhaitez qu'Access mette automatiquement à jour
toutes les lignes concernées dans le cadre d'une seule opération. Ainsi, Access assure une mise à jour
complète évitant toute incohérence dans votre base de données, avec certaines lignes mises à jour et
d'autres pas. Pour cette raison, Access prend en charge l'option Mettre à jour en cascade les champs
correspondants. Lorsque vous appliquez l'intégrité référentielle, que vous choisissez l'option Mettre
à jour en cascade les champs correspondants, et que vous mettez à jour une clé primaire, Access met
automatiquement à jour tous les champs qui référencent la clé primaire.

Il se peut que vous ayez besoin de supprimer une ligne et tous ses enregistrements associés  ; par
exemple, un enregistrement Expéditeur et toutes ses commandes associées. C'est pourquoi, Access
prend en charge l'option Effacer en cascade les enregistrements correspondants. Lorsque vous
appliquez l'intégrité référentielle, que vous choisissez l'option Effacer en cascade les enregistrements
correspondants, que vous supprimez un enregistrement sur le côté de la clé primaire de la relation,
Access supprime automatiquement tous les enregistrements qui référencent la clé primaire.

Afficher les relations entre les tables


Pour afficher les relations entre tables, cliquez sur Relations dans l'onglet Outils de base de données.
La fenêtre Relations s'ouvre et affiche toutes les relations existantes. Si aucune relation entre tables
n'a encore été définie et si vous ouvrez la fenêtre Relations pour la première fois, Access vous invite à
ajouter une table ou une requête à cette fenêtre.

Ouvrir la fenêtre Relations

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

Si la base de données contient des relations, la fenêtre Relations apparaît. Si la base de données ne
contient aucune relation et si vous ouvrez la fenêtre Relations pour la première fois, la boîte de
dialogue Afficher la table apparaît. Cliquez sur Fermer pour fermer la boîte de dialogue.

Sous l'onglet Créer, dans le groupe Relations, cliquez sur Afficher toutes les relations.

C'est ainsi que sont affichées toutes les relations définies dans la base de données. Notez que les
tables masquées (tables dont la case à cocher Masqué dans la boîte de dialogue Propriétés de la
table est activée) et leurs relations ne sont pas affichées, à moins que la case à cocher Afficher les
objets masqués ne soit activée dans la boîte de dialogue Options de navigation.

Pour plus d'informations sur l'option Afficher les objets masqués, voir l'article Guide pour les
relations entre tables.

Clé primaire

Cette ligne représente la relation

Clé étrangère
Une relation entre tables est représentée par une ligne de relation tracée entre les tables dans la
fenêtre Relations. Une relation, qui n'applique pas d'intégrité référentielle, s'affiche tel un trait fin
entre les champs communs prenant en charge la relation. Lorsque vous sélectionnez la relation en
cliquant sur son trait, celui-ci s'épaissit pour indiquer qu'il est sélectionné. Si vous appliquez
l'intégrité référentielle pour cette relation, le trait s'épaissit à chaque extrémité. En outre, le chiffre 1
s'affiche sur la section épaisse du trait sur un côté de la relation, alors que le symbole infini (∞)
s'affiche au-dessus de la partie épaisse du trait de l'autre côté.

Vous pouvez choisir parmi les commandes suivantes du ruban lorsque la fenêtre Relations est active :

Dans l'onglet Créer, du groupe Outils :

Modifier des relations  Ouvre la boîte de dialogue Modifier des relations. Lorsque vous sélectionnez
une ligne de relation, vous pouvez cliquer sur Modifier des relations pour modifier la relation entre
tables. Vous pouvez également double-cliquer sur la ligne de relation.

Effacer la mise en page  Supprime l'affichage de toutes les tables et relations dans la fenêtre
Relations. Notez que cette commande ne masque que les tables et les relations  ; elle ne les supprime
pas.

Rapport de relations  Crée un rapport qui affiche les tables et les relations dans la base de données.
Ce rapport n'affiche que les tables et les relations qui ne sont pas masquées dans la fenêtre
Relations.

Dans l'onglet Créer, du groupe Relations :

Afficher la table  Ouvre la boîte de dialogue Afficher la table afin que vous puissiez sélectionner des
tables et des requêtes pour un affichage dans la fenêtre Relations.

Masquer la table  Masque la table sélectionnée dans la fenêtre Relations.

Afficher les relations directes  Affiche toutes les relations et les tables liées pour la table sélectionnée
dans la fenêtre Relations, si elle ne sont pas déjà affichées.

Toutes les relations  Affiche toutes les relations et les tables liées dans la base de données pour la
fenêtre Relations. Notez que les tables masquées (tables dont la case à cocher Masqué dans la boîte
de dialogue Propriétés de la table est activée) et leurs relations ne sont pas affichées, à moins que la
case à cocher Afficher les objets masqués ne soit activée dans la boîte de dialogue Options de
navigation.

Pour plus d'informations sur l'option Afficher les tables masquées, voir l'article Guide pour le volet de
navigation.

Fermer  Ferme la fenêtre Relations. Si vous avez apporté des modifications à la mise en page de la
fenêtre Relations, le système vous invite à les enregistrer.

 Haut de la page

Créer une relation entre tables


Vous pouvez créer une relation entre tables en utilisant la fenêtre Relations, ou en faisant glisser un
champ sur une feuille de données depuis le volet Liste de 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. En revanche, les champs communs doivent avoir le même type de données.
Cependant, si le champ de clé primaire est un champ NuméroAuto, le 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 propriété
TailleChamp.

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

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

Si vous n'avez encore défini de relations, la boîte de dialogue Afficher la table s'affiche
automatiquement. Si tel n'est pas le cas, sous l'onglet Créer, du groupe Relations, cliquez sur Afficher
la table.

La boîte de dialogue Afficher la table affiche toutes les tables et requêtes de la base de données. Pour
n'afficher que les tables, cliquez sur Tables. Pour n'afficher que les requêtes, cliquez sur Requêtes.
Pour afficher les tables et les requêtes, cliquez sur Les deux.

Sélectionnez plusieurs tables ou requêtes, puis cliquez sur Ajouter. Après avoir ajouté les tables et les
requêtes à la fenêtre Relations, cliquez sur Fermer.

Faites glisser un champ (généralement une clé primaire) d'une table au 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.

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

Pour appliquer l'intégrité référentielle pour 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 les sections
Comprendre l'intégrité référentielle et Appliquer l'intégrité référentielle.

Cliquez sur Créer.


La ligne de relation est tracée entre les deux tables. Si vous avez activé la case à cocher Appliquer
l'intégrité référentielle, le trait s'épaissit à chaque extrémité. En outre, à condition d'avoir coché la
case à cocher Appliquer l'intégrité référentielle, le chiffre 1 s'affiche sur la section épaisse du trait sur
un côté de la relation, alors que le symbole infini (∞) s'affiche au-dessus de la partie épaisse du trait
de l'autre côté.

 Remarques 

Pour créer une relation un-à-un  Les deux champs communs (généralement, la clé primaire et la clé
étrangère) doivent comporter un index unique. En d'autres termes, la propriété Indexé de ces
champs doit être définie sur la valeur Oui (sans doublon). Si ces deux champs ont un index unique,
Access crée une relation un-à-un.

Pour créer une relation un-à-plusieurs  Le champ sur le 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
être définie sur la valeur Oui (sans doublon). Le champ sur le côté « plusieurs » ne doit pas avoir
d'index unique. Il peut avoir un index, mais les doublons doivent être autorisés. En d'autres termes,
la propriété Indexé de ce champ doit être définie sur la valeur Non, ou Oui (avec doublons).
Lorsqu'un champ a un index unique et que l'autre n'en a pas, Access crée une relation un-à-plusieurs.

Créer une relation entre tables avec le volet Liste de champs

Dans Office Access 2007, 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 liées, ainsi que les champs disponibles dans d'autres
tables. 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 cible du champ. Cette relation 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 entre tables.

Ouvrir une table en mode Feuille de données


Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Dans le volet de navigation, cliquez avec le bouton droit sur la table à laquelle vous souhaitez ajouter
le champ, créez la relation, puis cliquez sur Mode Feuille de données dans le menu contextuel.

Ouvrir le volet Liste de champs

Sous l'onglet Feuille de données, dans le groupe Champs et colonnes, cliquez sur Ajouter des champs
existants.

Le volet Liste de champs apparaît.

Le volet Liste de champs affiche toutes les autres tables de la base de données, regroupées en
catégories. Lorsque vous ouvrez une table en mode Feuille de données, les champs de l'une des deux
catégories suivantes s'affichent 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 fournit la liste de
toutes les tables en relation avec la table en cours d'utilisation, tandis que la seconde fournit la liste
de toutes les tables qui ne sont pas liées à votre table.

Dans le volet Liste de champs, cliquez sur le signe plus (+) en regard du nom d'une table pour afficher
la liste des champs disponibles. 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

Sous l'onglet Feuille de données, dans le groupe Champs et colonnes, cliquez sur Ajouter des champs
existants.

Le volet Liste de champs apparaît.

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.

Faites glisser le champ de votre choix du volet Liste de champs vers la table ouverte en mode Feuille
de données.

Lorsque la ligne d'insertion apparaît, déposez le champ à l'endroit voulu.


L'Assistant Liste de choix démarre.

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 cible du champ. Cette relation 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 entre les tables.

 Haut de la page

Supprimer une relation entre les tables

Pour supprimer une relation entre les tables, vous devez supprimer la ligne de relation dans la
fenêtre Relations. Positionnez avec soin le curseur de sorte 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. Une fois la
ligne de relation sélectionnée, appuyez sur SUPPR. Notez que 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.

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

La fenêtre Relations s'affiche.

Si vous n'avez encore défini de relation et si vous ouvrez la fenêtre Relations pour la première fois, la
boîte de dialogue Afficher la table apparaît. Si la boîte de dialogue s'affiche, cliquez sur Fermer.

Sous l'onglet Créer, dans le groupe Relations, cliquez sur Afficher toutes les relations.

Toutes les tables avec des relations sont affichées, elles illustrent des lignes de relation.

Cliquez sur la ligne de relation pour la relation à supprimer. Cette ligne de relation est plus épaisse
lorsqu'elle est sélectionnée.

Appuyez sur la touche SUPPR.

- ou -
Cliquez avec le bouton droit, puis cliquez sur SUPPR.

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 un autre
processus, soit dans un objet de base de données ouvert (tel qu'un formulaire), vous ne pouvez pas
supprimer la relation. Vous devez d'abord fermer tous les objets ouverts qui utilisent ces tables avant
de supprimer la relation.

Modifier une relation entre les tables

Vous modifiez une relation entre les tables en la sélectionnant au préalable dans la fenêtre Relations.
Positionnez avec soin le curseur de sorte 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. Une fois la ligne de relation
sélectionnée, double-cliquez dessus ou cliquez sur Modifier des relations dans le groupe Outils de
l'onglet Créer. La boîte de dialogue Modifier des relations s'affiche.

Apporter vos modifications dans la boîte de dialogue Modifier des relations

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

La fenêtre Relations s'affiche.

Si vous n'avez encore défini de relation et si vous ouvrez la fenêtre Relations pour la première fois, la
boîte de dialogue Afficher la table apparaît. Si la boîte de dialogue s'affiche, cliquez sur Fermer.

Sous l'onglet Créer, dans le groupe Relations, cliquez sur Afficher 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.

Pour plus d'informations sur l'option Afficher les objets masqués, voir l'article Guide pour le volet de
navigation.

Cliquez sur la ligne de relation pour la relation à modifier. Cette ligne de relation est plus épaisse
lorsqu'elle est sélectionnée.
Double-cliquez sur la ligne de relation.

- 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.

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, requêtes ou champs de chaque côté de la relation. 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, avant de créer une requête
utilisant ces 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 depuis 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 être 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. Par exemple,
prenez en considération une requête qui joint la table Clients à la table Commandes sur les champs
communs qui représentent la Réf 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.

Ceci 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 d'une jointure interne en jointure externe
gauche. Une jointure externe gauche renvoie toutes les lignes de gauche et les lignes
correspondantes sur la table de droite. 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 » se réfèrent à l'emplacement des tables
dans la boîte de dialogue Modifier des relations, et non dans la fenêtre Relations.

Considérez le résultat que vous souhaitez le plus souvent obtenir d'une requête, qui joint les tables
dans cette relation, puis définissez le type de jointure en connaissance de cause.

Définir le type de jointure

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

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

Cliquez sur votre choix, puis cliquez 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 comprises pour chaque table.

Jointure
Choix relationnelle Table de gauche Table de droite

1. Inclure seulement les lignes des deux Jointure Lignes Lignes


tables pour lesquelles les champs joints sont interne correspondantes correspondantes
égaux.

2. Inclure TOUS les enregistrements de la Jointure Toutes les lignes Lignes


table Clients et seulement ceux de la table externe correspondantes
Commandes pour lesquels les champs joints gauche
sont égaux.

3. Inclure TOUS les enregistrements de la Jointure Lignes Toutes les lignes


table Commandes et seulement ceux de la externe droite correspondantes
table Clients pour lesquels les champs joints
sont égaux.

Lorsque votre choix porte sur la deuxième ou troisième option 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 n'affiche que les lignes
correspondantes.

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

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

La fenêtre Relations s'affiche.

Si vous n'avez encore défini de relation et si vous ouvrez la fenêtre Relations pour la première fois, la
boîte de dialogue Afficher la table apparaît. Si la boîte de dialogue s'affiche, cliquez sur Fermer.

Sous l'onglet Créer, dans le groupe Relations, cliquez sur Afficher 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.

Pour plus d'informations sur l'option Afficher les objets masqués, voir l'article Guide pour le volet de
navigation.

Cliquez sur la ligne de relation pour la relation à modifier. Cette ligne de relation est plus épaisse
lorsqu'elle est sélectionnée.

Double-cliquez sur la ligne de relation.

- 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.

Cliquez sur Type jointure

Dans la boîte de dialogue Propriétés de la jointure, cliquez sur une option, puis cliquez sur OK.
Effectuez les modifications supplémentaires dans la relation, puis cliquez sur OK.

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

L'intégrité référentielle permet d'éviter les enregistrements orphelins et de synchroniser les


références pour éviter les enregistrements qui 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 cette intégrité
appliquée, Access bloque toute opération susceptible de l'enfreindre. En d'autres termes, Access
bloque les mises à jour qui modifient la cible d'une référence, et les suppressions qui l'éliminent.
Pour qu'Access propage les mises à jour et les suppressions référentielles, afin que toutes les lignes
liées soient modifiées en conséquence, voir la section Définir les options en cascade.

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

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

La fenêtre Relations s'affiche.

Si vous n'avez encore défini de relation et si vous ouvrez la fenêtre Relations pour la première fois, la
boîte de dialogue Afficher la table apparaît. Si la boîte de dialogue s'affiche, cliquez sur Fermer.

Sous l'onglet Créer, dans le groupe Relations, cliquez sur Afficher 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.

Pour plus d'informations sur l'option Afficher les objets masqués, voir l'article Guide pour le volet de
navigation.
Cliquez sur la ligne de relation pour la relation à modifier. Cette ligne de relation est plus épaisse
lorsqu'elle est sélectionnée.

Double-cliquez sur la ligne de relation.

- 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.

Activez la case à cocher Appliquer l'intégrité référentielle.

Effectuez les modifications supplémentaires dans la relation, puis cliquez sur OK.

Après avoir appliqué l'intégrité référentielle, les règles suivantes s'appliquent :

Vous ne pouvez pas entrer de valeur dans un champ de clé étrangère pour une table liée si cette
valeur n'existe pas dans le champ de clé primaire de la table primaire  , cette opération revient à créer
des enregistrements orphelins.

Vous ne pouvez pas supprimer d'enregistrements 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 ligne sont affectés à 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 l'application de l'intégrité référentielle vous pose des problèmes, notez que vous devez respecter
les conditions suivantes :

Le champ commun de la table primaire doit être une clé primaire ou posséder un index unique.

Les champs communs ont le même type de données, à l'exception du champ NuméroAuto que vous
pouvez lier à un champ numérique dont le paramétrage de propriété TailleChamp est Entier long.

Les deux tables doivent exister dans la même base de données Access. Vous ne pouvez pas appliquer
l'intégrité référentielle sur des tables liées. Cependant, si le format des tables source 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 qu'une modification de la valeur sur le côté « un » de la relation soit totalement
justifiée. Dans ce cas de figure, vous souhaitez qu'Access mette automatiquement à jour toutes les
lignes concernées dans le cadre d'une seule opération. Ainsi, Access assure une mise à jour complète
évitant toute incohérence dans votre base de données , avec certaines 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.

Il se peut que vous ayez besoin de supprimer une ligne et tous ses enregistrements associés  ; par
exemple, un enregistrement Expéditeur et toutes ses commandes associées. C'est pourquoi, Access
prend en charge l'option Effacer en cascade les enregistrements correspondants. Lorsque vous
appliquez l'intégrité référentielle, que vous choisissez l'option Effacer en cascade les enregistrements
correspondants, que vous supprimez un enregistrement sur le côté de la clé primaire de la relation,
Access supprime automatiquement tous les enregistrements qui référencent la clé primaire.

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

Cliquez sur le Bouton Microsoft Office , puis sur Ouvrir.

Dans la boîte de dialogue Ouvrir, sélectionnez et ouvrez la base de données.

Sous l'onglet Outils de base de données, dans le groupe Afficher/Masquer, cliquez sur Relations.

La fenêtre Relations s'affiche.

Si vous n'avez encore défini de relation et si vous ouvrez la fenêtre Relations pour la première fois, la
boîte de dialogue Afficher la table apparaît. Si la boîte de dialogue s'affiche, cliquez sur Fermer.

Sous l'onglet Créer, dans le groupe Relations, cliquez sur Afficher 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.

Pour plus d'informations sur l'option Afficher les objets masqués, voir Guide pour le volet de
navigation.

Cliquez sur la ligne de relation pour la relation à modifier. Cette ligne de relation est plus épaisse
lorsqu'elle est sélectionnée.

Double-cliquez sur la ligne de relation.


- 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.

Activez la case à cocher Appliquer l'intégrité référentielle.

Activez la case à cocher Mettre à jour en cascade les champs correspondants ou Effacer en cascade
les enregistrements correspondants, ou activez les deux.

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 changer les
valeurs d'un champ de type NuméroAuto.