Dans cet article nous allons créer une relation entre deux tables dans Access. Il s’agit de la continuité concernant les cours sur le logiciel.

Créer une relation entre deux tables dans Access

Créer une relation entre deux tables dans Access

Cet article est le sixième d’une série de 18 cours vidéo sur le logiciel Access qui ont été mis en ligne sur ma chaîne YouTube. La qualité sonore de cette série n’étant vraiment pas optimale, une transcription a donc été faîtes ci-dessous.

C’est en quelque sorte pour m’excuser. Peut-être allez-vous vous poser la question : pourquoi voit-on apparaître Actualitix.com ? C’est un ancien site à moi sur lequel la vidéo a été créée initialement.

Le précédent cours portait sur l’importation des données dans Access. Pour cela, nous avions créé un fichier spécifique dans Excel que nous avions importé. Notre table comporte désormais près d’une vingtaine de films.

Nous allons maintenant créer une seconde table pour faire une relation entre notre table existante et la nouvellement créée.

Créer la nouvelle table

La première étape va être  de créer une nouvelle table qui s’appellera « Genre ». L’objectif de cette table sera d’intégrer différents genres de films possibles. Par exemple, des drames, des comédies ou tous autres genres.

Ensuite nous allons créer une relation entre notre table « film » et notre table « genre ». Ainsi, dans notre table « film » nous pourrons donc sélectionner différents genres que nous pourrons attribuer à nos différents films.

L’avantage de cette solution sera qu’une modification sera répercutée. Par exemple, une modification d’un genre, imaginons la catégorie « drame » où nous changerions le titre en « film drame », la modification s’effectuera directement sur l’ensemble des films. C’est une répercussion en cascade. Dans le cas d’une table « clients » et d’une table « facture ». Si vous modifiez les informations du client, la répercussion se fera sur toutes les factures de ce dernier. C’est un gain de temps. Sinon, il faudrait le faire manuellement

Si vous ne voyez pas forcément l’intérêt actuellement d’une relation entre deux tables, je pense qu’à la fin de cette vidéo vous la comprendrez mieux.

Table FILM actuellement

Table FILM actuellement

Notre table « Genre »

Dans un premier temps, pour créer une relation entre deux tables Access, nous allons créer une nouvelle table qui s’appellera  « genre ». Dans le menu créer, il faut donc cliquer sur « table ». La nouvelle table s’affiche sous le nom « table 1 ». Nous allons passer en mode création. On nous invite à changer le nom de la table, celle-ci sera  nommée « Genre ». Il faut  valider sur OK. Le nom de la table est donc modifié en « Genre ».

Nous pouvons maintenant spécifier le nom de mon champ. Comme pour notre table « Film ». Nous allons devoir déterminer une clé primaire, qui sera sous la forme de numéro automatique pour s’incrémenter au fur et à mesure des insertions des genres de films. Pour chaque nouveau champ inséré, un identifiant unique sera donc attribué à cette nouvelle valeur.

Le premier champ va donc se nommer genre_num. Nous gardons la même structure que pour la table « Film ». Autrement dit, le nom de la table, un underscore et le nom que nous souhaitons donner au champ. Cela permet d’avoir une cohérence entre les tables. Nous voyons que la valeur est bien incrémentale. Cette dernière sera augmentée de 1 pour chaque insertion d’un nouveau genre de film.

Passons maintenant au champ genre lui-même. Ce dernier sera écrit « genre_types », donc en fonction du type de genre. Le type du champ est texte court, c’est celui qui est sélectionné par défaut. Il est donc possible de modifier la taille du champ, mais nous allons le laisser à 255.

Dans la légende,  nous pouvons indiquer « type de film », puis enregistrer.  Nous pouvons  basculer en feuille de données.  Dans celle-ci,  nous pouvons agrandir la colonne.

Créer une table GENRE

Créer une table GENRE

Insérer les genres de films

Désormais, nous pouvons insérer les différents genres que nous souhaitons mettre en relation avec la table « Film ». Le premier sera « Comédie », le petit crayon indique bien que  nous écrivons dans le champ.

J’ai bien mon numéro incrémental qui est à gauche. Lorsque nous allons basculer dans le deuxième champ, il y aura un « 2 » qui va apparaître comme numéro. Dans celui-ci, nous allons inscrire « drame » et on peut voir que mon « 2 » apparaît effectivement. Maintenant, vous pouvez mettre les genres que vous souhaitez, dans le cas présent se sera « Film policier », « Gangster », « Guerre »,  « Science-fiction » et pour finir « Thriller ».

Renseigner la table GENRE

Renseigner la table GENRE

La table genre est créée et renseignée, nous pouvons  donc l’enregistrer. Il est temps de retourner sur la table « Film ». Comme d’habitude, nous basculons en mode de création et nous allons rajouter un nouveau genre. Pour cela, on fait un clic droit puis « insérer des lignes ».

Insérer un champ avec une relation

Insérer un champ avec une relation

Insérer des données dans notre table « Genre »

C’est ce nouveau champ qui sera en relation avec la table genre. Nous allons lui donner le nom de « Genre types » en référence à la table genre. Dans le type de texte, nous sélectionnons « Assistant liste de choix ».  Cela va permettre de créer un menu déroulant dans lequel les différents genres enregistrés dans la table genre sont présents.

Assistant liste de choix

Assistant liste de choix

