Vous êtes sur la page 1sur 156

Université Hassan II - Casablanca

Faculté des sciences juridiques, économiques et sociales


Mohammedia

Cours Informatique Appliquée – S6

Gestion de Base de données avec ACCESS

Séance 1

Amal EL MZABI
Introduction aux Bases de données
Systèmes de Gestion de Base de Données ACCESS

➢ Les données ne servent pas seulement à contrôler la gestion


et le fonctionnement d'une entreprise au jour le jour. Elles
sont aussi souvent utilisées pour soutenir des décisions
tactiques et stratégiques…

➢ Pouvoir conserver les données sous une forme structurée,


cohérente, non redondante et facilement accessible.

2
Plan
1. Définition d’une base données
2. Principales fonctions d’une base de données
3. Bases de données relationnelles
4. Système de Gestion de Base des données
5. Création d’une base de données sur le SGBD
Microsoft Access
6. Table, Champs, Enregistrement et Clés
7. Types de relations
8. Requêtes (QBE et SQL)

3
Définition

Base de Données (BD) est un ensemble de données

structurées, sécurisées, et inter-corrélées, enregistrées

dans des fichiers avec le minimum de redondance et

traitées par une ou plusieurs applications, d’une manière

optimale.

4
Fonctions principales d’une BD

Une base de données est un outil qui permet de :


• Collecter des informations.
• Stocker ces informations.
• Traiter ces informations.
• Fournir à la demande ces informations
Caractéristiques d’une BD

• Données structurées : Les informations contenues dans une


base de données sont réparties en enregistrements, chaque
enregistrement ayant une structure bien définie.

• Données non redondantes : Une même information ne sera pas


répétée plusieurs fois dans la base de données.

• Données cohérentes : Il ne doit pas être permis d’enregistrer


dans une base des informations incohérentes entre elles.

6
• Données accessibles directement selon de multiples critères.

• Indépendance des programmes et des données : La base de


données est indépendante des programmes qui y ont accès, on
peut utiliser plusieurs programmes pour traiter différemment
ces données.

• Sécurité des données stockées : La base de données doit


permettre un système de sécurité permettant de gérer les
droits d’accès aux informations par les utilisateurs.

7
Avantages d’utilisation d’une BD

• Accès rapide et facile à l'information

• Toute l'information se retrouve à une seule place dans la base


de données

• Regroupement de l'information qui provient de plusieurs


sources

• Recherche facile

• Meilleur suivi de l'information et gestion des données

• Meilleure analyse des données et prise de décision

• Automatisation de tâches répétitives

• Sécurité des données


8
Bases de données relationnelles

Une BD relationnelle est composée d’un ensemble de tables.

• Chaque table a un nom

• Une table est composée de Lignes qu’on appelle enregistrements


(ou N-uplet) et de colonnes représentant chacune un champ
(attribut).

• L’enregistrement (ligne) : est l’ensemble des données relatif à la


même information

• Le champ (colonne) : est l’unité d’information dans une table,


une table est constituée de différents champs. Chaque champ a
un nom et un type de données : Texte, numérique, date, …
9
Structure d’une BDR

10
Exemple: Base de données pour la gestion des commandes

11
Chaque table d’une BDR a la structure suivante :

Notation : Nom_Table(Champ 1, Champ 2,…, Champ N)

12
Ci-dessous un exemple de table d’une BD pour la gestion des
commandes d’une entreprise
Enregistrements Nom de la table: Commandes

Commandes
Nu_cmd
Code_Client Champs
Date_cmd
Cmd_réglée

Commandes(Num_Cmd, Code_Client, Date_Cmd, Cmd_réglée) 13


Remarques

➢ Deux tables d’une même base de données ne peuvent


pas avoir le même nom.

➢ Deux champs de la même table ne peuvent pas avoir le


même nom.

➢ Un même champ peut être présent dans plusieurs


tables.
Conception d’une Base de Données

La réalisation d’une Base de Données implique trois


grandes étapes:

1. La définition d’un cahier des charges incluant les


règles de gestion.

2. La modélisation.

3. L’implantation physique dans un système


informatique.

15
Identifiant, clé primaire et clé étrangère

Un identifiant c’est un (ou plusieurs) champ d’une table


de la BD qui permet:
• d’identifier chaque enregistrement de façon
distincte.
• de créer les relations (liaisons) entre les tables

Exemples: CNE, CIN, Code d’Appogée, N° de facture,


immatricule
16
Exemple

Identifiants

17
Clé primaire
Une table peut posséder plusieurs identifiants. On choisit l'un
d'eux, qu'on déclare clé primaire. Les autres sont dès lors des
identifiants secondaires.

Une clé primaire est donc une combinaison minimale de propriétés


qui permet d’identifier d’une manière unique un enregistrement.

Une clé peut être simple (un seul champ) ou composée (plusieurs
champs), et ne peut être jamais nulle ou répétée

Clé étrangère
Un champ (ou ensemble de champs) est clé étrangère dans une table
s’il fait référence à une clé primaire dans une autre table.
Identifiant, clé primaire et clé étrangère

Clé primaire

Clé étrangère

19
Système de Gestion de Base de Données

Un Système de Gestion de Bases de Données (S.G.B.D.) est une


collection de logiciels (un programme)
– Il permet de décrire, traiter, interroger les ensembles de données
formant la base.
– Il doit également assurer la sécurité et la confidentialité des données
dans un environnement où de nombreux utilisateurs ayant des besoins
variés peuvent interagir simultanément sur ces données.

Exemple de SGBDR :
ACCESS pour gérer des petites bases de données.
ORACLE, très performant pour les grandes BD mais coute très cher
SQLSERVER, outils de Microsoft concurrent de oracle (coute cher)
MYSQL, performant et gratuit 20
Création de tables d’une base de données

Exemple de base de données pour la gestion des produits

Règles de gestion

➢ Chaque produit est fourni par un seul fournisseur, et un


fournisseur peut fournir plusieurs produits.
➢ Un fournisseur est défini par un code, un nom, l’adresse et le
téléphone.
➢ Chaque produit est défini par une référence, une désignation,
le prix unitaire , la disponibilité et la quantité en stock.

21
Tables de la base de données

22
Système de Gestion de Base de Données - Access

Démarrer Microsoft Access

23
Création d’une base de données

24
Les Composantes du SGBDR ACCESS

25
Les Composantes du SGBD ACCESS

1. Les tables: pour stocker les données ;

2. Les formulaires: pour saisir les données ou les visualiser à l'écran ;

3. Les états: pour imprimer les données ;

4. Les requêtes: pour retrouver les données ;

Autres composantes:

1. Les macros, pour automatiser des opérations répétitives effectuées

sur la base ;

2. Les pages, pour communiquer avec la BDD via un navigateur;

3. Les modules, pour rajouter des fonctionnalités grâce à de la

programmation en VBA (Visual Basic for Applications).


26
Création d’une table

27
Commentaire sur le champ
La liste des champs (ajouter les commentaire)
(ajouter les champs) Types de chaque champ
(définir les types)

28
Définir les types des données

Ajouter le champ CNE

Choisir le type du champ CNE

29
Ajouter une clé primaire

Sélectionner le champ & Définir CNE Clé primaire

30
Type de données d’un champ

− Texte : Concerne les valeurs alphanumériques (suite de


caractères ou combinaison de caractères et de chiffres).

− Numérique : Concerne les valeurs numériques (entiers ou réels


…etc.).

− Date et heure : Concerne les valeurs de type date telles que


date d’une commande, date de livraison, date d’intervention,
date d’embauche, date d’inscription…, ou les valeurs
concernant les heures comme heure de départ, heure
d’arrivée, heure d’une transaction….

