LeCompagnon.info en reconstruction

Access

Access: Les relations



Introduction
Les types de relations ou la cardinalité
Ce qui est nécessaire pour faire une relation
Création d'une relation dans une requête
Création de relations permanentes entre les tables
Que faire lorsqu'Access refuse de créer une relation


Avant de commencer

Cette page inclut des exercices pour expérimenter avec les relations entre les tables. Pour vous aider à la compréhension, vous pouvez copier le fichier demoacc2.mdbpour ceux qui ont Access 97 ou demoa2k2.mdb pour ceux qui ont Access 2000 de la page des fichiers de démonstrations . Cliquez ici pour vous rendre à cette page. Copier la base de données appropriée sur une disquette ou sur votre disque dur et revenez ensuite à cette page.

Access
Les tables
Les requêtes
Exercices sur les requêtes
Les formulaires
Les formulaires graphiques
Les sous-formulaires
Les états
Les états étiquette
Les macros
Les relations
Exercice sur Access
Quiz sur Access

Autres formations

Word 2003
Word 2007
Excel
VBA pour Excel
PowerPoint 2003
PowerPoint 2007
Access
Access 2010
Internet
Général
Intelligence financière
Vidéos

Navigation
Précédent
Suivant
Page Principale
FAQ
Nouveautés
Plan du site
Références
Motivations
Manuels de formation
Fichiers de démonstration
Droits d'auteur
Text in English
Nous joindre
Par courriel
Abonnez-vous à
l'infolettre LCI























Partager


Abonnez-vous à l'infolettre LeCompagnon.info


Introduction

L'aspect pratique de relier des tables sur des champs en commun est pour éviter la redondance. Il est inutile de réécrire plusieurs fois les mêmes informations. Par exemple, avec une base de données relationnelle tel qu'Access, il est inutile d'écrire plusieurs fois la même information sur un client à chaque facture. La force des tables reliées est de vous donner accès à de l'information d'une autre table que vous n'auriez pas accès sans une relation entre les tables. Prenons l'exemple des tables Facture et Clients. La table Facture contient le champ numéro de client et aucune autre information sur le client. Mais ce champ est la clé pour relier les deux tables. Il est possible de le relier au champ numéro de client de la table Clients. Une fois relié, il est ensuite possible d'avoir les autres informations sur le client tel que le nom de la compagnie, son adresse, ses personnes contacts, sa marge de crédit etc.

relation entre les tables Facture et Clients.

Les types de relations ou la cardinalité

Il existe trois types de relations: un à un, un à plusieurs et plusieurs à plusieurs. Ce n'est pas toujours facile de déterminer quel genre de relation, aussi appelé cardinalité, qu'il y a entre deux tables. Il faut de la pratique. J'ai trouvé un petit truc pour déterminer quel genre de relation qu'il y a entre deux tables. Je l'ai trouvé par hasard en donnant mes démonstrations. Je ne sais pas jusqu'à quel point qu'il est efficace. Mais, il fonctionne très bien durant les démonstrations. Il s'agit de poser deux questions.

1- Pour 1(enregistrement de la première table), combien peut-il en avoir dans la seconde table?
2- Pour 1(enregistrement de la seconde table), combien peut-il en avoir dans la première table?

Les deux questions commencent toujours par: "Pour 1 de ceci, combien de cela?" Les deux seules réponses acceptables sont soit un ou plusieurs. Une fois que vous avez les réponses, placez-les dans le petit tableau qui suit. Il faut inverser la question numéro deux pour l'entrer dans le tableau. Remplacez-les "?" par les résultats (un ou plusieurs).

Déterminer le type de relation
Table 1 Table 2
Q1: 1 -> ?
Q2: ? <- 1
Max:

Ensuite, vous écrivez sur la dernière ligne le plus gros, entre un et plusieurs, de la deuxième et la dernière colonne. Vous pouvez ensuite savoir de quel genre de relation qu'il s'agit. Le prochain exercice consiste à expérimenter avec ce petit truc. Il faut déterminer quel genre de relation qu'il peut y avoir entre les tables Facture et Clients. Il faut poser les questions.

Q1: Pour 1 facture, combien ai-je de clients? La réponse est un. Une facture, un client.

