Guide pour les relations entre tables

Guide pour les relations entre tables

Remarque : Nous faisons de notre mieux pour vous fournir le contenu d’aide le plus récent aussi rapidement que possible dans votre langue. Cette page a été traduite automatiquement et peut donc contenir des erreurs grammaticales ou des imprécisions. Notre objectif est de faire en sorte que ce contenu vous soit utile. Pouvez-vous nous indiquer en bas de page si ces informations vous ont aidé ? Voici l’article en anglais à des fins de référence aisée.

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, de sorte que chaque ne soit représenté qu’une seule fois. Vous configurez ensuite 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.

Contenu de cet article

Introduction

Types de relations entre tables

Pourquoi créer des relations entre les tables ?

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

Afficher les relations entre les tables

Créer une relation entre tables

Supprimer une relation entre tables

Modifier une relation entre tables

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

Introduction

Après avoir créé une table pour chaque sujet de la base de données, vous devez donner les moyens à Access de renvoyer ces informations en cas de besoin. Pour ce faire, vous devez insérer des champs communs dans les tables liées et définir des 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 à la fois. Par exemple, le formulaire suivant comporte des informations issues de plusieurs tables :

Formulaire Commandes affichant des informations complémentaires provenant de cinq tables à la fois

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

2. ...de la table Commandes...

3. ...de la table Produits...

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

Le nom de client figurant dans la zone Facturer à provient de la table Clients, les valeurs de Réf commande et Date de commande sont issues de la table Commandes, le nom de produit est tiré de la table Produits, et les valeurs de Prix unitaire et Quantité ont pour origine 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 des 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 tables fonctionne en faisant correspondre les données de champs clés (il s’agit souvent de champs dont le nom est identique dans les deux tables). Dans la plupart des cas, ces champs correspondants constituent la clé primaire d’une table, qui fournit 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 tables entre les champs Réf employé des tables Employés et Commandes.

Utilisation du champ Réf employé comme clé primaire dans la table Employés et comme clé étrangère dans la table Commandes

1. Réf employé apparaît dans les deux tables, comme clé primaire...

2. ... et clé étrangère.

Haut de la page

Types de relations entre les tables

Il existe trois types de relations entre les tables dans Access.

  • Relation un-à-plusieurs

    Utilisons comme exemple une base de données de suivi des commandes qui comprend une table Clients et une table Commandes. Un client peut passer toutes les commandes qu’il souhaite. De ce fait, à chaque client représenté dans la table Clients peut correspondre un grand nombre de commandes dans la table Commandes. 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 du côté « un » de la relation et ajoutez-la comme champ supplémentaire à la table du côté « plusieurs » de cette relation. Dans ce cas, vous ajoutez par exemple un nouveau champ (le champ ID de la table Clients) à la table Commandes et vous l’appelez Réf client. Access peut alors utiliser le numéro Réf client dans la table Commandes pour rechercher le client approprié pour chaque commande.  

  • Relation plusieurs-à-plusieurs

    Examinons maintenant la relation entre une table Produits et une table Commandes. Une même commande peut porter sur plusieurs produits. D’un autre côté, un même produit peut figurer sur 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 de la table Produits. Cette relation est appelée relation plusieurs-à-plusieurs. Pour identifier les relations plusieurs-à-plusieurs existantes entre vos tables, il est important de prendre en compte 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 « table de jonction », qui décompose la relation plusieurs-à-plusieurs en deux relations un-à-plusieurs. Vous devez insérer la clé primaire de chacune des deux tables dans la troisième. 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 figurer sur plusieurs commandes.

  • Relation un-à-un

    Dans une relation un-à-un, chaque enregistrement de la première table ne peut avoir qu’un seul enregistrement correspondant dans la deuxième, et chaque enregistrement de la deuxième table ne peut avoir qu’un seul enregistrement correspondant dans la première. Cette relation n’est pas courante 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 contenant de nombreux champs, pour isoler une partie d’une table pour des raisons de sécurité, ou pour stocker des informations qui s’appliquent uniquement à un sous-ensemble de la table principale. Lorsque vous identifiez une relation de ce type, les deux tables doivent partager un champ commun.