31
− Monétaire : Concerne les valeurs numériques contenant des
symboles des unités monétaires comme $, €, DH…etc. Tous les
traitements de calcul qu’on peut faire sur les données
numériques sont valables pour les données monétaires.

− Oui/Non : Concerne les données qui ne peuvent avoir que deux


valeurs possibles telles que : Oui/Non, Vrai/Faux,
Activé/Désactivé.

− Objet OLE : Concerne les données qui peuvent être des


documents Microsoft Word, des feuilles de calcul Microsoft
Excel, des images, des sons, des vidéos ou d’autres données
binaires.

− LienHypertexte : pour un champ destiné à contenir un lien


cliquable. 32
Propriétés

Taille du champ : définit le nombre de caractères ;

Format : définit la manière dont les informations s'affichent.

Masque de saisie : guide la saisie des données en déterminant la


manière dont les données doivent être saisies.
33
Passage de mode Création en mode Feuille de données pour saisir les
données
Mode de création

Mode d’affichage

35
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia

Cours Informatique Appliquée – S6

Gestion de Base de données avec ACCESS

Séance 2

Amal EL MZABI
Relations entre les tables d’une BD

Prenons l’exemple de la gestion d’une collection de livres dans une


bibliothèque

Livres
Nom Auteur
Prénom Auteur

Date de naissance de l’auteur

Nationalité auteur
Titre
Nbre pages
Année d’édition
Éditeur

2
Il est plus judicieux de créer ici deux tables, il faut toujours regrouper dans
une même table toutes les informations relatives au même « sujet »

Auteurs
Nom Auteur
Livres
Prénom Auteur
Nom Auteur
Prénom Auteur Date de naissance

Date de naissance Nationalité


Nationalité
Titre Livres
Nbre pages Titre
Éditeur Nbre pages
Année d’édition Éditeur
Année d’édition

3
Trouver un moyen pour savoir exactement à Auteurs

quel auteur correspond chaque livre. N° Auteur


Nom Auteur
→ ajouter dans la table Auteurs un champ qui
Prénom Auteur
va identifier de façon unique chaque
Date de naissance
enregistrement → Clé Primaire
Nationalité

Associer un livre à un auteur- Livres


→ ajouter un champ dans la table Livres, ce N° Auteur

champ contient le n° de l’auteur de livre Titre


Nbre pages
Éditeur
Année d’édition
N° Auteur clé primaire dans la table Auteurs
Et clé étrangère dans la table Livres

4
Définitions

➢ Une relation est un lien entre deux tables, associant des


données de la première (table source) avec celles de la
deuxième (table destination).

➢ Relation : la relation entre deux tables est basée sur un


champ commun aux deux tables. Elle est matérialisée par une
ligne appelée « ligne de jointure ».

➢ Une relation a pour principe la correspondance des données


des champs clés de deux tables :

– Ces champs sont la clé primaire et la clé étrangère.

5
Relation un-à-un

Dans une relation de type un-à-un:


– Chaque enregistrement de la table 1 ne peut
correspondre qu'à un (seul) enregistrement de la table 2,
– Et inversement, chaque enregistrement de la table 2 ne
peut correspondre qu'à un (seul) enregistrement de la
table 1.

Cette relation est représentée par un trait reliant la clé


primaire de la table 1 avec la clé primaire de la table 2

6
Table 1 Table 2
Enregistrement 1 Enregistrement 1
Enregistrement 2 Enregistrement 2
Enregistrement 3 Enregistrement 3
Enregistrement 4 Enregistrement 4
Enregistrement 5 Enregistrement 5

Exemple
Possède
Personne Voiture
1 1
Num_permis Immatricule
Nom Marque
Prénom Couleur
Ville Puissance

➢ Une personne possède une seule voiture


➢ Chaque voiture n’appartient qu’à une seule personne 7
Relation un à plusieurs (1 à n)

Un enregistrement de la table 1 est en relation avec plusieurs


enregistrements de la table 2, et un enregistrement de la table
2 est en relation avec un seul enregistrement de la table 2 .

Table 2
Table 1
Enregistrement 1
Enregistrement 1
Enregistrement 2
Enregistrement 2
Enregistrement 3
Enregistrement 4
Enregistrement 5

Cette relation est représentée par un trait reliant la clé


primaire de la table 1 avec la clé étrangère de la table 2
8
Exemple 1

Clé secondaire
Clé primaire
Auteurs Livres
1 n
N° Auteur N° Auteur

Nom Auteur Titre

Prénom Auteur Nbre pages

Date de naissance Éditeur

Nationalité Année d’édition

Un auteur a un ou plusieurs livres


Chaque livre ne correspond qu’un seul auteur

9
Exemple 2

Un Fournisseur peut fournir un ou plusieurs produits.


Chaque produit est fourni qu’avec un seul fournisseur.

10
Relation Plusieurs à Plusieurs (n - m)

Un enregistrement de la table 1 est en relation avec un ou


plusieurs enregistrements de la table 2, et un enregistrement
de la table 2 est en relation avec un ou plusieurs
enregistrements de la table 2 .

Exemple

➢ Un client achète un ou plusieurs produits


➢ Un produit peut être vendu à un ou plusieurs clients,
Autrement dit, un produit peut être présent sur plusieurs
ventes 11
Comment définir une relation Plusieurs à Plusieurs dans
Access ?
Solution

Il est impossible de lier directement 2 tables par une relation de


Plusieurs à Plusieurs. Il faut systématiquement passer par une troisième
table.

On suppose que nous avons déjà 2 tables construites correctement


(notamment avec une clé primaire chacune). Dans ce cas :

1. Créez une troisième table, qu'on appellera "table de jonction".


2. Dans cette table, reprenez la clé primaire des tables 1 et 2.
3. La clef primaire de la table 3 sera au minimum la combinaison des
2 autres clés.
4. Dans la fenêtre Relations, tracez maintenant une relation
classique "1 à Plusieurs" entre les tables 1 et 3, et faites de même
12
entre les tables 2 et 3.
Dans cet exemple, la table Ventes est la table de jonction.

On peut désigner la clé primaire : le champ Num_Vente et pas


le couple composé de (Num_produit, Code_Client).
Pour établir ces relations sur Access:
1. Fermez tous les objets, ne gardez que la fenêtre « Base de
données » et cliquez sur Relations

dans l’onglet Outils de base de données.

2. Activez la commande « Afficher la table » dans le menu


« Relations », sélectionnez ensuite la table et cliquez sur
«Ajouter».

3. Faites glisser le champ comportant la clé primaire sur le


champ homologue de l’autre table
14
Exemple

Table Auteur

Table Livre

15
Outils de base de données → Relations

Cliquer sur relations

16
Afficher la table → Ajouter Auteur + Ajouter Livre → Fermer

17
Glisser N°auteur (table auteur) vers N°auteur (table Livre)

18
Cette relation signifie qu’un auteur peut être
associé à plusieurs livres et un livre est
associé à un seul auteur.
L’intégrité référentielle
Un ensemble de règles suivies par Access pour gérer les relations
entre tables et éviter des incohérences dans une base de données.
Elle empêche de supprimer accidentellement des enregistrements dans
une table mère quand il existe des enregistrements correspondants
dans la table Fille.

20
Prenons l'exemple de gestion Fournisseurs/Produits : un fournisseur
fournit plusieurs produits.

➢Lorsque vous définissez la relation entre la table Fournisseurs et


la table Produits, vous devez activer l'intégrité référentielle. De
cette façon, Access interdira la création d'un produit si le
fournisseur n'existe pas au préalable.