Comme la clé primaire de la table genre est un numéro incrémental, le type de donnée que nous aurons à la fin sera numérique. Nous validons donc « assistant liste de choix ». Comme on peut le voir, le choix se trouve entre deux données. Nous gardons la première, car on souhaite que ce champ aille chercher les données de la table genre. On choisit la table « GENRE », c’est dans celle-ci que les valeurs se trouvent.

Créer des champs avec assistant

Créer des champs avec assistant

Choix de la table

Choix de la table

Nous sélectionnons le genre type comme champ à sélectionner. Nous pouvons choisir un ordre croissant ou décroissant. Dans le menu déroulant, vous pouvez choisir le genre « type ».

La colonne où sont contenus les différents genres de films, nous cliquons sur suivant et on peut voir que nous avons bien les différents types de films enregistrés tout à l’heure. Vous pouvez choisir d’afficher ou de ne pas afficher la clé primaire. On clique sur suivant.

 

Choix des champs

Choix des champs

Ordres des éléments

Ordres des éléments

Résumé

Résumé

A cette étape, on peut modifier l’étiquette, mais celle-ci sera changée juste après, dans la légende. On nous indique que nous devons enregistrer mes relations, cliquez sur « oui ».

Etiquette

Etiquette

Enregistrer une table

Enregistrer une table

On peut voir que le type est numérique, alors que les données qui vont être contenues dans la liste déroulante seront du texte, car il s’agit de nos différents genres de films. Dans la légende,  vous pouvez indiquer « Genre », puis enregistrer.

Comment créer une relation entre deux tables Access ?

Voyons maintenant comment créer une relation entre deux tables Access. On peut fermer les deux tables, puis cliquer sur « outils de base de données » puis « relations ». On peut apercevoir le petit lien entre les deux tables. Vous pouvez cliquer sur le lien entre les deux tables en faisant un clic droit dessus. Désormais, vous avez l’option « modifier une relation »

Modifier une relation

Modifier une relation

Désormais, vous avez l’option « modifier une relation »,  dans celle-ci, cochez les cases « appliquer l’intégrité référentielle », « mettre à jour en cascade les champs correspondants » et « effacer en cascade les enregistrements correspondants ».

Créer une relation

Créer une relation

Mais peut-être vous demandez-vous à quoi correspondent ces trois options ? Quand nous cliquons sur « appliquer l’intégrité référentielle », cela garantit qu’une clé étrangère a toujours une clé primaire qui lui correspond.

  • Une clé étrangère c’est tout simplement la clé primaire d’une autre table. Si on prend notre cas, la clé primaire c’est « genre_num » et la clé étrangère c’est « genre_types ». La clé « genre_types » est alors reliée à la clé primaire de la table genre. C’est donc quand on utilise dans une relation la clé primaire d’une autre table.
  • Pour « mettre à jour en cascade les champs correspondants », lorsque l’on modifie par exemple une clé primaire, toutes les clés étrangères qui lui correspondent seront alors automatiquement modifiées.
  • Pour « effacer en cascade les enregistrements correspondants » signifie que lorsque l’on supprime un enregistrement dans la table primaire tous les enregistrements qui lui sont liés seront automatiquement supprimés.

Nous voyons que notre type de relation est de un-à-plusieurs. Une relation « un-à-plusieurs » signifie qu’une ligne d’une table est associée à plusieurs lignes dans une autre table.  Pour prendre notre exemple, un type de film dans notre table genre peut être affecté à plusieurs films dans notre table film.

 

On clique sur « OK », on a deux symboles qui viennent d’apparaître, un vers l’infini, autrement dit un vers plusieurs c’est bien le type de table que nous souhaitions avoir. Nous pouvons  enregistrer cette relation.

Notre relation entre les tables

Notre relation entre les tables

Vérifier la relation entre nos tables

Cette manipulation a permis de créer une relation entre deux tables dans Access. Maintenant, nous allons vérifier que celle-ci fonctionne. Dans la table « FILM », nous pouvons désormais renseigner le genre en cliquant sur la liste déroulante. Par exemple, pour le film Titanic, on peut renseigner drame. Pour Scarface, on peut également mettre drame et ainsi de suite pour les autres films.

Tester une relation

Tester une relation

Lorsqu’une modification sera effectuée dans la table « Genre », celle-ci sera répercutée sur ma table « FILM ». Vous pouvez terminer de renseigner les différents films. Une fois que tous les genres sont renseignés, vous pouvez enregistrer la table.

Nous allons dans notre table « Genre » et on souhaite modifier par exemple un type de film. On va agir sur le type de film « guerre », vous pouvez le renommer « film de guerre ». Ce genre est par exemple affecté au film « Rambo II ». Maintenant, il faut enregistrer, vous pouvez  retourner sur la table film.

Modifier un nom de genre

Modifier un nom de genre

Vous constatez que le genre de « Rambo II » est désormais « film de guerre », la modification du genre a bien été prise en compte et répercutée. Vous savez désormais créer une relation entre deux tables dans Access.

Répercutions des modifications dans la table FILM

Répercutions des modifications dans la table FILM

Tous les tutoriels sur la formation Access

Ci-dessous vous trouverez les 18 articles qui correspondent à la transcription des vidéos de la formation Access sur la chaîne YouTube de FBOTutos. Vous pouvez les suivre dans l’ordre chronologique pour apprendre à créer une base de données qui aura pour objectif de stocker des films sous la forme d’une bibliothèque.