Vous êtes sur la page 1sur 20

Université de Montréal

Direction des ressources humaines


Développement individuel et organisationnel

Microsoft Access 2000

RELATIONS & REQUÊTES


(MODULE 3)

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 ....................................................................................................................................1


Créer une relation .........................................................................................................................1
Supprimer une relation .................................................................................................................2
Intégrité référentielle ....................................................................................................................3
Outrepasser l'intégrité référentielle ..............................................................................................3
Mettre à jour en cascade les champs correspondants ...............................................................4
Effacer en cascade les enregistrements correspondants ...........................................................4
Type de relations ..........................................................................................................................4
Relation un-à-plusieurs.............................................................................................................4
Relation plusieurs à plusieurs...................................................................................................4
Relation un-à-un .......................................................................................................................4
Requête-Sélection ...........................................................................................................................5
Créer une requête..........................................................................................................................5
Opérateurs logiques et mathématiques.........................................................................................6
Extraire des enregistrements avec Entre..ET, >, <, >=, >=, ou <>...........................................6
Extraire des enregistrements ne contenant PAS de valeurs .......................................................7
Extraire des enregistrements SAUF ceux contenant des valeurs Null .......................................7
Extraire les enregistrements contenant la date courante ..........................................................8
Mise en forme d'un champ d'une requête .....................................................................................8
Supprimer une requête..................................................................................................................8
Requête Paramétrée......................................................................................................................8
Champ calculé...............................................................................................................................10
Identification d'un champ calculé...............................................................................................10
Zoom ......................................................................................................................................10
Condition VraiFaux...................................................................................................................11
Affichage spécifique d'éléments dans une feuille dynamique ..................................................11
Joindre des champs de type Texte..............................................................................................11
Affichage d'une partie de champ ................................................................................................12
Gauche....................................................................................................................................12
Droite......................................................................................................................................12
ExtracChaîne ..........................................................................................................................12
Champ Date............................................................................................................................13
Requête ACTION ............................................................................................................................14
Requête Mise à jour....................................................................................................................14
Requête Ajout.............................................................................................................................15
Requête Création de table...........................................................................................................16
Requête Suppression ..................................................................................................................16
RELATIONS & REQUÊTES

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.

Créer une relation

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

1. Si aucune relation n’existe dans la base de données, la


fenêtre «Ajouter une table» apparaît. Si la fenêtre
«Ajouter une table» n'est pas affichée, il suffit de
cliquer sur son icône

2. Vous devez sélectionner et ajouter les tables dans la


fenêtre Relations.

3. De la table primaire, sélectionner le champ de la clé


primaire et glissé le sur le champ de la clé externe
de la deuxième table.

Clé primaire

Clé externe

Page 1
RELATIONS & REQUÊTES

1. La fenêtre de relation s'affiche. Les champs


communs sont affichés. Cocher l'intégrité
référentielle. Cliquer sur Créer.

2. La relation est maintenant créée.

Table primaire Table externe

Clé primaire

Clé externe

Ligne de
relation

Supprimer une 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 effacer un enregistrement de la table primaire si des enregistrements


correspondants existent dans une table liée. Par exemple, vous ne pouvez pas effacer
l'enregistrement d'un employé dans la table Employés s'il y a des commandes affectées à
celui-ci dans la table Commandes.

➧ 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.

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

Vous pouvez outrepasser ces restrictions relatives à la suppression ou modification des


enregistrements liés et préserver néanmoins l'intégrité référentielle en cochant les cases METTRE À
JOUR EN CASCADE LES CHAMPS CORRESPONDANTS et EFFACER EN CASCADE LES ENREGISTREMENTS
CORRESPONDANTS.

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.

Effacer en cascade 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

La relation un-à-plusieurs est la plus répandue. Dans ce type de relation, un enregistrement de la


table A peut être mis en correspondance avec plusieurs enregistrements de la table B, alors qu'à
chaque enregistrement de la table B ne correspond qu'à un enregistrement de la table A.

Relation plusieurs à 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).

Créer une requête

1. Pour la création d'une nouvelle


requête, vous devez sélectionner
l'onglet Requêtes. Cliquer sur
Nouveau, et sélectionner Mode de
création. La fenêtre sera alors
affichée.

2. Dans la fenêtre Requête, ajoutez les