➢D'une manière générale, l'intégrité référentielle implique de


renseigner la table du côté "1" avant la table du côté "Plusieurs".

➢Les deux tables doivent appartenir à la même base de données.


21
Mises à jour et suppressions
en cascade

Mettre à jour en cascade


Si cette option est cochée et que vous changez le code du
fournisseur (dans la table Fournisseurs), tous les produits
correspondants verront aussi leur Code modifié. Inversement, si la
case n'est pas cochée, il sera impossible de modifier un
Code_Fournisseur si des produits lui sont attribuées.

Effacer en cascade
Si cette option est cochée et que vous supprimez un fournisseur,
tous ses produits seront automatiquement détruites.
Inversement, si la case n'est pas cochée, il sera impossible de
supprimer un fournisseur tant que tous ses produits n'ont pas été
détruites. 22
Application 1
Un service financier réalise un audit de données bancaires. Le
schéma relationnel de ces données est le suivant :

– Clients (IdClient, Nom, Prénom, Ville, Tél)

– Compte (IdCompte, IdClient, DateCréation, Solde)

– Action (IdAction, IdCompte, DateAction, Montant)

1. Quelles sont les clés primaires et les clés secondaires de


chaque table? Justifiez votre réponse.

2. Créer la BD sous Access. Ajouter les relations entre les


tables en activant l’intégrité référentielle. 23
3. Parmi les enregistrements suivants lesquels seront rejetés
par le SGBD et pourquoi ?

Table : Clients
IdClient Nom Prenom Ville Tél
1 Amine Casablanca 0663562773
Salim Rajae Tanger 0662152435
3 Amine Jamal Agadir 0661661610
4 Nasri Reda Tanger 0670263560

Table : Compte
IdCompte IdClient DateCréation Solde
123 1 10/3/2012 350200
124 3 12/1/2013 16I890
125 2 10/4/2013 680000
124 4 2/11/2014 255000
24
✓ Pour table Client :
Le 2ème enregistrement car le champ « IdClient » étant
la clé primaire ne peut pas être vide ou nulle.

✓ Pour table Compte :


Le 2ème enregistrement car la valeur du champ Solde ne
respecte pas le format approprié.

Le 3ème enregistrement car aucun client n’a l’Id = 2.

Le 4ème enregistrement car il s’agit d’une clé primaire


répétée (redondance).

25
Application 2
Le responsable du complexe cinématographique a mis en place cette
base de données afin de gérer les projections des films dans les
différentes salles de cinéma :
Acteur (Num_acteur, Nom, Prénom)
Jouer (Num_acteur, Num_Film, Rôle)
Film (Num_Film, Titre, Genre, Année)
Projection (Num_Ciné, Num_Film, Date)
Cinéma (Num_Ciné, Nom, Adresse)
1. Quelles sont les clés primaires et les clés secondaires de chaque
table ? Justifiez votre réponse.
2. Tracez les relations entre les tables de cette base de donnée.
26
Application 3: Base de données
« Gestion de Commandes »
La BD « Gestion de commandes », qui sera utilisée pour le reste du
cours, contient les quatre tables suivantes : Clients, Commandes,
Produits et Détails_Commande, dont le schéma relationnel est :

27
Les requêtes
La requête est une action qui porte sur plusieurs
enregistrements. Elle sert à exploiter les données contenues
dans les tables.
Elle permet de:
➢ Trier des données
➢ Extraire des données par critères
➢ Produire des calculs
➢ Créer, Modifier des tables
Le SGBD Access permet de créer des requêtes en utilisant
soit une interface graphique QBE, soit le langage SQL
28
Types de requêtes
✓ La requête sélection : Elle permet de sélectionner des
enregistrements qui répondent aux critères demandés, de faire des
calculs et des regroupements. Elles ressemblent beaucoup aux filtres,
mais permettent, en plus, de travailler sur plusieurs tables simultanément.
✓ La requête d'Analyse croisée : Cette requête présente ses résultats
sous forme de tableau (de type Excel). On l'utilisera pour comparer des
valeurs, dégager des tendances.
✓ La requête de Création de table : Cette requête crée une table à
partir des données qu'elle a extraite dans une ou plusieurs autres tables.
✓ La requête Mise à Jour : Elle modifie le contenu d'un ou plusieurs
champs d'une ou plusieurs tables. C'est le moyen le plus efficace pour
mettre à jour un grand nombre d'enregistrements en une seule opération.
✓ La requête Ajout : Cette requête ajoute les données qu'elle a
extraites à la fin d'une table déjà existante.
✓ La requête Suppression : Cette requête supprime un ou plusieurs
enregistrements dans une ou plusieurs tables.
29
Requête sélection

Création et exécution d’une requête de sélection en


mode QBE

Dans la suite on utilisera la Base de données « Gestion de


commandes »

Pour créer une requête de sélection :

− Fermer toutes les tables ouvertes de la BD ;

− Dans de l’onglet « Créer » aller dans le groupe « Requêtes »


et cliquer sur l’élément « Création de requête ».

− La fenêtre « Afficher la table » s’ouvre. 30


Ajouter, à partir de la fenêtre « Afficher la table », la ou les
tables concernées par la requête. Ajouter par exemple la table
Clients et refermer la fenêtre.

31
On obtient ensuite l’interface suivante:

Pour basculer entre le Pour exécuter une Pour afficher la ou les


mode création et mode requête tables concernées par la
exécution requête

Les types de requêtes


action

Remarque :
Une requête qui exploite une seule table est dite requête
monotable ou simple

32
Structure et paramétrage d’une requête de sélection

Nom de la
requête

Liste des
champs

Les
paramètres
de la requête

Requête1 est le nom par défaut de la requête. On peut le changer


par un nom significatif une fois l’enregistrée. 33
Pour le paramétrage d’une requête, on sélectionne les
champs : soit que l’on souhaite afficher dans notre résultat
de requête soit dont on a besoin en critères pour exécuter
la requête.

La ligne "Champ" indique les champs à ajouter. Pour ajouter


un champ, soit double-cliquer sur le champ, soit le
sélectionner dans la table et l'amener avec la souris, soit on
clique sur la ligne "Champ", la liste de tous les champs
s'affiche alors et on en sélectionne un. Un des champs
proposés s’appelle '*', ce champ signifie "tous les champs de
la table".
34
La ligne "Table" sert à sélectionner la table contenant
le champ sélectionné.

La colonne "Tri" indique de quel ordre vont être triés


les champs dans le résultat de la requête.

La colonne "Afficher" indique si le champ doit être


affiché ou non.

La ligne "Critères" indiquera le ou les critères de


sélection pour la requête.
35
Manipulation des critères

➢ Si vous avez deux conditions regroupées par ou, la deuxième


condition est spécifiée dans la ligne OU.

➢ Si les conditions sont regroupées par l’opérateur ET alors


elles sont spécifiées dans la même ligne CRITERES.

➢ Une donnée de type texte doit être écrite entre guillemets