Q2: Pour 1 client, combien puis-je avoir de facture? La réponse est plusieurs. Du moins, vous l'espérez. Il n'est pas pratique d'avoir un client qui vient seulement une fois! Remplissez ensuite le tableau ci-dessous.

Déterminer le type de relation
Facture Clients
Q1: 1 -> 1
Q2: Plusieurs <- 1
Max: Plusieurs 1

Effectivement, il s'agit bien d'une relation d'un à plusieurs de Clients vers Facture. Vous pouvez maintenant essayer avec d'autres tables ou d'autres situations.

Ceci veut aussi dire que vous pouvez trouver seulement une fois l'information en commun dans l'une des tables et plusieurs fois dans l'autre. Pour cet exemple, chaque valeur du champ No client de la table Clients est unique. Il n'y a pas deux enregistrements (ou clients) avec le même numéro de client. Cependant, dans la table Factures, vous pouvez retrouver le même numéro de client pour plusieurs enregistrements différents. C'est pour cette raison que la relation est appelée de 1 à plusieurs. L'information en commun se retrouve seulement une fois dans la première table (Clients) et potentiellement plusieurs fois dans la seconde (Factures).

RELATION UN À UN

Ex.: Un homme est marié à une seule femme. Une femme est mariée à un seul homme.
Dois-je vous rappeler que la bigamie est illégale! Du moins, au Canada.

RELATION UN À PLUSIEURS

Ex.: Une personne peut posséder plusieurs motos. Une moto ne peut être possédée que par une seule personne. (On oublie les cas de copropriété).

RELATION PLUSIEURS À PLUSIEURS

Ex:. Un étudiant suit plusieurs cours. Un cours est suivi par plusieurs étudiants

Il faut faire attention lors de la conception d'une base de données avec des relations de type "plusieurs à plusieurs". Il y a plus de détails plus loin sur cette page Web sur ce cas spécial.

Ce qui est nécessaire pour faire une relation

+2 tables (ou requêtes ou une combinaison des deux)
+1 champ en commun dans chacune des tables.
+Même type de champ (Texte avec texte, numérique avec numérique ...)
+Même longueur (Pas un champ long de 15 caractères avec un autre long de 50 caractères !)
+Même genre d'information (Ex.: Code d'inventaire avec des codes d'inventaires, NAS avec NAS ...)

N'essayez pas de créer une relation entre les champs date et numéro de téléphone. Les champs ne sont pas des mêmes types (Texte, Numérique, Date/Heure, Oui/Non, NuméroAuto...) Aussi, n'essayez pas entre les champs nom et prénom. Bien que les deux champs sont du type "texte", ils n'ont pas le même genre d'information.

Il y a cependant une exception qui confirme la règle. Il est possible de faire une relation entre un champ de type NuméroAuto et un champ de type numérique dont la taille du champ est "Entier long". Il serait impossible de créer une relation de type "un à plusieurs" si les champs en commun sont de type NuméroAuto. Par définition, ce type de champ ne peut pas avoir deux fois la même information!

Cette exception est de taille et très avantageuse. Par exemple, l'utilisateur n'a pas besoin de s'inquiéter de donner des numéros d'identifications à un nouveau client. Access s'en charge automatiquement.

Création d'une relation dans une requête

Il est très avantageux par moments d'être capable d'afficher les informations contenues de plusieurs tables en même temps. Il faut cependant avoir une relation entre les tables pour avoir un résultat intéressant. Le prochain exercice consiste à créer une relation entre deux tables dans une requête.

*À partir du menu principal, appuyez sur l'onglet des requêtesOnglet requête.
*Appuyez sur le bouton Nouveau.
*De la liste des tables disponibles, ajoutez les tables Facture et Clients.
*Sélectionnez les champs suivants de la table Facture : Numéro de facture et Code client.
*Sélectionnez les champs suivants de la table Clients : Nom et Adresse.
*Exécuter la requête.Total d'enregistrement