tables requises pour votre requête.

3. Vous devez insérer les champs dans


la grille Champs située dans la partie
inférieure de l'écran.

4. Par la suite il ne vous reste qu'à


remplir la section Critères si
nécessaire.

5. Exécuter la requête avec l'icône Exécuter et vérifier vos résultats.

6. Sauvegarder la requête en lui


attribuant un nom significatif.

P.S. Le nom de chaque requête


sauvegardée est affiché dans l'onglet
Requête.

Page 5
RELATIONS & REQUÊTES

Opérateurs logiques et mathématiques

Dans la cellule Critère du champ approprié, tapez une expression. L'expression peut inclure
l'opérateur logique OU.

1. Pour afficher tous les étudiants demeurant à


Montréal, à Laval ou à Longueuil tapez
l'expression: Montréal Ou Laval Ou Longueuil
dans la case Critère.

Dans la cellule Critère du champ approprié, tapez une expression. L'expression peut inclure
l'opérateur logique ET.

2. Pour afficher tous les étudiants âgés entre 20 et 25


ans tapez l'expression: >20 ET <25 dans la case
Critère.

Extraire des enregistrements avec Entre..ET, >, <, >=, >=, ou <>

Dans une expression d'une case Critère du champ


approprié, vous pouvez identifier une plage à l'aide de
l'opérateur Entre…Et (Between...And) ou des
opérateurs de comparaison (<, >, <>, <= et >=).

3. Par exemple, vous pouvez rechercher les étudiants


inscrits Entre 01/01/90 et le 31/12/95.

Page 6
RELATIONS & REQUÊTES

Exemples d'opérateurs utilisés dans des expressions.

Expression Signification

>234 Nombres supérieurs à 234

Entre#2/2/93# Et#1/12/93# Dates comprises entre le 2-Fév-93 et le 1-Déc-93

<1200.45 Nombres inférieurs à 1200.45

>="Caron" Tous les noms depuis Caron jusqu'à la fin de l'alphabet

>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.

Extraire des enregistrements ne contenant PAS de valeurs

Dans la cellule Critère du champ approprié, tapez


l'expression Est Null (Is Null). Par exemple, si vous
voulez afficher la liste de tous les étudiants pour
lesquels aucun numéro d'assurance social n'a été entré,
tapez Est Null dans la cellule Critère du champ NAS.

Extraire des enregistrements SAUF ceux contenant des


valeurs Null

Dans la cellule Critère du champ approprié, tapez


l'expression Pas Null (Not Null) ou Est Pas Null (Is Not
Null). Par exemple, si vous voulez afficher la liste de
tous les étudiants SAUF pour lesquels aucun numéro
d'assurance social n'a été entré, tapez Est Pas Null
dans la cellule Critère du champ NAS.

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.

Mise en forme d'un champ d'une requête

Lors de l'affichage de la requête en mode feuille,


si un élément n'est pas affiché selon votre désir,
vous pouvez toujours le faire en mode création. Il
suffit de sélectionner le champ, pour ensuite
afficher le menu contextuel (BOUTON DROIT) et
sélectionner l'option Propriétés. Celle-ci affiche
une boîte de dialogue dans laquelle vous pouvez
modifier l'affichage.

Supprimer une requête

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

Boîte de dialogue générée


à partir du critère

Pour afficher TOUS les enregistrements si AUCUNE


réponse est tapée dans la boîte de dialogue, vous
devez modifier quelque peu l'expression. Le mot
Comme doit être inséré avant le premier crochet et
les symboles &* doivent être ajoutés à la suite du
deuxième crochet;

Comme [Entre le nom de la ville] &*

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

Entre [Entrez l'âge minimum:] Et [Entrez l'âge maximum:].

Une première fenêtre demande


l'âge minimum.

La deuxième fenêtre demande


l'âge maximum. Par la suite, la
requête est activée

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.

Identification d'un champ calculé

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].

Syntaxe: nom du champ calculé:


expression, expression, etc.
ex: Dans la requête qui contient la liste
des propriétaires, on désire calculer une
augmentation de 10% sur la pension
mensuelle.

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.

Salaire Brut: [taux]*[heures]

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é.

Syntaxe: nom du champ calculé: VraiFaux(condition;Vrai;Faux)

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»

