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.

Un des objectifs de conception appropriée de base de données consiste à supprimer les données redondantes (doublons). Pour ce faire, vous divisez vos données en nombre de tables par sujet afin que chaque fait est représenté qu’une seule fois. Vous puis fournissez un accès moyen permettant de rassembler les informations divisées — pour ce faire, insérez les champs communs dans les tables liées. Pour cette étape correctement, cependant, vous devez tout d’abord comprendre les relations entre les tables et puis spécifier ces relations dans votre base de données.

Pour plus d’informations, voir l’article Concepts de base de création de base de données.

Cet article n’aborde pas les relations dans une base de données web. Bases de données Web ne prennent pas en charge la fenêtre Relations. Champs de recherche vous permet de créer des relations dans une base de données web. Pour plus d’informations, voir l’article créer une base de données à partager sur le Web.

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 de table

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éé un tableau pour chaque objet dans votre base de données, vous devez fournir Access avec les moyens par lesquels renvoyer ces informations en cas de besoin. Pour cela en plaçant les champs communs dans les tables sont associées et en définissant des relations entre vos tables. Vous pouvez ensuite créer des requêtes, formulaires et rapports qui affichent des informations provenant de plusieurs tables en même temps. Par exemple, le formulaire illustré ici inclut les informations provenant 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.

  • Relation un-à-plusieurs

    Pensez à une commande de suivi de base de données contenant une table Customers et une table Orders. Un client peut passer n’importe quel nombre de commandes. Il suit pour tout client représenté dans la table clients, il peut y avoir plusieurs commandes représentées dans la table Orders. La relation entre la table Customers et la table Orders est, par conséquent, une relation un-à-plusieurs.

    Pour représenter une relation un-à-plusieurs dans votre conception de base de données, prenez la clé primaire sur le côté « un » de la relation et ajoutez-la comme un ou plusieurs champs supplémentaires à la table du côté « plusieurs » de la relation. Dans ce cas, par exemple, vous ajoutez un nouveau champ, le champ ID de la table clients, à la table commandes et nommez-la Réf client. Access peut utiliser ensuite le numéro d’identification de client dans la table commandes pour rechercher le client approprié pour chaque commande.

  • Relation plusieurs-à-plusieurs

    Considérez la relation entre une table de produits et une table Orders. Une seule commande peut inclure plusieurs produits. En revanche, un seul produit peut apparaître dans plusieurs commandes. Par conséquent, vous pouvez avoir plusieurs enregistrements dans la table produits pour chaque enregistrement dans la table Orders. En outre, vous pouvez avoir plusieurs enregistrements dans la table commandes pour chaque enregistrement dans la table produits. Ce type de relation est appelé une relation plusieurs-à-plusieurs, car pour n’importe quel produit, il peut y avoir plusieurs commandes et, pour n’importe quel ordre, il peut y avoir plusieurs produits. Notez que pour détecter les relations plusieurs-à-plusieurs existantes entre vos tables, il est important de tenir compte des 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 dans la première table peut avoir qu’un seul enregistrement correspondant dans la deuxième table et chaque enregistrement dans la deuxième table peut avoir qu’un seul enregistrement correspondant dans la première table. Ce type de relation n’est pas commun, car le plus souvent, les informations associées de cette manière sont stockées dans la même table. Vous utilisez une relation pour diviser une table en plusieurs champs, pour isoler une partie d’un tableau pour des raisons de sécurité, ou pour stocker des informations qui s’applique uniquement à un sous-ensemble de la table principale. Lorsque vous identifiez une telle relation, les deux tables doivent partager un champ commun.

Haut de la Page

Pourquoi créer des relations entre les tables ?