Ce que vous voyez est le résultat de toutes les combinaisons possibles entre les deux tables. Remarquez que pour chaque numéro de facture il y a 5 clients! En fait, il y a 14 enregistrements dans la table Facture et 5 enregistrements dans la table Clients. Donc, il y a 14 * 5 (70) enregistrements d'activés. Ceci est en réalité impossible. La raison est qu'il n'y a pas de relation entre ces deux tables en ce moment. Si vous ne faites pas de relations entre les tables d'une requête, Access va afficher toutes les combinaisons d'enregistrements possibles entre les deux tables. Il faut créer une relation entre deux tables pour éviter ce genre de situation. Pour retourner au mode création :

*Appuyez sur le bouton .
OU
*Du menu Affichage, sélectionnez l'option Création.

*Déterminez les champs en commun entre les deux tables.

Dans ce cas, il s'agit des champs Code client et Numéro de client. Bien qu'ils n'aient pas le même nom, ils sont des mêmes types de champs. Ils ont aussi le même format ou de longueur et contiennent le même genre d'information.

*Placez le pointeur par-dessus l'un des champs en commun.
*En gardant votre doigt sur le bouton gauche de la souris, déplacez le pointeur par-dessus l'autre champ en commun.
*Relâchez ensuite le bouton de la souris.

relation entre deux tables

Une ligne mince devrait apparaître entre les deux champs. Les deux tables sont maintenant reliées. Sinon, réessayez. Il est aussi possible, par accident, d'avoir relié des champs qui n'ont pas le même genre d'information. Il faut retirer la mauvaise relation avant de pouvoir réessayer.

*Cliquez sur la ligne qui relie les deux tables.
*Du menu Édition, sélectionnez l'option Supprimer.
OU
*Appuyez sur la touche Supprime du clavier.

Une fois que les tables sont correctement reliées, il est temps d'afficher le résultat.

*Exécuter encore une fois la requête en appuyant sur le bouton .

Le nombre d'enregistrements devrait avoir réduit à 14 factures. Il faut remarquer que vous voyez les informations de deux tables en même temps ! C'est là l'un des grands avantages des bases de données relationnelles; être capable d'accéder à de l'information qu'aucune table, prise seule, est capable de fournir. C'est seulement une fois que ces tables sont reliées qu'elles sont vraiment efficaces.

Le mécanisme d'une relation

À partir d'une requête, il est possible de modifier ou d'ajouter des enregistrements. Au moment où vous écrivez une valeur dans l'un des champs en commun. Access va essayer de trouver si cette valeur existe dans l'un des enregistrements de l'autre table reliée. S'il trouve, vous aurez accès au contenu de tous les champs de l'enregistrement. Prenons l'exemple des tables Facture et Clients qui sont reliées sur les champs en commun Code client et No client dans une requête. Si vous écrivez un chiffre entre 1 et 5, Access pourra trouver un enregistrement dans la table Clients et vous afficher toutes les informations de l'enregistrement si vous le voulez.

Il est possible d'entrer ou de modifier de l'information à partir d'une requête qui contient plusieurs tables. Il faut s'assurer que l'un des champs en commun de toutes les tables reliées soit utilisé dans la requête. Sinon, Access va vous avertir qu'il ne peut pas réaliser la requête.

Attention!
De plus, ce champ en commun doit être celui dans lequel vous pouvez entrer plusieurs fois la même information. Par exemple, si vous faites une relation entre les tables Facture et Clients sur le champ en commun numéro de client, utilisez le champ Code client de la table Facture puisque vous pouvez entrer plusieurs fois le même numéro de client dans les factures. Une fois que vous avez entré les informations dans la table Clients, vous ne pouvez pas le rentrer une seconde fois!

Création de relations permanentes entre les tables

Il est avantageux de relier des tables dans la requête pour accéder à de l'information qu'aucune des tables prises seules ne possède. Le problème avec cette technique est qu'il faut refaire les relations à chaque fois que vous faites une nouvelle requête. Access vous offre une manière de créer des relations plus " permanentes " entre les tables de votre base de données. Elle a aussi l'avantage de vérifier "l'intégrité" des relations entre les tables. À partir du menu principal, il est possible d'accéder à la partie des relations.

*Appuyez sur le bouton .
OU
*Du menu Outils, sélectionnez l'option Relation.

C'est dans cette fenêtre que vous allez créer les relations entre les tables. Lorsque vous ouvrez cette section pour la première fois, il n'y a pas de tables; seulement un grand espace vide. Il faut premièrement ajouter les tables ou les requêtes sur lesquelles vous voulez relier. Pour accélérer la démonstration, j'ai déjà mis pour vous toutes les tables qui seront nécessaires pour les relations sauf la table Clients.