Statut: VraiFaux ([heures]>25;"Plein temps";"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)

Affichage spécifique d'éléments dans une feuille dynamique


Access permet d'afficher les données de façon très spécifique. Par exemple, on pourrait créer un
champ calculé qui joint deux ou plusieurs champs, ou on pourrait extraire une partie des données
à afficher seulement.

Joindre des champs de type Texte

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.

Noms: [Nom]&", "&[Prénom]

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

Affichage d'une partie de champ

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.

Ex: Extraire les trois premiers caractères du champ Province

Prov:Gauche([Province];3)
Nom du champ réel

Nom du champ calculé


Nom de la fonction Nombre de caractères à
extraire à partir de la
gauche

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

Nom du champ calculé


Nom de la fonction Nombre de caractères à
extraire à partir de la
droite

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

Il est possible d'extraire une partie d'un champ de type DATE

Syntaxe: Partdate("partie de la date à extraire";[nom du champ])

j extrait le jour de la date.


Ex: Pour extraire le jour de la date de naissance des étudiants de la table Étudiants.

Jour:Partdate("j";[date naissance])

m extrait le mois de la date. Le mois est une valeur numérique.


Ex: Pour extraire le mois de la date de naissance des étudiants de la table Étudiants.

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

Requête Mise à jour

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.

1) Dans l’onglet REQUÊTE, cliquer sur NOUVEAU, et sélectionner MODE CRÉATION

2) Cliquer sur le menu déroulant de l’icône TYPE DE REQUÊTE

Le menu contient la liste des différents types de requêtes que l’on


peut utiliser. Cliquer sur METTRE À JOUR UNE REQUÊTE et le tour
est joué. La grille de la requête est modifié quelque peu.

3) Ajouter la table à mettre à jour dans la grille

Ex : Je voudrais augmenter le profit de tous les films


de 10%. Dans un premier temps, on glisse le champ
PROFIT dans la grille sous Champ. J’applique la
formule qui multiplie le contenu du champ Profit par Icône Mise à
1.1. Si des critères doivent être appliqués, on les inscrit jour
dans la zone critère.

Champ à mettre à jour

Formule qui ajoute 10% au


contenu du champ Profit

4) Exécuter la requête en cliquant sur l’icône Exécuter

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:

1) Dans l’onglet REQUÊTE, cliquer sur NOUVEAU, et sélectionner MODE CRÉATION

2) Cliquer sur le menu déroulant de l’icône TYPE DE REQUÊTE

Le menu contient la liste des différents types de requêtes que


l’on peut utiliser. Cliquer sur REQUÊTE AJOUT. La grille de la
requête est modifiée quelque peu.

3) Insérer la table qui contient les films à ajouter (FILMS EXTRA).


Glisser l’astérisque dans la zone CHAMP. L’astérisque signifie
que tous les champs de la table source seront
ajoutés dans la table cible. Si vous désirez
qu’ajouter certains champs, vous les glisser un par
un dans la grille.

4) La zone AJOUTER À : fait référence à tous les


champs de la table cible

5) Exécuter la requête en cliquant sur l’icône


Exécuter

6) Une confirmation de votre part est à effectuer

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

Requête Création de table

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.

1) Dans l’onglet REQUÊTE, cliquer sur NOUVEAU, et sélectionner MODE CRÉATION

2) Cliquer sur le menu déroulant de l’icône TYPE DE REQUÊTE

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

4) Cliquer sur REQUÊTE CRÉATION DE TABLE

5) Une fenêtre s’affiche dans laquelle


vous devez entrer le nom de la nouvelle
table.

6) Exécuter la requête en cliquant sur l’icône Exécuter

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.

1) Dans l’onglet REQUÊTE, cliquer sur NOUVEAU, et sélectionner MODE CRÉATION

2) Cliquer sur le menu déroulant de l’icône TYPE DE REQUÊTE

3) Cliquer sur REQUÊTE SUPPRIMER

Page 16
RELATIONS & REQUÊTES

4) La grille s’affiche. Vous y insérez le champ sur


lequel votre critère s’applique

Vous définissez le critère

5) Exécuter la requête en cliquant sur l’icône Exécuter

Les enregistrements seront supprimés. Une fenêtre de confirmation est affichée. A vous de
confirmer.

Page 17

Vous aimerez peut-être aussi