("...").
➢ Les nombres sont écrits tels quels.
➢ La date et / ou l'heure doivent être placées entre dièses
(#), avec séparation de jours, mois et année par la barre
oblique (/) ou un trait d'union (-), heure avec séparation de
minute et seconde par deux points (:). 36
Access met à notre disposition en plus des opérateurs (=, <>, <, >, <=,
>=), les opérateurs suivants:

Opérateur Signification Exemple


Sélectionne les enregistrements pour Entre "A" et « D"
Entre lesquels la valeur d'un champ est Pas Entre 20 et 30
Pas Entre comprise dans un intervalle de valeurs Entre #01/01/18# et
#31/12/18#
Sélectionne les enregistrements pour
In In ("Rabat "; "Fès")
lesquels la valeur d'un champ est
Pas In Pas In (1;3;5)
comprise dans une liste.
Est NULL Sélectionne les enregistrements pour
Est NULL
Est pas lesquels un champ est vide ou non
Est pas NULL
NULL
Sélectionne les enregistrements
Comme Comme « ma*"
contenant une donnée approximative.
Sélectionne les enregistrements ne
Pas Pas Entre "A" et "D"
correspondant pas au critère
37
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia

Cours Informatique Appliquée – S6

Gestion de Base de données avec ACCESS

Séance 3

Amal EL MZABI
Exemple de requête de sélection avec des critères
Dans notre BD « Gestions de Commandes », on souhaite afficher, le
code, le nom, le prénom et la ville des clients habitants Casablanca
ou Rabat. Le résultat doit être trié par Nom en ordre croissant.
Pour ce faire, nous allons double-cliquer sur tous les champs
nécessaires à savoir : CodeClient, Nom, Prenom, Ville.

On se place sur la ligne de critères du champ Ville et on saisit soit :


"Casablanca" Ou "Rabat" soit : In("Casablanca";"Rabat").
Autre possibilité : La requête peut aussi être formulée de la
façon suivante :

Avec cette méthode, on peut saisir autant de critères pour un


même champ qu’on le souhaite en les saisissant les uns en dessous
des autres même s’il n’y a pas de Ou devant chaque Ville.
3
Cliquer ensuite sur le bouton Exécuter. Vous aurez bien les
enregistrements comportant les clients habitants Casablanca et
Rabat.

4
Exemple 2
Afficher le code, le nom et le prénom des clients, ainsi que la
ville dont le nom ne commence ni par « A » ni par « S » et qui
sont de Casablanca ou Mohammedia.

Cette requête sert à voir les caractères spéciaux tel que " * " et "?".
Le caractère "?" est utile pour remplacer un caractère dans la
requête. Par exemple, une recherche sur b?lle pourrait donner les
résultats suivants: balle, belle, bille, bulle.

Le caractère "*" sert à remplacer une série indéterminée de


caractères. On connaît le début mais pas la fin. Par exemple, une
recherche en utilisant bal* pourrait donner le résultat suivant:
balade, balai, balance, balcon, baleine, balise, balle, ballerine, ...
5
Pour le critère du champ "Nom", écrire seulement Pas A* et Pas S*. Access
se chargera d’ajouter Comme et les guillemets pour indiquer que les
enregistrements recherchés ne commencent ni par « A » ni par « S ».

6
Création d’une requête simple de
sélection en mode SQL
1. La construction d'une requête commence par
l'identification des informations à afficher (Clause
SELECT)
2. On détermine ensuite les restrictions nécessaires à
l'obtention du résultat (clause WHERE)
3. On repère ensuite dans le modèle relationnel la ou les
tables concernées par l'ensemble des champs mis en
ouvre dans les points 1 et 2 : on en déduit les tables
nécessaires à la clause FROM
4. On triera enfin grâce à la clause ORDER BY éventuelle.
5. On termine le code par un point virgule « ; »
7
Une requête sélection SQL commence toujours par la clause SELECT
et se termine par un point virgule.
Syntaxe exemple :
Select champ1, champ2, …
From tableSource
WHERE « Conditions sur les champs »
Order by [champ i] ASC/DESC ;

Champ1, champ2 sont les champs à afficher en résultat.


tableSource : indique la table d’où viennent les champs utilisés dans
la requête.
Les critères sont ajoutés après la clause Where (On utilise les
opérateurs de critères en anglais).
La dernière ligne indique que le résultat sera trié par le [champ i] en
8
ordre croissant (ASC) ou décroissant (DESC).
CLAUSE Explication
SELECT Liste les champs ou calculs à afficher ou
restituer
FROM Liste les tables nécessaires à
l'interrogation
WHERE Liste des conditions limitant la
recherche d'information. N'apparaît
qu'une fois
AND Précise que les conditions se cumulent

OR Précise des conditions alternatives

NOT Exprime le contraire d'une condition

ORDER BY Effectue un tri croissant (ASC) ou


décroissant (DESC) sur certains champs
GROUP BY Effectue un tri puis réalise des calculs
par sous catégories.
Inclut donc la notion d'ORDER BY.
HAVING Précise des conditions sur les résultats
des calculs
9
Pour créer une requête de sélection SQL on procède de la
même manière que la création en mode QBE :

− Fermer toutes les tables ouvertes de la BD.


− Aller à l’onglet « Créer » puis dans le groupe « Requêtes »
cliquer sur l’élément « Création de requête ».
− Fermer la fenêtre « Afficher la table », On obtient
l’affichage suivant:

Cliquer ici pour basculer en mode SQL

10
Exemples
On reprend les exemples précédents en mode SQL

Exemple 1 : Dans la BD « Gestions de Commandes », on souhaite


afficher, le code, le nom, le prénom et la ville des clients habitants
Casablanca ou Rabat. Le résultat doit être trié par Nom en ordre
croissant.

SELECT CodeClient, Nom, Prenom, Ville


FROM Clients
WHERE Ville In ("Casablanca","Mohammedia")
ORDER BY Nom;

11
Ou bien :

SELECT CodeClient, Nom, Prenom, Ville


FROM Clients
WHERE Ville = "Casablanca" Or Ville = "Mohammedia"
ORDER BY Nom;

Exemple 2 : Afficher le code, le nom et le prénom des clients dont


le nom ne commence ni par « A » ni par « S » et qui sont de
Casablanca ou Mohammedia.

SELECT CodeClient, Nom, Prenom, Ville


FROM Clients
WHERE Nom Not Like "A*" And Nom Not Like "S*" AND Ville
In ("Casablanca","Mohammedia")
ORDER BY Nom; 12
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia

Cours Informatique Appliquée – S6

Gestion de Base de données avec ACCESS

Séance 4

Amal EL MZABI
Requête de sélection avec des champs
calculés

Il est possible de créer dans une requête des champs calculés


qui donnent le résultat d'une formule utilisant le contenu des
champs de l'enregistrement.

Pour ce faire, aller dans la ligne des champs et ajouter le nom du


nouveau champ calculé (ALIAS) suivi des deux points « : » suivi
de la formule ou l’expression utilisée pour le calcul.

2
Exemple : Dans la BD « Gestion des commandes », on souhaite
afficher le numéro des commandes contenant le produit de
référence « Pdt01 », la quantité commandée et le prix total hors
taxes

Alias

3
Requête de sélection avec les fonctions
de traitement des dates
Quelques fonctions de traitement des dates:

Fonction Signification
Jour(Date) Affiche le jour de la date en paramètre
Mois(Date) Affiche le mois de la date en
paramètre
Année(Date) Affiche l’année de la date en
paramètre
Date() Affiche la date d’aujourd’hui (du
système)
Affiche la différence en nombre
Diffdate("format"; date1; d’années, de jours, de mois, de
date2) trimestres,… entre la date « date1 » et
la date « date2 ».
Format(Date; "format") Affiche le mois/jour de la date en
lettres alphabétiques. 4
Remarque :

Le premier paramètre de la fonction « Diffdate» peut avoir les


valeurs suivantes : "t" (différence en nombre de trimestres); "m"
(de mois); "e" (de semaines); "j" (de jours); "h" (d’heures); "n" (de
minutes); "s" (de secondes).

Les formats utilisés dans la fonction « Format » pour les types de


données date/heure sont : « aaaa », « mmmm », « jjjj », « t », ….