Ajouter une table

Lorsque vous allez ouvrir la zone des relations pour la première fois, elle devrait être vide. Il faut que vous ajoutez les tables ou les requêtes que vous voulez relier avant d'établir les relations.

*Du menu Relations, sélectionnez l'option Afficher la table.
OU
* Appuyez sur le bouton .
OU
*Placez le pointeur de la souris dans la zone des relations.
*Appuyez sur le bouton droit de la souris.

Menu contextuel des relations

*Du menu contextuel, sélectionnez l'option Afficher la table.La fenêtre suivante va apparaître.

Avec Access, il est possible de relier des tables ou des requêtes si elles ont un champ en commun.

*Sélectionnez l'onglet Tables.

Ensuite, sélectionnez les tables dont vous voulez relier. Pour la démonstration,

* Sélectionnez la table Clients et appuyez sur le bouton Ajouter.
*Puisqu'il n'y a plus d'autres tables à ajouter, appuyez sur le bouton Fermer.

Établir les relations entre les tables.

*Placez le pointeur par-dessus le champ Numéro de client de la table Clients.
*Cliquez sur le bouton gauche de la souris pour sélectionner le champ.
*En gardant un doigt sur le bouton gauche de la souris, déplacez le pointeur par-dessus le champ Code client.
*Relâchez ensuite le bouton de la souris. Une fois que vous aurez fait la relation, l'écran suivant va apparaître.

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

Cette option est nécessaire pour établir une relation que j'appelle " forte ". C'est une relation qui s'assure qu'il existe une valeur dans l'autre table reliée. En activant l'option "appliquer l'intégrité référentielle", Access s'assure que certaines règles d'intégrité d'une relation soient respectées. C'est pour que les relations entre les tables reliées soient toujours bonnes. Aucune information ne peut être "perdu" en laissant Access le droit de valider ces règles.

Access peut refuser de créer une relation avec intégrité référentiel pour ces raisons :

La table qui contient l'enregistrement unique n'a pas l'option d'index sans doublons ou clé primaire.
La table qui contient l'enregistrement unique a des doublons. Ex. : plusieurs produits ont le même numéro de produit.
L'un des enregistrements de l'une des tables reliées à un des champs communs vide. Il faut toujours que les champs en commun des deux tables aient de l'information dans l'autre table.
La valeur écrite dans la table qui peut contenir plusieurs fois la même valeur dans le champ en commun n'a pas d'équivalent dans l'autre table. Ex. : L'un des enregistrements contient le numéro de produit numéro 5 bien qu'il y ait seulement quatre produits, de 1 à 4, de disponible.
Une autre raison est que l'une des tables est "ouverte" ou affichée. Il faut fermer toutes tables, requêtes, états et formulaires avant de créer les relations entre les tables. Voici la procédure à suivre pour fermer des objets qui seraient resté ouvert.

*Fermez la fenêtre des relations.
*Du menu Fenêtre, sélectionnez l'objet (table, requête ...) qui est resté ouvert.

L'option du menu ouvert vous permet de passer facilement d'un objet à un autre. Dans ce cas, c'est pour fermer tous les objets ouverts sauf la base de données et l'écran des relations.

*Fermez l'objet.
*Si d'autres objets sont ouverts, sauf pour la base de données et l'écran des relations, répétez les opérations précédentes pour fermer ces objets. Vous pourrez ensuite réessayer de créer des relations entre les tables.

L'option Mise à jour en cascade.

Met à jour dans la ou les autres tables qui sont reliées. Si vous changez le numéro de client, tous les enregistrements des autres tables reliées dont le code client est identique vont aussi être modifiés. Ex.: Si vous changez la valeur du champ No Client de la table Clients, Access va la changer pour tous les champs en commun des tables reliées. Dans ce cas, se serait seulement le champ Code Client de la table Facture.

L'option Effacer en cascade.

