Initiation
Travaux Pratiques sous Access: TP1
(Cration d'une base de donnes et ses tables, tablissement des relations entre les tables et saisie des donnes travers des formulaires)
1/ Crer la base de donnes nomme: BD_gestion_des_commandes2/ Crer les quatre tables de la base : clients, commandes, produits et lignes Attribuer les cls ncessaires : clients (cin), commandes (num_cmd), produits (ref) et lignes (num_cmd et ref)
Table Clients:
Nom du champType de donnesDescription
CinTexte(20)N de la carte d'identit nationale
NomTexte(20)Nom du client
PrenomTexte(20)Prnom du client
VilleTexte(20)Ville du client
CatgTexte(10)Catgorie du client C1, C2 ou C3
Table Commandes:
Nom du champType de donnesDescription
Num_cmdNumriqueNumro de la commande
CinTexte(20)Cin: Code client
DateDate/HeureDate de la commande
Table produits:
Nom du champType de donnesDescription
RefTexte(20)Rfrence du produit
DesgMemoDsignation du produit
PuMontairePrix unitaire du produit
Table lignes:
Nom du champType de donnesDescription
Num_cmdNumriqueNumro de la commande
RefTexte(20)Rfrence du produit
qNumriqueLa quantit vendue au client
3/Etablir les relations entre les tables: relation de type 1 n
Clients (1)--------((n) Commandes
Commandes(1)--------((n) lignes
Produits(1)--------((n) lignes
4/Saisir les donnes:Crez pour chaque table un formulaire de saisie des donnes. Vous devez crer quatre formulaires. Utilisez pour cela, la cration dun formulaire laide de lassistant:
frmclients, frmcommandes, frmproduits et frmlignes_commandes
Table clients :
cinnomprnomvillecatgorie
A100amanimohamedcasablancaC1
B200sellamiaminerabatC1
C300asmourjalilagadirC3
D400tounsimostafacasablancaC2
E500kalamisamirafesC3
F600alamisanaacasablancaC2
G700MounirhamidcasablncaC1
H800aminesoufianerabatC2
Table commandes :Numro de commandecindate
1A10001/01/04
2A10001/02/04
3A10001/03/04
4B20015/04/04
5B20015/05/04
6B20015/06/04
7C30010/07/04
8C30025/09/04
9D40010/10/04
10E50025/10/04
11F60011/11/04
12F60012/12/04
13G70015/12/04
14H80025/12/04
Table produits :
Rfrence du produitDsignation du produitPrix unitaire
PRD01Claviers250
PRD02Ecrans700
PRD03Souris100
PRD04haut-parleurs100
PRD05imprimantes1200
Table lignes :
Numro de commandeRfrence du produitQuantit
1PRD0110
1PRD022
2PRD025
2PRD0320
3PRD0430
4PRD0415
5PRD0420
6PRD0510
7PRD0520
8PRD015
9PRD015
10PRD011
11PRD023
11PRD042
12PRD0325
12PRD0510
13PRD055
14PRD036
Travaux Pratiques sous Access: TP2
(Manipulation des requtes de slection)La Base de donnes: Gestion_des_commandes
Donner les requtes: (Utiliser les mthodes QBE et SQL) 1- Afficher les Noms et prnoms des clients.
QBE:
Rsultat:
SQL:
SELECT nom, prenom
FROM clients;
2- Afficher le numro, le nom, le prnom et la ville de chaque client. Avec le nom et le prnom dans une seule colonneet le rsultat tri par ordre croissant sur le nom et prnom.QBE:
SQL:
SELECT cin, [nom] & " " & [prenom] as [Nom et prnom], ville
FROM clients
ORDER BY [nom] & " " & [prenom] ASC;
3- Afficher les clients de la ville Casablanca.QBE:
SQL:
SELECT cin, nom, ville
FROM clients
WHERE ville="casablanca";
4- Afficher toutes les commandes dont la quantit est suprieure 25.
QBE:
SQL:
SELECT num_cmd, ref, q
FROM lignes
WHERE q>=25;
5- Afficher toutes les lignes de commandes dont la rfrence du produit est PRD03 et dont la quantit est suprieure ou gale 20.QBE
SQL:
SELECT num_cmd, ref, q
FROM lignes
WHERE (ref="PRD03") AND (q>=20);
6- Afficher toutes les lignes de commandes dont la rfrence du produit est PRD03 ou dont la quantit est suprieure 20.QBE:
SQL:
SELECT num_cmd, ref, q
FROM lignes
WHERE (ref="PRD03") OR (q>=20);
7- Afficher toutes les lignes de commandes dont la rfrence du produit est PRD03 et dont la quantit est suprieure 20, ou alors le numro de commande >5
QBE:
SQL:
SELECT num_cmd, ref, q
FROM lignes
WHERE ((ref="PRD03") AND (q>=20))or (num_cmd>5);
8- Afficher les commandes dont le numro est compris entre 3 et 10.
QBE: faon1
QBE: faon2
QBE: faon3
SQL:
Manire1:
SELECT num_cmd, date
FROM commandes
where (num_cmd>=3) AND (num_cmd=#01/15/2008#;
17- Afficher le numro et la date des commandes qui sont ralises entre les dates: 10/01/2008 et 15/06/2008.QBE:
SQL:
SELECT num_cmd, date
FROM commandes
WHERE (date>=#01/10/2008#) AND (date=Date()-25));
Manire2:
SELECT commandes.num_cmd, commandes.Date, Sum(lignes.q) AS Total_Qte, Avg(lignes.q) AS Moyenne_Qte
FROM commandes INNER JOIN lignes ON commandes.num_cmd = lignes.num_cmd
WHERE DateDiff("d",[date],Date())opration (Valeur)
SELECT produits.ref--->(entte de ligne)
FROM produits INNER JOIN ((clients INNER JOIN commandes ON clients.cin = commandes.cin) INNER JOIN lignes ON commandes.num_cmd = lignes.num_cmd) ON produits.ref = lignes.ref
GROUP BY produits.ref
PIVOT clients.ville;---->(entte de colonne)
Chaque dsignation dun produit doit tre affiche dans une seule colonne et chaque ville doit tre place dans une seule ligne:
Etapes:
1. Crer une nouvelle requte en introduisant les tables:Clients, Commandes, Lignes commandes et produits.
2. En mode Cration de requte, cliquez sur le bouton Analyse Croise () ou slectionnez la commande Analyse croise du menu Requte. Une nouvelle ligne nomme Analyse apparat dans la grille.
3. Dans la ligne Analyse de la grille de la requte, choisir en tte de ligne pour le champ Ville et en tte de colonne pour le champ dsignation. Tout champ dfini en ligne ou en colonne doit avoir Regroupement dans la zone Opration. Choisir Valeur pour le champ Quantit et dfinir lopration somme pour ce champ dans la ligne Opration
2- Afficher les quantits totales mensuelles (janvier, fvrier.dcembre) commandes pour chaque produit: (utiliser la fonction format (date;mmmm)QBE:Manire1
QBE:Manire2
SQL:
TRANSFORM Sum(lignes.q) AS SommeDeq --->opration (Valeur)
SELECT Format([date],"mmmm") AS mois --->(entte de ligne)
FROM produits INNER JOIN (commandes INNER JOIN lignes ON
commandes.num_cmd = lignes.num_cmd) ON produits.ref =
lignes.ref
GROUP BY Format([date],"mmmm"), Month([date])
ORDER BY Month([date])
PIVOT produits.desg; ---->(entte de colonne)
3- Afficher les quantits totales mensuelles commandes pour chaque produit au cours du premier semestre de lanne 2008.
SQL:
TRANSFORM Sum(lignes.q) AS SommeDeq
SELECT Format([date],"mmmm") AS mois
FROM produits INNER JOIN (commandes INNER JOIN lignes ON
commandes.num_cmd = lignes.num_cmd) ON produits.ref =
lignes.ref
WHERE (Month([date]) Between 1 And 6) AND (Year([date])=2008)
GROUP BY Format([date],"mmmm"), Month([date]), Year([date])
ORDER BY Month([date])
PIVOT produits.desg;Requtes de mise jour et suppressionUne requte de mise jour permet de mettre jour des donnes dans une table. Soit en modifiant les donnes de cette table, soit en les supprimant.
Exemples:
2- Mettre jour les ttva 19% pour les produits dont le prix unitaire est >=400 DHS.
QBE:
SQL:
UPDATE produits
SET ttva = 19
WHERE pu>=400;
UPDATE produits
SET produits.ttva = 19
WHERE produits.pu>=400));
2- Augmentez de 1 dh les prix unitaires des produits dont le taux de TVA est 19%.
QBE:
SQL:
UPDATE produits
SET produits.pu = [pu]+1
WHERE produits.ttva=19;3- Supprimer les clients de la ville safi.
QBE:
SQL:
DELETE clients.ville
FROM clients
WHERE clients.ville="safi";
Entre #10/01/2008# Et #15/06/2008#
In(3;5;6)
"mars" ou "mai" ou "juin")
CHARANI ETTAIBI professeur universitaire la FSJESMPage 13