Format(Date ;"mmmmm") affiche les mois en lettres ("jjjj" pour


les jours). « mmm » affiche les mois abrégés, « mm » affiche les
mois par deux chiffres, « m » affiche les mois en chiffre.

Format(Date ;"t") affiche le trimestre en chiffres.


5
Exemple :

Dans la BD « Gestion des Commandes », on souhaite afficher le


numéro et la date des commandes passées entre le 30
novembre 2018 et le 31 janvier 2019.

6
Exemple :
Dans la BD « Gestion des commandes », on souhaite afficher le
code du client, le numéro et la date de leurs commandes faites au
cours du premier trimestre de l’année 2019 : Alias

Ou

7
Requête de sélection avec les fonctions
de traitement des dates en SQL
Fonctions de traitement des dates :

Fonction Signification
Day(Date) Affiche le jour de la date en paramètre
Month(Date) Affiche le mois de la date en
paramètre
Year(Date) Affiche l’année de la date en
paramètre
Date() Affiche la date d’aujourd’hui (du
système)
Affiche la différence en nombre
Datediff("format", date1, d’années, de jours, de mois, de
date2) trimestres,… entre la date « date1 » et
la date « date2 ».
Format(Date, "format") Affiche le mois/jour de la date en
lettres alphabétiques. 8
Remarque :

Le premier paramètre de la fonction « Datediff» peut avoir les


valeurs suivantes : "q" (différence en nombre de trimestres); "m"
(de mois); "w" (de semaines); "d" (de jours); "h" (d’heures); "n" (de
minutes); "s" (de secondes).

Les formats utilisés dans la fonction « Format » pour les types de


données date/heure sont : « yyyy », « mmmm », « dddd », « q », ….

Format(Date ;"mmmmm") affiche les mois en lettres ("dddd" pour


les jours). « mmm » affiche les mois abrégés, « mm » affiche les
mois par deux chiffres, « m » affiche les mois en chiffre.

Format(Date ;"q") affiche le trimestre en chiffres.


9
Exemples de requêtes en SQL :

Exemple 1: Dans la BD « Gestion des Commandes », on


souhaite afficher le numéro et la date des commandes passées
entre le 30 novembre 2018 et le 31 janvier 2019.

SELECT NumCmd, DateCmd


FROM Commandes
WHERE DateCmd Between #11/30/2018# And #1/31/2019#;

Ou bien :

SELECT NumCmd, DateCmd


FROM Commandes
WHERE DateCmd >=#11/30/2018# And DateCmd <=#1/31/2019#;

Remarque : En SQL les dates s’écrivent mois/jour/Année 10


Exemple 2: Dans la BD « Gestion des commandes », on
souhaite afficher le code du client, le numéro, l’année et la
date de leurs commandes faites au cours du premier trimestre
de l’année 2019

SELECT NumCmd, DateCmd, Year(DateCmd) AS AnnéeCmd


FROM Commandes
WHERE Year(DateCmd)=2019 AND Mois(datecmd) Between 1
And 3;

Remarque : AnnéeCmd est un champ calculé. Pour ajouter un


champ calculé en SQL on commence par la formule ou
l’expression (comme Year(DateCmd) en exemple) suivi de AS
11
suivi de nom du nouveau champ (Alias).
Ou

SELECT NumCmd, DateCmd, Year(DateCmd) AS AnnéeCmd


FROM Commandes
WHERE Year(DateCmd)=2019 AND Format(datecmd,"mmmm")
Between "Janvier" And "Mars";

Alias

Remarque : En SQL il n’y a qu’un seul point virgule. Toutes les


expressions en QBE qui contiennent des points virgules se changent
en virgules en passant à SQL
12
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia

Cours Informatique Appliquée

Gestion de Base de données avec ACCESS

Séance 6

Amal EL MZABI
Requête de sélection paramétrée

Lorsqu’on exécute une requête, Access sélectionne les


enregistrements de la table source en fonction des critères
définis dans la requête.

Supposons Maintenant qu’on veuille faire une requête qui nous


extrait la liste de tous les clients habitant Casablanca : Dans ce
cas on ajoute "Casablanca" comme critère de Ville. Si on veut les
clients de Mohammedia, on ajoute "Mohammedia", etc. Mais si on
voulait une requête par ville, on devrait créer un ensemble de
requêtes, soit une requête par ville : Pas très pratique…

2
Pour regrouper innombrables requêtes dans une seule

conception, Access vous permet de préciser les critères

non pas dans la grille de création de la requête, mais au

moment de son exécution et ceci en créant une requête

dite paramétrée.

Lors de son exécution, une requête paramétrée demande à

l'utilisateur de préciser la valeur (le paramètre) pour

produire l'extraction correspondante.


3
Pour définir un paramètre dans une requête :

1. Créer une requête sélection comme vous avez l’habitude de le


faire, ou ouvrir une requête existante.

2. Sélectionner les champs qui vous intéressent, de façon à les

faire apparaître sur la grille du bas.

3. Dans la ligne Critères de la requête et pour les champs sur

lesquels doivent porter les critères de sélection, remplacer les

valeurs fixes par des paramètres entre crochets.

4. Tapez un texte, différent du nom du champ, entre crochets. Ce

texte apparaîtra lorsque vous exécuterez la requête.


4
Exemple
Créer une nouvelle requête, qui affiche le prénom, le nom et
la ville des clients. Comme critère de Ville, écrivez [Préciser
la ville recherchée :]

Exécutez la requête :

Taper la ville
recherchée ici

5
Comme vous avez précisé que Ville recherchée = Mohammedia
(comme critère de Ville), la requête vous renvoie les clients de
Mohammedia

Revenez en mode création, et réexécutez une deuxième fois la


requête. A nouveau, cette boîte de dialogue apparaît :

6
Cette fois, Entrez Casablanca et cliquez sur OK. Les clients de
Casablanca apparaissent.

Donc, à chaque lancement de la requête, On vous demandera


quelle ville vous désirez, et cette ville va être placée à la place de
[Préciser la ville recherchée].
Donc vous mettez ce que vous voulez entre les crochets puisque
la valeur du critère va être précisée lors de l’exécution.

En mode SQL :

Select Prenom, Nom, Ville


From Clients
Where Ville = [Préciser la ville recherchée :];
1. Utilisation de 2 paramètres avec OU dans un seul champ :
Exemple : [Entrer Ville 1] Ou [Entrer Ville 2]
2. Utilisation de Signe inférieur à « < » associé à un paramètre :
Exemple : < [Préciser la Quantité ]
3. Mélange de paramètres variables et fixes
Exemple : Entre 0 Et [Entrer quantité maximale]
4. Paramètres variables dans plusieurs champs différents et/ou
associé à l'étoile *
Le nom commence par une lettre
Exemple : saisie par l’utilisateur
En mode SQL :

1. Utilisation de 2 paramètres avec OU dans un seul champ :