Cette option efface les enregistrements de l'autre table qui ont le même champ en commun que l'enregistrement supprimé. Quand doit-on activer cette option? Cela dépend du contenu des tables. Dans ce cas, pour des raisons fiscales, il serait préférable de conserver les données même si le client part. Mais pour une autre base de données, pour des réservations par exemple, il serait préférable d'enlever les options en même temps qu'une réservation.Voici un graphique avec une représentation des tables et des relations entre elles. Un peu plus tard, on vous demandera de créer toutes les relations entre ces tables. Pour le moment, lisez les autres options possibles sur les relations.

Supprimer une relation.

Il est possible de retirer une relation entre des tables. Il existe quelques raisons pour retirer une relation entre des tables ou des requêtes. La première est que vous avez commis une erreur au moment de la création de la relation. Vous avez accidentellement choisi le mauvais champ au moment de la création de la relation. Ou, après une analyse plus approfondie, vous changez les relations entre les tables. Aussi, pour vous permettre de modifier la structure d'une table reliée, il peut être nécessaire auparavant de retirer une relation. Access va vous le dira si c'est le cas.

*Cliquez sur la ligne qui relie les deux tables.
*Du menu Édition, sélectionnez l'option Supprimer.
OU
*Appuyez sur la touche supprime du clavier.

Modifier les options d'une relation.

*Cliquez sur la ligne qui relie les deux tables.
*Double-cliquez sur cette ligne.
OU
*Du menu Relations, sélectionnez l'option Modifier une relation.

Les options de la relation vont ensuite apparaître. Vous pourrez les modifier et ensuite appuyer sur le bouton créer pour conserver ces modifications.

Il est maintenant temps de créer les relations entre les tables. Voici un cas particulier qui pourrait bien vous arriver au moment de la création de relations entre les tables de votre base de données.

Création d'une relation entre les tables Facture et Employés.

Il faut premièrement déterminer quel type de relation qu'il s'agit ou sa cardinalité.

1 facture est générée par un seul vendeur.
1 vendeur peut générer plusieurs factures.

Il s'agit d'une relation de type 1 à plusieurs.

Il faut maintenant créer la relation entre les tables Employé et Facture sur leur champ en commun.

*Placez le pointeur par-dessus le champ Numéro de poste de la table Employé.
*Cliquez sur le bouton gauche de la souris pour sélectionner le champ.
*En gardant un doigt sur le bouton gauche de la souris, déplacez le pointeur par-dessus le champ No vendeur.
*Relâchez ensuite le bouton de la souris. Il faut maintenant choisir les options.
*Activez l'option Appliquer l'intégrité référentiel.
*Assurez-vous que la relation est de 1 à plusieurs.
*Appuyez sur le bouton Créer.

La relation ne fonctionnera pas!

Que faire lorsqu'Access refuse de créer une relation.

Comme mentionné ci-dessus, la relation entre les tables Facture et Employés ne fonctionnera pas. Le contenu de certains enregistrement sur le champ en commun (No vendeur et numéro de poste) ne respectent pas les règles d'intégrité. Pour vous en avertir, Access vous affichera le message suivant.

Message d'erreur

Il faut attentivement lire le message pour comprendre ce qui arrive. Dans ce cas, c'est la deuxième phrase qui explique la situation: "Les données de la table "Facture" ne respectent pas les règles d'intégrité référentielle". Et c'est vrai. Les deux derniers enregistrements de la table n'ont pas de contenu valide dans le champ No Vendeur. C'est pour cette raison qu'Access refuse de créer une relation permanente entre ces deux tables.

Pour cet exemple, vous savez la cause du problème. Il suffit de mettre des valeurs appropriés pour ces deux enregistrements pour régler le problème. Mais que faire lorsque vous ne savez pas la cause du problème? Access vous offre un outil indispensable pour s'assurer du bon fonctionnement des relations. Il s'agit de la requête de Non correspondance. La partie qui suit consiste à créer une requête de non correspondance qui détermine la cause du problème entre les tables Facture et Employés.

*Fermer la zone des relations en sélectionnant du menu Fichier l'option Fermer.
*Cliquez sur l'onglet des requêtes Onglet requête.
*Appuyez sur le bouton Nouveau.

Choisir Assistant Requête de non correspondance

*De la liste des requêtes possibles, choisir Assistant Requête de non correspondance.
*Appuyez sur le bouton OK.