Vous pouvez créer des relations entre les tables explicitement à l’aide de la fenêtre Relations, ou en faisant glisser un champ à partir du volet Liste de champs. Access utilise les relations de table pour savoir comment relier des tables lorsque vous avez besoin de les utiliser dans un objet de base de données. Il existe plusieurs raisons Pourquoi créer des relations entre les tables avant de créer d’autres objets de base de données, tels que les formulaires, les requêtes et les États.

  • Les relations entre tables renseignent les structures de requêtes

    Pour travailler avec les enregistrements à partir de plusieurs tables, vous devez souvent créer une requête qui joint les tables. La requête fonctionne par les valeurs correspondantes dans le champ de clé primaire de la première table avec un champ de clé étrangère dans la deuxième table. Par exemple, pour renvoyer les lignes qui répertorient toutes les commandes pour chaque client, créer une requête qui joint la table clients avec la table Orders en fonction du champ Réf consommateur. Dans la fenêtre Relations, vous pouvez spécifier manuellement les champs à joindre. Toutefois, si vous disposez déjà d’une relation définie entre les tables, Access fournit la jointure par défaut, basée sur existantes la relation de table. En outre, si vous utilisez un des Assistants requête, Access utilise les informations collectées à partir de relations entre les tables que vous avez déjà défini pour vous proposer plusieurs choix pertinents et pour renseigner les paramètres de propriété avec les valeurs par défaut appropriées au.

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

    Lorsque vous créez un formulaire ou un état, Access utilise les informations collectées à partir de relations entre les tables que vous avez déjà défini pour vous proposer plusieurs choix pertinents et pour renseigner les paramètres de propriété avec les valeurs par défaut appropriées au.

  • 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 concevez une base de données, vous divisez vos informations en tables, chacun d'entre eux possède une clé primaire. Puis, vous ajoutez des clés étrangères dans les tables liées qui font référence à ces clés primaires. Ces paires de clés primaires-étrangères en conservant la base des relations entre les tables et requêtes à plusieurs tables. Par conséquent, il est important que ces clé étrangère de clé primaire reste synchronisé. L’intégrité référentielle permet de garantir que synchroniser les références dépend de relations entre les tables.

Haut de la Page

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

Lorsque vous concevez une base de données, vous divisez vos informations en plusieurs tables basée sur l’objet pour réduire la redondance des données. Vous puis fournissez un accès moyen à rassembler les données sauvegarder ensemble en plaçant les champs communs dans les tables liées. Par exemple, pour représenter une relation un-à-plusieurs vous prenez la clé primaire de la table « un » et 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 « un ». De cette façon les valeurs de la table « plusieurs » fait référence aux valeurs correspondantes dans la table « un ».

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 étape par étape). Une fois appliquée, Access bloque toute opération qui enfreint l’intégrité référentielle à cette relation de table. Cela signifie que Access bloque les mises à jour qui modifient la cible d’une référence et les suppressions qui suppriment la cible d’une référence. Toutefois, il est possible que vous deviez parfaitement besoin de modifier la clé primaire pour un expéditeur qui comporte des commandes dans la table Orders. Dans ce cas, vous avez vraiment besoin est pour l’accès à mettre à jour automatiquement toutes les lignes concernées dans le cadre d’une seule opération. Ainsi, Access garantit que la mise à jour est entièrement terminée afin que votre base de données n’est pas laissé dans un état n’est pas cohérente, avec certaines lignes mises à jour et d’autres pas. C’est pourquoi Access prend en charge l’option de mise à jour en Cascade les champs correspondants. Lorsque vous appliquez l’intégrité référentielle et choisissez l’option Mettre à jour en Cascade les champs correspondants et vous mettre à jour une clé primaire, Access met automatiquement à jour tous les champs qui font référence à la clé primaire.

Il est également possible que vous pouvez avoir besoin de supprimer une ligne et tous les enregistrements correspondants, par exemple, un enregistrement expéditeur et toutes ses commandes associées à cet expéditeur. Pour cette raison, Access prend en charge l’option Effacer en Cascade les enregistrements correspondants. Lorsque vous appliquez l’intégrité référentielle, sélectionnez l’option Effacer en Cascade les enregistrements correspondants, et que vous supprimez un enregistrement sur le côté 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’ont encore été définies et que vous ouvrez la fenêtre Relations pour la première fois, Access vous invite à ajouter une table ou une requête à la fenêtre.