Exemple : Where Ville In ([Entrer Ville 1], [Entrer Ville 2]
2. Utilisation de Signe inférieur à « < » associé à un paramètre :
Exemple : Where QtéStock < [Préciser la Quantité ]
3. Mélange de paramètres variables et fixes
Exemple : Where Quantité Entre 0 Et [Entrer quantité
maximale]
4. Paramètres variables dans plusieurs champs différents et/ou
associé à l'étoile *.
Exemple Select Nom, Prenom, Ville
From Clients
Where Nom Like ([Entrer la lettre de début] & "*") AND
Ville = [Entrer la ville désirée];
Requête multitable (avec jointure)

Une requête avec jointure est une requête qui exploite


plusieurs tables à la fois.

Créer une requête sélection multitable

La création se fait de la même manière qu’une requête


sélection monotable.

Dans la boite de dialogue Afficher la table, sélectionnez les


objets (tables ou requêtes) qui seront utilisés dans la
requête puis cliquez sur le bouton Ajouter, ou faites un
double clic sur le nom de l’objet à ajouter.
10
Deux règles à respecter :
Toutes les tables intervenant dans la requête doivent
être reliées entre elles;
Pas de tables ne servant à rien dans la requête.

Exemple 1 :
Afficher le numéro et la date des commandes faites par les
clients de Mohammedia.

11
Les tables sources La relation

12
En mode SQL :

Select NumCmd, DateCmd

From Clients INNER JOIN Commandes

ON Clients.CodeClient = Commandes.CodeClient

Where Ville = "Mohammedia" ;

Pour marquer qu’il y a une relation entre deux tables reliant la clé
primaire et la clé secondaire on utilise la syntaxe suivante :

From Table1 Inner Join Table2


On Table1.CléPrimaire = Table2.CléSecondaire
13
Une autre possibilité utilisée en Access pour montrer la jointure entre
deux tables :

Select NumCmd, DateCmd

From Clients, Commandes

Where Clients.CodeClient = Commandes.CodeClient And

Ville = "Mohammedia" ;

Cette manière consiste à :


➢ Mettre les tables intervenant dans la requête après la clause FROM
en les séparant par des virgules
➢ Ajouter l’égalité des clés primaires et secondaires dans la partie
critère après la clause WHERE
14
Exemple 2 :
Afficher le code et le nom des clients ainsi que la référence
de leurs produits de quantité supérieure à 10

15
La tables Clients et DétailsCommande ne sont pas reliées entre elles,
d’où la nécessité d’ajouter la table Commandes même si elle n’est pas
utilisée dans la grille en bas.

En mode SQL :

Select Clients.CodeClient, Nom, Ref


From (Clients Inner Join Commandes ON Clients.CodeClient =
Commandes.CodeClient) Inner Join DétailsCommande
ON Commandes.NumCmd = DétailsCommande.NumCmd
Where Quantité > 10;

Remarque : Si un champ, utilisé dans une requête, existe dans plusieurs


tables alors il faut écrire son nom précédé du nom de la table (Comme
Clients.CodeClient).
16
Deuxième manière :

Select Clients.CodeClient, Nom, Ref

From Clients, Commandes, DétailsCommande

Where Clients.CodeClient = Commandes.CodeClient And

Commandes.NumCmd = DétailsCommande.NumCmd And

Quantité > 10;

17
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia

Cours Informatique Appliquée

Gestion de Base de données avec ACCESS

Séance 7

Amal EL MZABI
Requête de sélection avec opération

En plus de faire des requêtes avec des critères ou des


fonctions intégrées d'Access, il est aussi possible de
regrouper les champs pour faire des opérations, grâce aux
fonctions d’agrégation (regroupement). Ces fonctions
effectuent quelques statistiques de bases sur des tables,
telles que la somme, la moyenne, de champs numérique.
Parmi d'autres opérations, il est aussi possible de compter
le nombre d'enregistrements qui répondent à certains
critères comme compter par exemple le nombre de clients
habitant Casablanca.
2
Pour utiliser les fonctions d’agrégation En mode QBE,

créer une requête de sélection, ajouter les tables, les

champs et les critères qui seront utilisées dans la requête

puis dans le groupe Afficher/Masquer cliquer sur le

bouton

Une nouvelle ligne "Opération" apparaît dans la grille de


création requête, c'est grâce à elle que nous allons faire
nos opérations.
3
Exemple de fonctions d’agrégation (regroupement)

− Regroupement : Permet de factoriser un traitement effectué


sur un champ en fonction de chaque valeur d’un autre champ.

− Somme : Calcule la somme des valeurs d'un champ (numérique


ou monétaire)

− Moyenne : Calcule la moyenne des valeurs d'un champ


(numérique ou monétaire)

− Min : Détermine la plus petite valeur d'un champ (sauf mémo,


Ole…)

− Max : Détermine la plus grande valeur d'un champ (sauf


mémo, Ole…)
4
Fonctions d’agrégation (suite)

− Compte : Calcule le nombre de valeurs non nulles d'un


champ (sauf mémo, Ole…).

− StDev : Calcule l'écart type des valeurs d'un champ


(numérique ou monétaire).

− Var : Calcule la variance des valeurs d'un champ


(numérique)

− Premier : Donne la 1ère valeur d'un champ pour les


critères demandés (sauf mémo, Ole…)

− Dernier : Donne la dernière valeur d'un champ pour les


critères demandés (sauf mémo, Ole…)
Exemple 1
Dans la BD « Gestion des commandes », on veut compter le
nombre de clients pour chaque ville.

Alias

Fonction Compte appliquée sur


Regroupement sur les villes le champ CodeClient

6
En mode SQL :

Les principales fonctions d’agrégation en SQL sont les


suivantes :
AVG() pour calculer la moyenne sur un ensemble
d'enregistrements.
COUNT() pour compter le nombre d'enregistrement
SUM() pour calculer la somme sur un ensemble
d’enregistrements.
MIN() pour récupérer la valeur minimale des valeurs d’un
champ (pour des données numériques ou alphanumérique).
MAX() pour récupérer la valeur maximale de la même manière
que MIN().
D’une manière générale, on utilise la syntaxe suivante pour
ajouter une fonction d’agrégation :

Select fonction(champ)
From Table_Source
[Where Condition]
Group by Nom_Champ;

Pour regrouper les lignes, on utilise la commande GROUP


BY suivi du nom du champ à grouper. Elle se place après la
clause Where si elle existe sinon après From.

8
Reprenons l’exemple précédent :

Select Ville, Count(CodeClient) As Nombre de Clients


From Clients
Group By Ville;

Exemple 2

Dans la BD « Gestion des commandes », on veut afficher,


pour chaque désignation de produit, la quantité totale
commandée et son prix payé.

9
En mode SQL :

Select Desig, Sum(Quantité) AS QuantitéTotale,


Sum([Quantité]*[PU]) AS PrixTotal
From Produits Inner Join DétailsCommande
ON Produits.Ref = DétailsCommande.Ref

Group By Desig; 10
Conditions sur les fonctions d'agrégation en SQL
Il n'est pas possible d'utiliser la clause WHERE pour faire
des conditions sur une fonction d'agrégation. Par exemple, si
dans l’exemple 2, on veut afficher les désignations dont la
quantité totale est plus de 40, la requête suivante ne
fonctionnera pas.

Select Desig, Sum(Quantité) AS QuantitéTotale,


Sum([Quantité]*[PU]) AS PrixTotal
From Produits Inner Join DétailsCommande ON Produits.Ref
= DétailsCommande.Ref
Where Sum(Quantité) > 40

Group By Desig; 11
Alors il faut utiliser la clause HAVING. Cette clause se
place juste après le GROUP BY.

Select Desig, Sum(Quantité) AS QuantitéTotale,


Sum([Quantité]*[PU]) AS PrixTotal
From Produits Inner Join DétailsCommande ON Produits.Ref
= DétailsCommande.Ref
Group By Desig

Having Sum(Quantité) > 40 ;

12
Gestion de base de données sous Access

Application – Cours (Suite)

Partie IV :

Créer les requêtes suivantes (mode QBE et SQL)

Requête avec opération :

1. Afficher le nombre total des clients

2. Afficher le nombre de commandes par clients.

3. Afficher la quantité moyenne, la quantité maximale et la quantité minimale

de chaque produit commandé dans les 6 mois avant le mois courant.