Haut de la page

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. Access a recours aux relations entre les tables pour décider comment joindre des tables que vous avez besoin d’utiliser dans un objet de base de données. Vous avez tout intérêt à 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, et ce à plusieurs titres.

  • 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 du champ clé primaire de la première table avec un champ clé étrangère dans la deuxième. 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 spécifier manuellement les champs à joindre. Néanmoins, si la relation est déjà définie entre les tables, Access fournit la jointure par défaut, en fonction de la relation existante entre les 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, 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 servent de base à l’application de l’intégrité référentielle pour éviter la présence d’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 (p.ex., 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 répartissez 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 constituent la base des relations entre tables et des requêtes portant sur plusieurs tables. Il est important que ces références de clés primaires-étrangères restent synchronisées. L’intégrité référentielle, qui dépend des relations entre tables, permet d’assurer la synchronisation entre les références.

Haut de la page

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

Lorsque vous créez une base de données, vous répartissez vos informations de base de données entre plusieurs tables en fonction de leurs sujets pour réduire la redondance des données. Vous laissez alors Access rassembler les données en plaçant des champs communs 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 un expéditeur. Si l’expéditeur à supprimer présente des commandes dans la table Commandes, celles-ci deviennent « orphelines » dès lors que vous supprimez l’enregistrement de l’expéditeur. Ceci dit, la référence de l’expéditeur figurera toujours sur les commandes, mais elle ne sera plus valide, car l’enregistrement à laquelle elle fait référence n’existe plus.

L’intégrité référentielle consiste à empêcher les orphelins et à assurer la synchronisation des références pour éviter que cette situation hypothétique ne se présente.

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 qu’elle est appliquée, Access bloque toute opération qui enfreint cette intégrité. En d’autres termes, Access bloque les mises à jour qui modifient la cible d’une référence, et les suppressions qui l’éliminent. Une modification de clé primaire pour un expéditeur qui présente des commandes dans la table Commandes peut s’avérer totalement justifiée. En pareil cas, ce dont vous avez réellement besoin, c’est qu’Access mette automatiquement à jour toutes les lignes concernées en une seule et même opération. De cette manière, Access garantit l’exécution complète de la mise à jour afin d’éviter tout risque d’incohérence dans votre base de données, avec certaines lignes mises à jour et d’autres pas. C’est pour répondre à cet objectif qu’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, puis que vous mettez à jour une clé primaire, Access met automatiquement à jour tous les champs qui font référence à la clé primaire.

Il se peut également que vous ayez besoin de supprimer une ligne et tous ses enregistrements associés (p.ex., 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, que vous choisissez l’option Effacer en cascade les enregistrements correspondants, puis que vous supprimez un enregistrement du côté de la clé primaire de la relation, Access supprime automatiquement tous les enregistrements qui font référence à la clé primaire.

Haut de la page

Afficher les relations entre les tables

Pour afficher les relations entre les tables, cliquez sur Relations sous 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 été définie et que 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

  1. Cliquez sur Fichier, puis sur Ouvrir.

  2. Sélectionnez et ouvrez la base de données.

  3. Sous l’onglet Outils de base de données, dans le groupe Relations, 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.

  4. Sous l’onglet Création, dans le groupe Relations, cliquez sur Afficher toutes les relations.

    Toutes les relations définies dans la base de données s’affichent à l’écran. 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) et leurs relations ne sont pas affichées, à moins que la case à cocher Afficher les objets masqués soit activée dans la boîte de dialogue Options de navigation.

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

Lorsque la fenêtre Relations est active, vous pouvez sélectionner l’une des commandes suivantes sur le ruban :

Sous l’onglet Création, dans le 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 les tables. Vous pouvez également double-cliquer sur la ligne de relation.

  • Effacer la mise en page    Supprime l’affichage de toutes les tables et les 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.

Sous l’onglet Création, dans le 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 elles ne sont pas déjà affichées.

  • Toutes les relations    Affiche dans la fenêtre Relations toutes les relations et les tables liées dans la base de données. 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) et leurs relations ne sont pas affichées, à moins que la case à cocher Afficher les objets masqués soit activée dans la boîte de dialogue Options de navigation.

  • Fermer    Ferme la fenêtre Relations. Si vous avez apporté des modifications à la disposition 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 possèdent pas obligatoirement le même nom, bien qu’il en soit souvent ainsi. En revanche, ces champs doivent avoir le même type de données. Cependant, si le champ clé primaire est un champ NuméroAuto, le champ 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, leur propriété TailleChamp doit être définie de la même façon.

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

  1. Cliquez sur Fichier, puis sur Ouvrir.

  2. Sélectionnez et ouvrez la base de données.

  3. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.

  4. Si vous n’avez pas 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éation, dans le 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 afficher uniquement les tables, cliquez sur Tables. Pour afficher uniquement les requêtes, cliquez sur Requêtes. Pour afficher les tables et les requêtes, cliquez sur Les deux.

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

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

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

  8. 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, toujours à condition d’avoir coché la case à cocher Appliquer l’intégrité référentielle, le chiffre 1 s’affiche au-dessus de la section épaisse du trait d’un côté de la relation, et 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, 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.

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

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

  1. Sous l’onglet Fichier, cliquez sur Ouvrir.

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

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

