André Guindon
Technicien en formation
Téléphone : 4815
Courriel : andre.guindon@umontreal.ca
9 janvier 2002
Les relations & les requêtes
Les relations
L'intégrité référentielle
Les jointures
La requête SÉLECTION
Requête paramétrée
Champ calculé
Affichage spécifique
Requête ACTION
Requête AJOUT
Requête MISE À JOUR
Requête CRÉATION DE TABLE
Requête SUPPRESSION
Tables des matières
Les relations
Une relation a pour objet de faire correspondre les données des champs-clés de deux tables - ces
champs ont le même nom dans les deux tables. Dans la plupart des cas, ces champs sont la CLÉ
PRIMAIRE de la première table, qui constitue un identificateur unique pour chaque
enregistrement, et la CLÉ EXTERNE de l'autre table.
Une relation est un lien entre deux ou plusieurs tables d'une base données. Le lien est créé en
utilisant un champ commun présent dans chaque table.
Une relation permet de manipuler de l'information provenant de plusieurs tables. Ces relations
peuvent être utilisées dans les requêtes, les formulaires ainsi que dans les états.
Pour créer une relation entre les tables, celles-ci doivent être fermées. Afficher la fenêtre Base
de données pour ensuite cliquer sur l'icône Relations
Clé primaire
Clé externe
Page 1
RELATIONS & REQUÊTES
Clé primaire
Clé externe
Ligne de
relation
Dans la fenêtre Relation, sélectionner la relation (ligne de relation), et appuyer sur la touche
Suppr ou cliquer sur l'icône
Page 2
RELATIONS & REQUÊTES
Intégrité référentielle
L'intégrité référentielle est un système de règles que Microsoft Access utilise pour garantir que
les relations entre les enregistrements dans les tables liées sont valides et que vous n'effacez pas
ou ne modifiez pas, par erreur, des données liées. Vous pouvez utiliser l'intégrité référentielle si
toutes les conditions suivantes sont réunies :
➧ Le champ correspondant de la table primaire est une clé primaire ou possède un index unique
➧ Les champs liés ont le même type de données.
➧ Les tables appartiennent à la même base de données Microsoft Access.
Lorsque vous appliquez l'intégrité référentielle, vous devez observer les règles suivantes :
➧ Dans le champ clé externe de la table liée, vous ne pouvez pas entrer une valeur qui n'existe
pas dans la clé primaire de la table primaire.
➧ Vous ne pouvez pas changer une valeur clé primaire dans la table primaire si cet
enregistrement possède des enregistrements liés. Par exemple, vous ne pouvez pas changer le
N° d'un employé dans la table Employés si des commandes lui sont affectées dans la table
Commandes.
Si vous souhaitez que Microsoft Access applique ces règles pour une relation, cochez la case
APPLIQUER L'INTÉGRITÉ RÉFÉRENTIELLE lorsque vous créez la relation. Si vous appliquez l'intégrité
référentielle alors qu'une des règles ci-dessus n'est pas respectée, Microsoft Access affiche un
message d'erreur et ne n'autorise pas la modification.
Page 3
RELATIONS & REQUÊTES
Mettre à jour en cascade les champs correspondants
Si la case Mettre à jour en cascade les champs correspondants est cochée, toute modification
d'une clé primaire dans la table primaire entraîne la mise à jour de la valeur correspondante de
tous les enregistrements correspondants.
Si la case Effacer en cascade les enregistrements correspondants est cochée, toute suppression
d'enregistrement dans la table primaire entraîne la suppression des enregistrements
correspondants dans la table liée.
Type de relations
Relation un-à-plusieurs
Dans une relation plusieurs à plusieurs, un enregistrement de la table A peut être mis en
correspondance avec plusieurs enregistrements de la table B, et inversement un enregistrement de
la table B peut être mis en correspondance avec plusieurs enregistrements de la table A. Ce type
de relation n'est possible qu'après définition d'une troisième table (appelée table de jonction), dont
la clé primaire est composée de deux champs - les clés étrangères des tables A et B. Une relation
plusieurs à plusieurs n'est en fait rien d'autre que deux relations un-à-plusieurs avec une troisième
table.
Relation un-à-un
Dans une relation un à un, chaque enregistrement de la table A ne peut correspondre qu'à un
enregistrement de la table B, et inversement chaque enregistrement de la table B ne peut
correspondre qu'à un enregistrement de la table A. Ce type de relation est peu répandu, car la
plupart des informations qui seraient associées de la sorte font normalement partie d'une même
table.
Page 4
RELATIONS & REQUÊTES
Requête-Sélection
Une requête SÉLECTION extrait des données contenues dans une ou plusieurs tables et affiche les
résultats sous la forme d'une feuille de données (feuille dynamique).
Page 5
RELATIONS & REQUÊTES
Dans la cellule Critère du champ approprié, tapez une expression. L'expression peut inclure
l'opérateur logique OU.
Dans la cellule Critère du champ approprié, tapez une expression. L'expression peut inclure
l'opérateur logique ET.
Extraire des enregistrements avec Entre..ET, >, <, >=, >=, ou <>
Page 6
RELATIONS & REQUÊTES
Expression Signification
>20 Et < 30 Toutes les valeurs comprises entre 20 et 30. Les limites
ne sont pas incluses.
>=20 Et <=30 Toutes les valeurs comprises entre 20 et 30. Les limites
sont incluses.
Remarque Les dates et les nombres sont affichés dans la grille de création de la requête dans le
format correspondant au pays sélectionné dans la section Paramètres régionaux du Panneau de
configuration de Windows. Par exemple, la séquence de date est mois/jour/année pour les États-
Unis, jour/mois/année pour la France et année/jour/mois pour la Suède.
Page 7
RELATIONS & REQUÊTES
Extraire les enregistrements contenant la date courante
La date courante est la date qui provient de l'horloge système de votre ordinateur.
Dans la cellule Critère du champ approprié, tapez Date(), sans insérer d'espace entre les
parenthèses. Par exemple, vous pouvez rechercher toutes les commandes qui ont été expédiées à
la date courante en tapant Date() dans la cellule Critère.
Pour supprimer une requête il suffit de la sélectionner et d'appuyer sur la touche Suppr.
Requête Paramétrée
Une requête paramétrée affiche une ou plusieurs boîtes de dialogue prédéfinies vous invitant à
entrer des valeurs.
Dans la case Critère de chaque champ devant être utilisé comme paramètre, tapez un message
placé entre crochets [ ]. Microsoft Access affiche ce message lors de l'exécution de la requête. Le
texte du message ne doit pas contenir QUE LE NOM du champ seulement, même s'il peut inclure ce
dernier.
Exemple: Pour afficher les enregistrements d'une ville en particulier, tapez [Entre le nom de la
ville] dans la case Critère. Attention, si aucune ville est tapée dans la boîte de
dialogue, AUCUN enregistrement sera affiché
Page 8
RELATIONS & REQUÊTES
Exemple: Pour les champs de type Numérique ou Date, vous pouvez afficher deux messages.
"Entrez la date de début:" et "Entrez la date de fin:" pour spécifier un ensemble de
valeurs. Dans la cellule Critères du champ, tapez
Page 9
RELATIONS & REQUÊTES
Champ calculé
On ne peut PAS effectuer des opérations (calculs) sur les champs dans une table. Si l'on doit
effectuer des calculs nous devons les insérer dans une requête. Seule la requête permet d'utiliser
des champs calculés. On entend par champ calculé la somme de deux champs, la multiplication
d'un champ avec une constante, l'extraction de chaînes de caractères, etc.
Dans la grille de la requête et dans la section Champ, vous devez identifier le nom du champ
calculé. Le nom du champ calculé doit être suivi des deux points (:). L'expression peut-être
effectuée à l'aide de champ ou de constante. Si un champ est utilisé dans l'expression, celui-ci
doit être entre crochet [nom du champ].
Augmentation:[Pension Mensuel]*0.1
ex: Dans la requête qui contient la liste des employés ainsi que leurs taux horaires et leurs
nombres d'heures travaillées, il est possible de calculer le salaire brut.
NB: Pour tous les champs calculés, il est possible de modifier son apparence en modifiant les
propriétés du champ. On sélectionne celui-ci et on affiche le menu contextuel
(bouton droit), puis on sélectionne Propriétés…
Zoom
La commande Maj+F2 permet de
modifier le «zoom» lors de la rédaction
ou la modification d'un champ calculé ou
d'un critère de sélection.
Page 10
RELATIONS & REQUÊTES
Condition VraiFaux
La fonction VraiFaux (IIF immediate if) permet d'utiliser ou d'appliquer une condition dans un
champ calculé. Si le résultat de la condition est vrai, un résultat est affiché, sinon, un résultat
différent est affiché.
Ex: Dans la requête qui contient la liste des employés, on désire afficher «Plein temps» si le
nombre d'heures travaillées est supérieur à 25, sinon on affiche «Temps partiel»
Ex: Dans la requête qui contient la liste des vendeurs ainsi que le total de leurs ventes, vous
voulez calculer la commission. La commission se calcule comme suit: Pour les ventes
inférieures à 5000 vous donnez 15%, sinon vous donnez 20%
Commission: VraiFaux([ventes]<5000;[ventes]*.15;[ventes]*.10)
Dans un champ de la feuille dynamique, on peut joindre des données provenant des deux ou
plusieurs champs. Le symbole de concaténation & est utilisé pour joindre une chaîne de
caractères.
Ex: Pour joindre les champs Nom et Prénom séparés par une virgule et un espace.
Champs réels
Le nom du champ
calculé doit être Symbole de
différent d'un nom de concaténation
champ réel.
Les résultats
Page 11
RELATIONS & REQUÊTES
Dans une feuille de données dynamique, les fonctions Gauche, Droite et ExtracChaîne
permettent d'extraire une partie d'un champ.
Gauche
Extrait une partie du champ à partir de la gauche de la chaîne de caractères.
Prov:Gauche([Province];3)
Nom du champ réel
Droite
Extrait une partie du champ à partir de la droite de la chaîne de caractères
Ex: Extraire les huit caractères du champ Téléphone à partir de la droite. De cette
façon le code régional n'est pas inclus.
Télé:Droite([téléphone];8)
Nom du champ réel
ExtracChaîne
Extrait une partie du champ à partir d'une position définie et d'une longueur
spécifique.
Ex: Extraire les trois chiffres du centre d'un numéro d'assurance social, si
celui-ci est stocké avec un espace entre les groupes (545 345 678)
Num:ExtracChaîne([Nas];5;3)
Nom du champ réel
Nombre de caractères
Nom du champ calculé
Nom de la fonction à extraire
Position de départ
Page 12
RELATIONS & REQUÊTES
Champ Date
Jour:Partdate("j";[date naissance])
Mois:Partdate("m";[date naissance])
aaaa extrait l'année de la date. L'année est aussi une valeur numérique.
Ex: Pour extraire l'année de la date de
naissance des étudiants de la table
Étudiants.
Année:Partdate("aaaa";[date naissance])
Page 13
RELATIONS & REQUÊTES
Requête ACTION
Une requête action est une requête capable de modifier un grand nombre d'enregistrements en une
seule opération. Il existe quatre types de requêtes action : les requêtes Suppression, Mise à jour,
Ajout et Création de table
Ce type de requête apporte des changements globaux à un groupe d'enregistrements dans une ou
plusieurs tables. Vous pouvez par exemple augmenter vos prix de 10% sur tous vos produits
laitiers, ou augmenter de 5% les salaires des personnes appartenant à une certaine catégorie
professionnelle. Une requête MISE À JOUR vous permet de modifier les données d'une table
existante.
P.S. Pour toutes les requêtes Action, on devrait visualiser avant d'exécuter.
Page 14
RELATIONS & REQUÊTES
Requête Ajout
Ajoute un groupe d'enregistrements d'une ou plusieurs tables à la fin d'une ou de plusieurs tables.
Supposez, par exemple, que vous avez une autre table qui contient des films (FILMS EXTRA) que
vous voudriez ajouter à votre table FILMS. Pour éviter de taper toutes ces informations, vous
pouvez les ajouter en utilisant une REQUÊTE AJOUT:
P.S. Si vous désirez ajouter que certains enregistrements, il suffit de l’indiquer dans la zone
critères de la grille.
Page 15
RELATIONS & REQUÊTES
Cette requête permet de créer une autre table. La nouvelle table peut contenir tous les champs et
enregistrements de la table source ou une partie de ceux-ci.
3) La grille s’affiche. Il suffit d’identifier les champs que l’on veut inclure dans la
nouvelle table. Vous pouvez aussi spécifier quels enregistrements seront copiés dans la
nouvelle table en appliquant un critère
Requête Suppression
Supprime un groupe d'enregistrements d'une ou plusieurs tables. Par exemple, vous pouvez
utiliser une REQUÊTE SUPPRESSION pour effacer des produits qui ne sont plus fabriqués ou qui ne
sont plus commandés.
Page 16
RELATIONS & REQUÊTES
Les enregistrements seront supprimés. Une fenêtre de confirmation est affichée. A vous de
confirmer.
Page 17