4. Afficher pour chaque client, le code, le nom et le prénom dans une seul

colonne et le nombre de ses commandes. On s’intéresse aux commandes

faites ces deux dernières années.

5. Afficher le nombre de commandes mensuelles passées par les clients de

chaque ville, où le mois est donné comme paramètre et est exprimé en

lettres.

6. Pour chaque commande, afficher le numéro, le montant hors taxe HT, et le

montant TTC avec un taux de TVA variable. Limiter la sélection

uniquement pour les commandes dont la durée (nombre d’année qui sont

passés depuis la création à nos jours) est supérieure à un an et ayant un

montant TTC entre 15000 et 20000.

1
Université Hassan II - Casablanca
Faculté des sciences juridiques, économiques et sociales
Mohammedia

Cours Informatique Appliquée

Gestion de Base de données avec ACCESS

Séance 8

Amal EL MZABI
Les Requêtes ACTION

Les requêtes faites jusqu'à présent se contentent de


retourner le résultat d'une sélection sous forme de table.
Une requête sélection n’a aucune incidence sur le contenu
de la table, à moins que l’on modifie manuellement.

Par contre, il existe d'autres types de requêtes, les


requêtes action, ces requêtes servent :
➢ Soit à créer, à modifier ou à supprimer une table,
➢ Soit à ajouter, à mettre à jour ou à supprimer
des enregistrements en fonction de certains critères.
2
Principe de création d'une requête action

Une requête action est, au départ, une requête sélection que l’on
transforme par la suite.
Pour créer une requête action :
➢ On affiche d’abord une requête sélection
➢ Ensuite on transforme cette requête sélection en requête
action en activant le bouton correspondant au type de requête
souhaité du groupe «Type de requête » que l’on trouve dans
l’onglet Créer des « Outils de requête ».
Une fois transformée en requête action, le nom de la requête
apparaît dans le Volet de navigation avec un point d'exclamation
noir et une icône indiquant son type.
3
Affichage et exécution
Une fois la requête sélection convertie en requête action, et
avant de l’exécuter, vérifiez les résultats obtenus en basculant
l’affichage du mode Création en mode Feuille de données par le
bouton « Affichage ».
Pour exécuter la requête action : retournez si nécessaire en
mode Création et cliquez sur le bouton « Exécuter ».

Remarque : La requête action s’exécute à chaque fois que vous


appuyez sur le bouton d’exécution. Un message vous montre les
modifications effectuées mais rien ne s’affiche à l’écran comme
le cas d’une requête sélection.
4
Types de requêtes action
Il existe quatre types de requêtes action : requêtes « Création
de table », « Ajout », « Mise à jour » et « Suppression ». Ces
trois derniers types de requêtes concernent les
enregistrements.
En SQL: CREATE, INSERT, UPDATE, et DELETE.

Requête Création de table


Une requête Création crée une table à partir des résultats
provenant d'une table existante.

Exemple : Dans notre BD « Gestion des commandes », on


souhaite créer une table des clients de Casablanca.

Pour ce faire : 5
1. Créer une requête sélection et ajouter les critères pour
afficher toutes les informations des clients de Casablanca.

2. En mode Création, dans le groupe Type de requête cliquer


sur la commande Création de table. La fenêtre Création de
table s’ouvre :

6
3. Taper le nom de la table à créer, ClientsCasa. Il est
possible de choisir dans la liste une table déjà existante et
l’écraser par la nouvelle.

4. Cliquer sur le bouton OK, puis sur le bouton Exécuter pour


créer la nouvelle table. La table ClientsCasa est apparue
alors dans la liste des tables.

Mode SQL
Pour créer une table à partir d’une autre table ou des résultats
d’une requête on utilise la syntaxe suivante :

SELECT Champ1, Champ2, … INTO NouvelleTable


FROM ...
7
Pour notre exemple on utilise :

Select Clients.* INTO ClientsCasa


From Clients
Where Ville = "Casablanca";

Pour créer une table à zéro on utilise la syntaxe suivante :

CREATE TABLE Nom_de_la_table (


Champ1 PRIMARY KEY type_donnees,
Champ2 type_données,
Champ3 type_données,
Champ4 type_données
)

PRIMARY KEY : indique le champ1 est considérée comme clé 8


primaire
Requête Ajout
Une requête Ajout copie tout ou une partie des enregistrements
d'une table (la table source) à la fin d'une autre table (la table
cible).
➢ Les enregistrements sont COPIES de la table source vers la
table cible et non pas déplacés.
➢ Les deux tables doivent avoir des noms de champs identiques
(et les mêmes types de données), les deux structures ne doivent
pas nécessairement être identiques.
➢ Si la table source comporte plus de champs que la table cible,
les champs supplémentaires sont ignorés
➢ Si la table source comporte moins de champs que la table cible,
les champs dont les noms sont identiques sont copiés, les autres
sont laissés vides.
➢ Access ne copie QUE les champs que vous avez déclarés dans la
requête. 9
Exemple : Dans la table "ClientsCasa", on ajoute les clients de la
ville de Rabat à partir de la table Clients dans la BD « Gestion de
commandes » :
− Créer la requête de sélection pour afficher les clients de
Rabat.
− Dans le groupe Type de requête, cliquer sur le l’élément Ajout.
− Choisir le nom de la table à laquelle il faut ajouter le résultat
de la requête

10
− Une ligne Ajouter à s’ajoute à la requête sélection :

− Sauvegarder votre requête et cliquer sur le bouton Exécuter


pour lancer votre requête.

11
Mode SQL
Pour créer une requête Ajout on utilise la syntaxe suivante :

INSERT [INTO] Nom_de_table_cible [(champ1, Champ2,…)]


VALUES (Valeur1, Valeur2,…) Ou Requête_Select

Si on souhaite insérer des nouvelles valeurs après la dernière ligne


de notre table cible, on utilise la commande VALUES suivie des
valeurs des champs.
Exemple :
INSERT INTO ClientsCasa
VALUES ("A500", "Mimouni", "Yara", "Rabat", Null)

Indique que ce champ est vide


12
Remarque : Les valeurs doivent être saisies dans l’ordre des
champs et correspondre chacune au type de données du champ.

Une fois la requête exécutée on aura :

Vous pouvez également préciser les noms des champs où vous


allez insérer des nouvelles valeurs.
Exemple :

INSERT INTO ClientsCasa (CodeClient, Ville)


VALUES ("B100", "Tanger") 13
Ou bien, on veut insérer des valeurs issues des autres tables en
utilisant une requête sélection comme le cas de notre exemple :
Dans la table ClientsCasa, ajoutez des clients de la ville de Rabat à
partir de la table Clients.

INSERT INTO ClientsCasa


SELECT Clients.*
FROM Clients
WHERE Ville = "Rabat";

14
Requête Mise à jour

Les requêtes mise à jour permettent d’effectuer des


modifications sur des lignes existantes d'une table ou un groupe
d'entre eux. Ces modifications peuvent être conditionnées par un
ou plusieurs critères. Pour créer une requête mise à jour :

➢ Créer une nouvelle requête sélection en ajoutant les champs


concernés par la mise à jour. Placer aussi les champs concernés
éventuellement par les critères.
➢ Convertir la requête sélection en requête action en cliquant sur
le bouton Mise à jour Dans le groupe Type de requête.
➢ Une ligne Mise à jour apparait où on indique l’expression de la
modification pour le(s) champ(s) concerné(s).
15
Remarque : Une mise à jour une fois exécutée ne pourra pas être
annulée.

Exemple 1 : Dans la BD « Gestion des commandes », on veut