Ouvrir le volet Liste de champs

  • Appuyez sur Alt+F8.

    Le volet Liste de champs s’affiche.

Le volet Liste de champs affiche toutes les autres tables de la base de données, regroupées par catégories. Lorsque vous ouvrez une table en mode Feuille de données, Access affiche les champs de l’une des deux catégories suivantes 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 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. Dans le volet Liste de champs, sous Champs disponibles dans les autres tables, cliquez sur le signe plus (+) en regard d’un nom de table pour afficher la liste des champs de la table.

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

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

    L’Assistant Liste de choix démarre.

  4. 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, une nouvelle relation un-à-plusieurs entre la table du volet Liste de champs et la table vers laquelle vous avez fait glisser le champ est créée automatiquement. 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 entre tables.

Haut de la page

Supprimer une relation entre tables

Pour supprimer une relation entre des 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 du côté « plusieurs » d’une relation.

  1. Sous l’onglet Outils de base de données, dans le groupe Relations, cliquez sur Relations.

    La fenêtre Relations s’affiche. Si vous n’avez pas 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 s’affiche. Si cette boîte de dialogue s’affiche, cliquez sur Fermer.

  2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Afficher toutes les relations.

    Toutes les tables ayant des relations sont affichées et présentent des lignes de relation.

  3. Cliquez sur la ligne de relation correspondant à la relation à supprimer. Cette ligne de relation est plus épaisse lorsqu’elle est sélectionnée.

  4. Appuyez sur la touche Suppr.

    –ou–

Cliquez avec le bouton droit, puis cliquez sur Supprimer.

  • 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 employées 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.

Haut de la page

Modifier une relation entre tables

Vous pouvez modifier une relation entre 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éation. La boîte de dialogue Modifier des relations s’affiche.

Apportez vos modifications dans 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.

    La fenêtre Relations s’affiche. Si vous n’avez pas 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 s’affiche. Si cette boîte de dialogue s’affiche, cliquez sur Fermer.

  2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Afficher toutes les relations.

    Toutes les tables ayant des relations sont affichées et présentent des lignes de relation.

  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.

  5. Apporter les 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 relatifs à la relation fournissent des indications sur 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 qui utilise 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 dans toutes les bases de données à l’exception des plus simples, la définition de valeurs par défaut reposant sur la création de relations peut vous faire gagner du temps et être bénéfique.

Une requête portant sur plusieurs tables combine des informations issues de plusieurs tables en faisant correspondre les valeurs de champs communs. La jointure consiste à faire correspondre et à combiner des valeurs. Imaginons, par exemple, que vous souhaitiez afficher des commandes client. Vous créez une requête qui joint la table Clients et la table Commandes dans le champ Réf client. Le résultat de la requête contient les informations sur le client et les commandes uniquement pour les lignes sur lesquelles existe 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. Reprenons pour exemple une requête qui joint la table Clients à la table Commandes sur les champs communs qui représentent 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 dont les champs communs (également appelés champs joints) sont égaux.

Toutefois, vous souhaitez 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 la table située du côté gauche de la relation et uniquement les lignes correspondantes de la table de droite. Une jointure externe droite renvoie toutes les lignes de droite et uniquement celles qui correspondent à 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 (en utilisant les tables Clients et Commandes) répertorie les trois choix affichés dans la boîte de dialogue Propriétés de la jointure, la jointure utilisée et indique si toutes les lignes ou les lignes correspondantes sont comprises pour chaque table.