Pour déterminer les enregistrements qui ne correspondent pas entre les deux tables, il faut premièrement indiquer à Access le nom des deux tables à relier suivi du nom des champs en commun des deux tables.

Choisir la table Facture

Il faut indiquer à Access le nom de la première table à relier qui cause un problème de relation.

*De la liste des tables, sélectionnez la table Facture.
*Appuyez sur le bouton Suivant >.

Choisir la table Employés

Il faut maintenant indiquer le nom de la seconde table qui cause un problème de relation.

*De la liste des tables, sélectionnez la table Employés.
*Appuyez sur le bouton Suivant >.

Choisir les champ en commun des deux tables

Il faut ensuite montrer à Access quels sont les champs en commun des deux tables.

*De la table Facture, cliquez sur le champ No vendeur.
*De la table Employés, cliquez sur le champ Numéro de poste.
*Appuyez sur le bouton bouton relation.
*Appuyez sur le bouton Suivant >.

Access vous demande ensuite quels sont les champs que vous voulez voir dans la requête. Pour les besoins de l'exemple, sélectionnez tous les champs.

*Appuyez sur le bouton .
*Appuyez sur le bouton Suivant >

.

Pour terminer, Access vous demande le nom à donner à la requête. Pour le moment, ne changez pas le nom de la requête.

*Appuyez sur le bouton Terminer.

Access affiche le résultat de la requête.

Résultat de la requête: facture 21 et 22.

Les factures 21 et 22 n'ont pas de valeurs valides dans le champ No vendeur. La facture 21 à un numéro de vendeur impossible puisqu'il y a seulement 7 employés présentement dans l'entreprise. Pour la facture 22, il y a aucun numéro de vendeur. Une relation est impossible si le contenu d'un champ en commun est vide.

*Pour les deux factures, entrez le numéro de vendeur 7 au champ No vendeur. Après cette correction, il vous est maintenant possible de créer une relation "permanente" entre ces deux tables.
*Fermez la requête.
*Retournez à la section des relations.
*Refaite la relation entre les tables Employés et Facture sur leur champ en commun (Numéro de poste et No vendeur).Les deux tables sont maintenant reliées sur un champ en commun. Vous pouvez maintenant créer les relations entre les tables de cette base de données tel qu'au graphique précédent.

Les relations de plusieurs à plusieurs

Access vous offre une manière facile de créer des relations de type 1 à 1 et de 1 à plusieurs avec l'option d'intégrité référentiel. Cependant, la création de relations de type plusieurs à plusieurs nécessitent plus de travail. Prenons l'exemple de la création d'une relation entre les tables Facture et Produits. Avant tout, il faut déterminer de quel genre de relation qu'il s'agit.

1 facture peut contenir plusieurs produits.
1 produit peut être contenu dans plusieurs factures.

Il s'agit bien d'une relation de plusieurs à plusieurs.

Il est impossible de faire directement une relation de type plusieurs à plusieurs. Il faut créer une table intermédiaire qui contient la clé primaire des deux tables. Il faut ensuite créer deux relations de type 1 à plusieurs entre les tables Facture, Produit et la table intermédiaire en utilisant le champ de la clé primaire des deux tables. Ex. :

Facture Relation Transition Fact-Inv Relation Inventaire
No Facture 1 -> plusieurs Numéro de facture
Numéro de produit plusieurs <- 1 Numéro d'inventaire
Quantité achetée

N'oubliez pas d'activer l'option d'intégrité référentiel et aussi l'option de mise à jour en cascade. Sinon, la relation de plusieurs à plusieurs est plus difficile. Pour qu'une relation fonctionne, il faut qu'il y ait le même genre d'information dans les deux tables reliées. L'option "Mettre à jour en cascade" s'assure que l'information se retrouve aussi dans l'autre table. Il vous est donc inutile de vous préoccuper d'avoir l'information dans les deux tables. Access s'en occupe pour vous.

Sortir de l'écran des relations

Si vous voulez conserver les relations entre les tables, vous devez premièrement les sauvegarder avant de quitter le mode de relations.

* Cliquez sur le bouton avec la disquette jaune.
* Du menu Fichier, sélectionnez l'option Fermer.

Création d'une facture