augmenter de 20% le prix unitaire pour chaque produit dont le
prix actuel est inférieur à 1500 DH.

➢ Pour afficher la liste des enregistrements qui seront mis à


jour, cliquer sur Affichage dans le groupe Résultats.
➢ Pour appliquer la mise à jour sur les enregistrements, cliquer
sur le bouton Exécuter. 16
Dans la case Mise à Jour, on a indiqué, qu'à la place du prix
unitaire, nous voulions [PU]*1.2 (soit une augmentation de 20%),
ceci pour les produits dont le prix est inférieur à 1500 (critère).

Mode SQL

Pour modifier ou mettre à jours des données dans une table on


utilise la syntaxe suivante :

UPDATE [Nom_Table] SET champ1 = valeur1, champ2 = Valeur2,…


WHERE [Conditions] ;

17
Pour notre premier exemple, le code SQL est :

UPDATE Produits SET PU = [PU] * 1.2


WHERE PU < 1500 ;

Exemple 2 : Dans la BD « Gestion des commandes », on cherche à


doubler les quantités commandées par les clients de « Rabat » pour
les commandes du 15 premiers jours du mois de Mars 2019.

Mode QBE : On crée une requête sélection puis on la transforme


en cliquant sur le bouton Mise à jour :

18
Vérifiez les résultats en basculant l’affichage en mode Feuille
de données avant d’exécuter la requête.
Mode SQL

UPDATE Clients, Commandes, DétailsCommande


SET Quantité = [Quantité]*2
Where (Clients.CodeClient = Commandes.CodeClient) And
(Commandes.NumCmd = DétailsCommande.NumCmd) And Ville=
"Rabat" And Day([DateCmd]) <= 15 And Month([DateCmd])=3
And Year([DateCmd]) = 2019;

Ou bien
UPDATE (Clients INNER JOIN Commandes ON
Clients.CodeClient = Commandes.CodeClient) INNER JOIN
DétailsCommande ON Commandes.NumCmd =
DétailsCommande.NumCmd SET Quantité = [Quantité]*2
WHERE Ville = "Rabat" AND Day([DateCmd]) <= 15 AND
Month([DateCmd]) = 3 AND Year([DateCmd]) = 2019; 19
Requête Suppression

Les requêtes suppression permettent de supprimer un groupe


d'enregistrements qui répondent à un critère donné. Et pour créer
une requête suppression, il faut toujours :
➢ Commencer par la création d’une requête sélection avec les
champs concernés par la suppression et les champs concernés
par les critères.
➢ Transformer la requête sélection en requête action en cliquant
sur le bouton Suppression, dans le groupe Type de requête.
➢ Une ligne Supprimer apparait où on ajoute l’expression de la
modification pour le(s) champ(s) concerné(s). Les valeurs pour
cette ligne sont A partir de et Où. A partir de identifie la
table où seront supprimés les enregistrements et Où identifie
les champs pour lesquels il y aura un critère. 20
Exemple : Dans notre BD « Gestion des commandes », on veut
supprimer les commandes, du client de code B300, faites au
cours des mois de juin et juillet de l’année 2018.

Mode QBE : Créer une requête sélection qui contient les


champs à supprimer avec les critères correspondants.
Transformer la ensuite en cliquant sur le bouton Suppression :

Cliquez sur le bouton d’exécution pour lancer la requête, et


vérifiez que le résultat est conforme à ce que vous attendez
avant de cliquer sur Oui. 21
Mode SQL

DELETE Commandes.*
FROM Commandes
WHERE CodeClient = "B300" And Month([DateCmd]) In (6,7)
And Year([DateCmd]) = 2018;

Une fois exécutée Access supprimera toutes les lignes qui


répondent aux critères.

22
Requête analyse croisée
Une requête d'analyse croisée est l'équivalent du tableau croisé
dynamique dans Excel. Elle permet de répondre à des questions
du type « qui a commandé combien de quoi ? », et retourne le
résultat sous forme d'un tableau comportant des champs en ligne
et en colonne, avec, dans chaque case la réponse à la question.
Entête des
colonnes

Entête des Qui Qui


lignes
Quoi Combien Combien
Quoi Combien Combien

La seule restriction par rapport à Excel est que dans Access, on


ne peut avoir qu'un champ de regroupement par colonne.
23
Pour créer une requête analyse croisée, on procède par :
− Créer une requête sélection en introduisant les tables
nécessaires.

− Transformer la requête en requête d'analyse croisée en allant


dans le groupe « Type de Requête » et en choisissant « Analyse
croisée ».

− Une nouvelle ligne « Analyse » apparaît dans la requête. Indiquer


dans cette ligne, si le champ choisi va être l'en-tête des
colonnes, l'en-tête des lignes ou la valeur contenue dans les
cases du tableau.

− L’opération pour les en-têtes est toujours « Regroupement ».


Alors que l’opération pour les valeurs des cases dépend de ce
qu’on cherche : somme, moyenne, compte, etc. 24
Exemple 1 : Dans la BD « Gestion des commandes », on souhaite
créer une requête analyse croisée permettant de calculer pour
chaque ville, la quantité totale commandée par les clients, pour
chaque produit identifié par sa désignation. Chaque désignation
d’un produit doit être affichée dans une seule colonne et chaque
ville doit être placée dans une seule ligne.

Pour ce faire, créer une requête sélection en ajoutant les 4


tables : « Clients », « DétailsCommande », « Commandes » et
« Produits », et la convertir en requête analyse croisée .
On introduit la table Commandes pour relier les tables Clients et
DétailsCommande.

Choisir ensuite l’Opération « Somme » pour la colonne


« Quantité » puisqu’on cherche la quantité totale, et valeur pour
l’Analyse. 25
Résultats de la requête analyse croisée

26
Mode SQL
TRANSFORM Sum(Quantité)
SELECT Ville
FROM Clients, Commandes, DétailsCommande, Produits
Where Clients.CodeClient = Commandes.CodeClient And
Commandes.NumCmd = DétailsCommande.NumCmd And
Produits.Ref = DétailsCommande.Ref
GROUP By Ville
PIVOT Desig ;

Une requête analyse croisée commence par la clause


TRANSFORM suivie par l’opération choisie, suivie par la requête
sélection, ensuite on ajoute Group by pour le champ qui sera
entête de colonne et la clause PIVOT suivi du champ qui sera
entête de ligne. 27
Exemple 2 :

Dans notre BD « Gestion des commandes », on veut calculer les


quantités totales mensuelles commandées pour chaque produit au
cours du premier semestre des années 2018 et 2019. Les mois
doivent être affichés en colonne et par lettres alphabétiques et
les produits doivent être affichés par leur désignation en ordre
croissant :

28
Mode SQL

TRANSFORM Sum(Quantité) AS [Quantité Totale]


SELECT Desig As Désignation
From Commandes, DétailsCommande, Produits
Where (Commandes.NumCmd = DétailsCommande.NumCmd And
Produits.Ref = DétailsCommande.Ref) And Month([DateCmd])
<= 6 And Year([DateCmd]) In (2018,2019)
GROUP By Desig
ORDER By Desig
PIVOT Format([DateCmd],"mmmm") ;

29
Exercice

Créer en mode QBE et SQL :

1. Une requête mise à jour paramétrée permettant de modifier la


ville d’un client dont le nom et le prénom sont des paramètres.

2. Une requête suppression paramétrée permettant de saisir le


nom et le prénom du client et de supprimer les commandes de
ce client.

3. Une requête analyse croisée permettant d’afficher le nombre


de commandes faites annuellement par client. Le nom et le
prénom d’un client doivent être placés dans une seule ligne.

30

Vous aimerez peut-être aussi