Essayez !
La puissance d’une base de données relationnelle réside dans la combinaison des données de plusieurs tables. Pour parvenir à ce résultat, vous devez commencer par établir des relations entre vos tables. Access se charge ensuite de combiner les données de requêtes, formulaires et états.
Pour afficher toutes les relations existantes définies pour une base de données, vous devez ouvrir un modèle Access, accéder à l’onglet Outils de base de données, puis sélectionner Relations.
Remarque : Si vous ouvrez une base de données vide ou que vous n’avez pas défini de relation de table, Access vous invite à ajouter une table ou une requête. Avant d’ajouter une relation, vous avez besoin d’au moins deux tables. Dans l’idéal, vous devez commencer par créer toutes vos tables. Pour plus d’informations, voir Créer des relations à l’aide de l’Assistant Liste de choix et Créer des relations à l’aide du volet Relations.
Présentation de l’affichage Relations
Les lignes dans l’affichage Relations matérialisent les connexions entre les tables. Dans l’image suivante, la table de gauche est la table parent. La table de droite est la table enfant. La ligne entre les deux connecte les champs (dans ce cas, Réf commande et Réf produit) utilisés pour la mise en correspondance des données.
Les lignes et symboles indiquent la manière dont les tables sont liées :
-
Une ligne de connexion épaisse signifie que l’intégrité référentielle des données est appliquée. C’est parfait. Les données restent ainsi synchronisées.
-
Dans notre illustration, le nombre 1 indique qu’il ne peut y avoir qu’un seul enregistrement correspondant dans cette table. Dans la table Commandes affichée ici, un seul enregistrement correspond à chaque commande.
-
Le symbole ∞ indique que plusieurs enregistrements peuvent inclure la même référence. Dans la table Détails de la commande affichée ici, une commande (indiquée par sa référence de commande) peut apparaître plusieurs fois, puisque la même commande peut inclure plusieurs produits.
Types de relations entre les tables
Il existe trois types de relations entre les tables :
-
Un-à-un. Chaque élément dans chaque table n’apparaît qu’une fois. Par exemple, chaque employé ne peut utiliser qu’un véhicule de service. Pour plus d’informations, voir Créer des relations un-à-un.
-
Un-à-plusieurs. Un élément d’une table peut avoir une relation avec plusieurs éléments dans une autre table. Par exemple, chaque bon de commande peut inclure plusieurs produits.
-
Plusieurs-à-plusieurs. Un ou plusieurs éléments d’une table peut avoir une relation avec un ou plusieurs éléments dans une autre table. Par exemple, chaque commande peut inclure plusieurs produits, et chaque produit peut apparaître sur plusieurs commandes. Pour plus d’informations, voir Créer des relations plusieurs-à-plusieurs.
Relations un-à-plusieurs
Une des relations les plus courantes entre les tables dans les bases de données bien conçues est la relation un-à-plusieurs.
Les relations entre les tables s’appuient normalement sur la clé primaire dans une des tables. Rappelez-vous que la clé primaire est un identificateur unique (souvent numérique) pour chaque enregistrement. Pour montrer que les informations incluses dans deux tables différentes sont liées, vous créez généralement une relation à l’aide de la clé primaire d’une des tables.
Dans la relation affichée ici, par exemple, chaque personne de la table Contacts a un ID, qui est la clé primaire (indiquée par le symbole de clé à côté). Cet ID apparaît également dans le champ Propriétaire dans la table Biens. Pour envoyer un courrier électronique à la personne associée à un bien, obtenez la valeur dans le champ Adresse de courrier. Pour ce faire, recherchez la valeur dans le champ Propriétaire de la table Biens, puis recherchez cet ID dans la table Contacts. Le chiffre 1 à l'une des extrémités de la ligne de connexion et le symbole ∞ à l'autre extrémité indiquent qu'il s'agit d'une relation un-à-plusieurs, de sorte qu'un contact peut être associé à de nombreuses ressources.
Modifier une relation
Si vous modifiez une base de données existante ou si vous avez créé votre base de données à partir d’un modèle, vous pouvez modifier les relations existantes afin de répondre à vos besoins.
Remarque : Si les tables avec lesquelles vous voulez travailler sont en cours d’utilisation, vous devez commencer par les fermer, ainsi que tous les objets ouverts qui les utilisent.
-
Sélectionnez Outils de base de données > Relations.
-
Sélectionnez la ligne qui connecte les deux tables liées.
Conseil : Si vous ne voyez pas la relation souhaitée, dans l’onglet Création, dans le groupe Relations, sélectionnez Toutes les relations.
-
Dans l’onglet Création, sélectionnez Modifier les relations.
Table/Requête est la table parent de gauche (dans cet exemple, Clients).
Table/Requête liée est la table enfant (dans cet exemple, Commandes).
Même si les tables n'apparaissent pas dans cet ordre dans l'affichage Relations, leur position dans la boîte de dialogue indique le sens de la ligne qui les connecte et la relation. C'est important si, par exemple, il s'agit d'une relation un-à-plusieurs, car elle indique que la table de gauche est celle de gauche est celle de gauche (table parent) et la table de droite la table de droite la table « plusieurs » (table enfant).
-
Pour modifier les champs qui connectent les tables, sélectionnez un autre champ sous chaque table qui apparaît. Dans cet exemple, le champ Réf de la table Clients est connecté au champ Réf client dans la table Commandes.
-
Vous pouvez changer la façon dont Access synchronise vos données entre les tables.
Appliquer l’intégrité référentielle
Sélectionnez cette option pour éviter l’apparition de données non valides et maintenir la synchronisation des références au sein des relations entre les tables.
Par exemple, supposons que vous ayez une relation un-à-un entre les tables Employés et Avantages employé. Si un employé quitte l’entreprise et que vous le supprimez de votre table Employés, l’enregistrement d’employé lié dans la table Avantages employé est également supprimé.
Il peut arriver qu’il n’y ait aucune raison d’appliquer l’intégrité référentielle. Par exemple, supposons que vous ayez une relation un-à-plusieurs entre les tables Expéditeurs et Commandes. Vous supprimez un expéditeur, or cet expéditeur est mappé à des commandes dans la table Commandes. Ces commandes deviennent orphelines : elles incluent toujours une référence d’expéditeur, mais celle-ci n’est plus valide, car l’enregistrement auquel elle fait référence n’existe plus.
Mettre à jour en cascade les champs correspondants
Sélectionnez cette option pour que les données dans les champs liés soient mises à jour dans toutes les tables liées.
Par exemple, supposons que vous souhaitiez simplement changer la référence d’un expéditeur. Cette option garantit que la référence d’expéditeur est mise à jour non seulement dans la table Expéditeurs, mais également dans les autres tables liées à celle-ci qui incluent également cette référence d’expéditeur, telles que la table Commandes.
Effacer en cascade les enregistrements correspondants
La décision de sélectionner cette option dépend de la nécessité pour vous de conserver les enregistrements dans certaines tables, même si ceux-ci peuvent être supprimés dans d’autres tables.
Par exemple, supposons que vous supprimiez un expéditeur. Si cette option est sélectionnée, Access supprime tous les enregistrements de toutes les tables qui font référence à cette référence d’expéditeur, y compris toutes les commandes (dans la table Commandes) honorées par cet expéditeur. Vous ne devez sélectionner cette option que si vous êtes sûr de vouloir supprimer l’historique de vos commandes.
-
Pour modifier le type de jointure établissant la relation entre les tables d’interne en externe, sélectionnez le bouton Type de jointure. Pour plus d’informations, voir Créer des requêtes avec des jointures externes.
Supprimer une relation entre tables
Remarque : Si les tables avec lesquelles vous voulez travailler sont en cours d’utilisation, vous devez commencer par les fermer, ainsi que tous les objets ouverts qui les utilisent.
Pour supprimer une relation entre des tables :
-
Sélectionnez Outils de base de données > Relations.
-
Sélectionnez la ligne qui connecte les deux tables liées.
Conseil : Si vous ne voyez pas la relation souhaitée, dans l’onglet Création, dans le groupe Relations, sélectionnez Toutes les relations.
-
Appuyez sur Suppr. Si vous êtes invité à confirmer la suppression de la relation, sélectionnez Oui.
Remarque : Lorsque vous supprimez une relation, vous supprimez également la prise en charge de l’intégrité référentielle pour cette relation le cas échéant. Par conséquent, Access n’empêchera plus les modifications à l’origine d’enregistrements orphelins du côté « plusieurs » d’une relation un-à-plusieurs.