C'est ici que toutes les relations entre les tables seront mises en avantage. Le prochain exercice consiste à la création d'une requête qui contient toutes les tables reliées.

*Cliquez sur l'onglet des requêtes Onglet requête.
*Appuyez sur le bouton Nouveau.
*Sélectionnez de la liste des tables: Facture, Transition Fact-Inv, Inventaire, Clients et Employés.
*Appuyez sur le bouton Fermer.

À chaque fois que vous ajouter une table à la requête, la table s'ajoute ainsi que ses relations avec les autres tables. De plus, il s'agit de relations avec les options d'intégrité référentielle. La première relation était une relation "simple"; sans la possibilité d'une relation avec intégrité référentielle.

*De la liste des champs possibles, sélectionnez en ordre les champs suivants:

Numéro de facture (Transition Fact-Inv), Code client (Facture), No vendeur (Facture), Numéro de produit (Transition Fact-Inv), Quantité (Transition Fact-Inv), Prix Unitaire (Inventaire).

C'est le minimum de champs nécessaire pour avoir une requête avec des relations qui fonctionnent. Il faut que l'un des champs dans une relation soit affiché. De plus, ce champ doit être celui dont vous pouvez entrer plusieurs fois la même information (plusieurs). Vous pouvez ajouter les autres champs à votre choix. Puisqu'ils sont reliés, toutes les informations vont automatiquement s'afficher sans rien avoir à ajouter de l'information.

Pour vous démontrer l'avantage de relier les tables, le dernier champ à ajouter est un champ calculé. Il va prendre l'information de deux différentes tables (Quantité et Prix unitaire) pour trouver le total de la transaction. Puisqu'il est possible de trouver le total à partir des informations des tables, il est inutile d'avoir un champ "Total" dans l'une des tables.

*Placez le curseur dans la case vide à la droite du champ Prix unitaire.
*Écrivez le texte suivant: Total:[Quantité] * [Prix unitaire]

Comme pour tous les champs calculés, il faut lui donner un nom (Total). Il faut ensuite séparer le nom de la formule en écrivant un ":". Il reste qu'à écrire la formule. Ce champ va donner le total de chacun des items de la facture.

Entrée de factures

Après avoir compléter les opérations précédentes pour la création de relations entre les différentes tables de la base de données, il reste qu'a voir le résultat en entrant quelques facture et expliquer le fonctionnement des options choisies. Pour entrer les données,

*Appuyez sur le bouton .
OU
*Du menu Affichage, sélectionnez l'option Table de données.
* N'entrez aucune information dans le champ Numéro de facture et appuyez sur la touche Entrée.

Dès que le curseur est passé au champ suivant, un chiffre est apparu dans le premier champ. Pourquoi?

C'est à cause de la relation entre ce champ et celui de No Facture de la table Facture. Non seulement la relation est de type "1 à plusieurs", mais il y a aussi l'option "Mettre à jour en cascade". C'est cette option qui force Access à voir le contenu du champ No facture et de le recopier dans le champ Numéro de facture. Pas besoin d'entrer l'information à chaque fois que vous commencer une nouvelle facture.

*Entrez les informations pour les autres champs à votre choix.

Vous voyez qu'il est possible d'entrer de l'information dans plusieurs tables en même temps. Aussi, l'avantage des relations puisqu'il y a redondance d'information seulement pour les champs en commun des différentes tables. Il est inutile de réécrire l'information sur le client ou sur le produit puisqu'Access a accès à cette information grâce aux relations entre les tables.

Le prochain exercice consiste à ajouter un second item à la même facture.

*Dans le champ Numéro de facture, entrez le même numéro de facture de l'enregistrement précédent.
*Entrez les informations pour les autres champs à votre choix.

C'est ainsi qu'il est possible d'ajouter plusieurs items à la même facture. Vous pourrez utiliser cette technique pour d'autres tables qui ont une relation de type "1 à plusieurs".

 

Abonnez-vous à l'infolettre

Abonnez-vous à l'infolettre du site pour recevoir le manuel " 150 fonctions Excel expliquées ". Vous recevrez aussi les prochaines infolettres sur les nouveautés du site et des formations détaillées que vous ne trouverez nulle part ailleurs.


Cliquez ici pour vous abonner à l'infolettre





Ce site est hébergé par 1&1.com