121
Groupe ISEG /Junior Informatique Kaolack
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.
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:
Support de Cours Microsoft Access
122
Groupe ISEG /Junior Informatique Kaolack
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é).
Support de Cours Microsoft Access
123
Groupe ISEG /Junior Informatique Kaolack
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
Support de Cours Microsoft Access
124
Groupe ISEG /Junior Informatique Kaolack
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êtes .
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.
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.
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.
Support de Cours Microsoft Access
125
Groupe ISEG /Junior Informatique Kaolack
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.
Support de Cours Microsoft Access
126
Groupe ISEG /Junior Informatique Kaolack
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.
Du menu contextuel, sélectionnez l'option Afficher la [Link] fenêtre suivante va
apparaître.
Support de Cours Microsoft Access
127
Groupe ISEG /Junior Informatique Kaolack
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
Support de Cours Microsoft Access
128
Groupe ISEG /Junior Informatique Kaolack
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é[Link] un
graphique avec une représentation des tables et des relations entre elles. Un peu plus tard, on
Support de Cours Microsoft Access
129
Groupe ISEG /Junior Informatique Kaolack
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.
Faites un double-clic 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.
Support de Cours Microsoft Access
130
Groupe ISEG /Junior Informatique Kaolack
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.
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
Support de Cours Microsoft Access
131
Groupe ISEG /Junior Informatique Kaolack
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 .
Appuyez sur le bouton Nouveau.
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.
Support de Cours Microsoft Access
132
Groupe ISEG /Junior Informatique Kaolack
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 >.
Support de Cours Microsoft Access
133
Groupe ISEG /Junior Informatique Kaolack
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 >.
Support de Cours Microsoft Access
134
Groupe ISEG /Junior Informatique Kaolack
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 .
Appuyez sur le bouton Suivant >.
Support de Cours Microsoft Access
135
Groupe ISEG /Junior Informatique Kaolack
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 >
Support de Cours Microsoft Access
136
Groupe ISEG /Junior Informatique Kaolack
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.
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.
Support de Cours Microsoft Access
137
Groupe ISEG /Junior Informatique Kaolack
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
Support de Cours Microsoft Access
138
Groupe ISEG /Junior Informatique Kaolack
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 .
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.
Support de Cours Microsoft Access
139
Groupe ISEG /Junior Informatique Kaolack
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".
Support de Cours Microsoft Access