Choix

Jointure relationnelle

Table de gauche

Table de droite

1. Inclure seulement les lignes des deux tables pour lesquelles les champs joints sont égaux.

Jointure interne

Lignes correspondantes

Lignes correspondantes

2. Inclure TOUS les enregistrements de la table Clients et seulement ceux de la table Commandes lorsque les champs joints sont égaux.

Jointure externe gauche

Toutes les lignes

Lignes correspondantes

3. Inclure TOUS les enregistrements de la table Commandes et seulement ceux de la table Clients lorsque les champs joints sont égaux.

Jointure externe droite

Lignes correspondantes

Toutes les lignes

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.

    La fenêtre Relations s’affiche. Si vous n’avez pas 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 s’affiche. Si cette boîte de dialogue s’affiche, cliquez sur Fermer.

  2. Sous l’onglet Création, dans le groupe Relations, cliquez sur Toutes les relations.

    Toutes les tables ayant des relations sont affichées et présentent des lignes de relation.

  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. Cliquez sur Type de jointure.

  6. Dans la boîte de dialogue Propriétés de la jointure, cliquez sur une option, puis 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 vise à empêcher que des enregistrements soient orphelins et à assurer une synchronisation permanente entre les références afin d’éviter que des enregistrements fassent référence à d’autres enregistrements 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, ainsi que les suppressions qui l’éliminent. Pour savoir comment propager les mises à jour et les suppressions référentielles de sorte que toutes les lignes liées soient modifiées en conséquence dans Access, voir la section Définir les options en cascade.

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

  1. Dans la fenêtre Relations, cliquez sur la ligne de relation correspondant à la relation à modifier. Cette ligne de relation est plus épaisse lorsqu’elle est sélectionnée.

  2. Double-cliquez sur la ligne de relation.

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

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

  2. Apportez éventuellement des modifications supplémentaires à 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 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). 

  • Vous ne pouvez pas supprimer d’enregistrements dans une table primaire s’il existe des enregistrements correspondants 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. Vous pouvez supprimer un enregistrement primaire ettous 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 crée des enregistrements orphelins. Par exemple, vous ne pouvez pas modifier un numéro de commande dans la table Commandes si des lignes sont affectées à cette commande dans la table Détails commande. Vous pouvez mettre à jour un enregistrement primaire et tous les enregistrements associés en une seule fois si vous avez activé 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 :

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

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

    • 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 à des tables liées. Cependant, si le format des tables sources est Access, vous pouvez ouvrir la base de données dans laquelle ces tables sont stockées et y appliquer l’intégrité référentielle.

Définir les options en cascade

Dans certains cas, une modification de la valeur du côté « un » d’une relation peut être totalement justifiée. En pareil cas, ce dont vous avez besoin, c’est qu’Access mette automatiquement à jour toutes les lignes concernées en une seule et même opération afin d’éviter tout risque d’incohérence dans votre base de données, avec certaines lignes mises à jour et d’autres pas. C’est pour répondre à cet objectif qu’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, puis que vous mettez à jour une clé primaire, Access met automatiquement à jour tous les champs qui font référence à la clé primaire. 

Il se peut que vous ayez besoin de supprimer une ligne et tous les enregistrements qui lui sont associés (p.ex., un enregistrement d’expéditeur et toutes les commandes qui lui sont associées). C’est pourquoi, Access prend en charge l’option Effacer en cascade les enregistrements correspondants. Si, après avoir appliqué l’intégrité référentielle et choisi l’option Effacer en cascade les enregistrements correspondants, vous supprimez l’enregistrement qui contient la clé primaire, Access supprime automatiquement tous les enregistrements qui font référence à la clé primaire. 

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

  1. Dans la fenêtre Relations, cliquez sur la ligne de relation correspondant à la relation à modifier. Cette ligne de relation est plus épaisse lorsqu’elle est sélectionnée.

  2. Double-cliquez sur la ligne de relation.

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

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

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

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

Remarque : Si la clé primaire est un champ de type NuméroAuto, il est inutile de cocher la case 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

Développez vos compétences dans Office
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×