Ouvrir la fenêtre Relations

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

  4. Si la base de données contient des relations, la fenêtre Relations s’affiche. Si la base de données ne contient pas des relations et si vous ouvrez la fenêtre Relations pour la première fois, la boîte de dialogue Afficher la Table s’affiche. Cliquez sur Fermer pour fermer la boîte de dialogue.

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

    Cette opération affiche toutes les relations définies dans votre base de données. Notez que les tables masquées (tables dont la masqué case à cocher 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 est sélectionnée dans la Navigation Options boîte de dialogue.

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

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

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

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

  1. 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    Les deux champs communs (généralement la clé primaire et champs de clé étrangère) doivent avoir un index unique. Cela signifie que la propriété indexé pour ces champs doit être définie sur Oui (sans doublon). Si les deux champs ont un index unique, Access crée une relation.

    • Pour créer une relation un-à-plusieurs    Le champ du côté « un » (généralement la clé primaire) de la relation doit avoir un index unique. Cela signifie que la propriété indexé pour ce champ doit être définie sur Oui (sans doublon). Le champ du côté « plusieurs » doit pas avoir un index unique. Il peut avoir un index, mais il doivent avoir autorisé les doublons. Cela signifie que la propriété indexé pour ce champ doit indiquer nonou Oui (doublons OK). Lorsqu’un champ a un index unique et l’autre n’est pas le cas, 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 qui est ouverte en mode feuille de données en le faisant glisser à partir du volet Liste de champs. Le volet Liste de champs affiche les champs disponibles dans les tables liées et que les champs disponible dans les autres tables. Lorsque vous faites glisser un champ à partir d’un tableau « autre » (non lié), puis terminez l’Assistant liste de choix, une nouvelle relation un-à-plusieurs est automatiquement créée entre la table dans le volet Liste de champs et la table à 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 appliquer l’intégrité référentielle, vous devez modifier la relation. Voir la section Modifier une relation entre tables pour plus d’informations.

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.

La Liste de champs volet affiche toutes les autres tables dans votre base de données, regroupées en catégories. Lorsque vous travaillez avec une table en mode feuille de données, Access affiche les champs dans 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 ayant une relation avec la table que vous travaillez actuellement. La deuxième catégorie répertorie toutes les tables avec lesquels votre tableau n’a pas de 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. 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 à partir d’un tableau « autre » (non lié), puis terminez l’Assistant liste de choix, une nouvelle relation un-à-plusieurs est automatiquement créée entre la table dans la Liste de champs et la table à 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 appliquer l’intégrité référentielle, vous devez modifier la relation. Voir la section Modifier une relation entre tables pour plus d’informations.

Haut de la Page

Supprimer une relation entre tables

Pour supprimer une relation entre 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. La ligne de relation épaisse lorsqu’elle est sélectionnée. La ligne de relation sélectionnée, appuyez sur SUPPR. Notez que lorsque vous supprimez une relation, vous supprimez également prise en charge de l’intégrité référentielle pour cette relation, s’il est activé. Par conséquent, Access empêchera n’est plus automatiquement la création d’enregistrements orphelins sur le 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 des relations et il s’agit de la première fois que vous ouvrez la fenêtre Relations, la boîte de dialogue Afficher la Table s’affiche. Si la boîte de dialogue s’affiche, cliquez sur Fermer.

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

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

  2. Appuyez sur la touche Suppr.

    –ou–

Cliquez avec le bouton droit, puis cliquez sur Supprimer.

  1. 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 des relations et il s’agit de la première fois que vous ouvrez la fenêtre Relations, la boîte de dialogue Afficher la Table s’affiche. Si la boîte de dialogue s’affiche, cliquez sur Fermer.

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

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

  • Double-cliquez sur la ligne de relation.

  • Apporter les modifications, puis cliquez sur OK

    La boîte de dialogue Modifier des relations vous permet de modifier une relation entre tables. En particulier, vous pouvez modifier les tables ou requêtes sur chaque côté de la relation, ou les champs des deux côtés. Vous pouvez également définir le type de jointure, ou appliquer l’intégrité référentielle et choisissez une option en cascade. Pour plus d’informations sur le type de jointure et explique comment configurer, consultez la section définir le type de jointure. Pour plus d’informations sur la façon d’appliquer l’intégrité référentielle et choisissez 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 requête. Par exemple, si vous définissez une relation entre deux tables et vous puis créez une requête qui utilise ces tables, Access sélectionne automatiquement la valeur par défaut des champs en fonction des champs spécifiés dans la relation correspondants. Vous pouvez remplacer ces valeurs par défaut initiales dans votre requête, mais les valeurs fournies par la relation seront avèrent souvent pour être les bonnes. Étant correspondance et collecter des données provenant de plusieurs tables peuvent s’effectuer fréquemment dans tous les bases de données plus simples, définir les valeurs par défaut en créant des relations peut être Heure enregistrement et utiles.

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.

Un des valeurs que vous pouvez spécifier pour chaque relation est le type de jointure. Le type de jointure indique à Access les enregistrements à inclure dans les résultats d’une requête. Par exemple, vous pouvez à nouveau une requête qui joint la table clients et la table commandes dans les champs communs qui représentent la Réf client. Utilisez le type de jointure par défaut (appelé une jointure interne), la requête renvoie uniquement les lignes client et les lignes de l’ordre dans lequel 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, le type de jointure qu’ils utilisent, et si toutes les lignes ou les lignes correspondantes sont inclus 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 des relations et il s’agit de la première fois que vous ouvrez la fenêtre Relations, la boîte de dialogue Afficher la Table s’affiche. Si la boîte de dialogue s’affiche, cliquez sur Fermer.

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

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

  • Double-cliquez sur la ligne de relation.

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

  1. Cliquez sur Type de jointure

  2. Dans la boîte de dialogue Propriétés de la jointure, cliquez sur une option, puis sur OK.

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

Haut de la Page

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

L’objectif de l’utilisation de l’intégrité référentielle consiste à éviter les enregistrements orphelins et à synchroniser les références afin que vous n’avez pas tous les enregistrements qui font 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 appliquée, Access bloque toute opération qui enfreint l’intégrité référentielle à cette relation de table. Access bloque les mises à jour qui modifient la cible d’une référence et les suppressions qui suppriment la cible d’une référence. Pour avoir accès propager suppressions et mises à jour référentielles afin que toutes les lignes associées sont modifiés en conséquence, 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’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 cela crée les enregistrements orphelins. Par exemple, vous ne pouvez pas modifier un numéro de commande dans la table Orders s’il existe des lignes de facturation affectées à cette commande dans la table Détails commande. Toutefois, vous pouvez mettre à jour un enregistrement primaire et tous les enregistrements correspondants en une seule opération en activant la case à cocher Mettre à jour en Cascade les champs correspondants.

    Remarques : Si vous avez des difficultés à activer l’intégrité référentielle, retenez que les conditions suivantes sont obligatoires pour appliquer l’intégrité référentielle :

    • 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. L’intégrité référentielle ne peut pas être appliquée sur des tables liées. Toutefois, si les tables source sont au format Access, vous pouvez ouvrir la base de données dans lequel ils sont stockés et activer l’intégrité référentielle dans cette base de données.

Définir les options en cascade

Vous pouvez rencontrer une situation dans laquelle vous avez besoin de modifier la valeur sur le côté « un » d’une relation. Dans ce cas, vous devez accéder à toutes les lignes concernées mettre à jour automatiquement dans le cadre d’une seule opération. De cette façon, la mise à jour est entièrement terminée afin que votre base de données n’est pas laissé dans un état n’est pas cohérente, avec certaines lignes mises à jour et d’autres pas. Access vous permet d’éviter ce problème en prenant en charge l’option de mise à jour en Cascade les champs correspondants. Lorsque vous appliquez l’intégrité référentielle et choisissez l’option Mettre à jour en Cascade les champs correspondants et vous mettre à jour une clé primaire, Access met automatiquement à jour tous les champs qui font référence à la clé primaire.

Vous devrez peut-être également supprimer une ligne et tous les enregistrements correspondants, par exemple, un enregistrement expéditeur et toutes ses commandes associées à cet expéditeur. Pour cette raison, Access prend en charge l’option Effacer en Cascade les enregistrements correspondants. Lorsque vous appliquez l’intégrité référentielle et choisissez l’option Effacer en Cascade les enregistrements correspondants, Access supprime automatiquement tous les enregistrements qui font référence à la clé primaire lorsque vous supprimez l’enregistrement qui contient 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. 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

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.

×