• Aucun résultat trouvé

Semaine 11 Mai –18 Mai

N/A
N/A
Protected

Academic year: 2022

Partager "Semaine 11 Mai –18 Mai"

Copied!
30
0
0

Texte intégral

(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

Semaine 11 Mai – 18 Mai

Amal EL MZABI

(2)

2

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.

(3)

3

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.

Principe de création d'une requête action

(4)

4

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.

(5)

5

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 :

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.

Types de requêtes action

(6)

6

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 :

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

(7)

7

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

(8)

8

Select Clients.* INTO ClientsCasa From Clients

Where Ville = "Casablanca";

Pour notre exemple on utilise :

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

(9)

9

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.

(10)

10

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

(11)

11

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

(12)

12

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

(13)

13

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")

Remarque

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

(14)

14

INSERT INTO ClientsCasa SELECT Clients.*

FROM Clients

WHERE Ville = "Rabat";

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.

(15)

15

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

(16)

16

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.

(17)

17

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

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

WHERE [Conditions] ;

Pour modifier ou mettre à jours des données dans une table on utilise la syntaxe suivante :

(18)

18

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 :

(19)

19

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

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

(20)

20

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 identifie les champs pour lesquels il y aura un critère.

(21)

21

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.

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.

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 :

(22)

22

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.

(23)

23

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.

Qui Qui

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.

Entête des colonnes Entête des

lignes

(24)

24

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.

(25)

25

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.

(26)

26

Résultats de la requête analyse croisée

(27)

27

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.

(28)

28

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 :

(29)

29

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") ;

(30)

30

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.

Exercice

Références

Documents relatifs

À défaut par l'acquéreur de payer dans les délais prescrits le prix ou les frais taxés, le bien est remis en vente à la demande du créancier poursuivant, d'un

Si vous n’utilisez pas l’application Télérecours citoyens, vous devez déposer ou envoyer votre requête au greffe du tribunal en deux exemplaires pour que votre demande

Dans cette situation, il subsiste une incertitude sur le fait que la Cour pourrait attri- buer cette zone maritime au seul Nicaragua alors que le traité de délimitation mari- time

= (SELECT idSal FROM salarie WHERE nomsal = ‘Pierre’) AND dateRealiser BETWEEN ’02/01/2005’ AND ’05/01/2005’. AND idSal &lt;&gt; (SELECT idSal FROM salarie WHERE nomsal

La mise en place des CRHH est intervenue dans le cadre de la loi pour l’accès au logement et un urbanisme rénové (Alur) du 24 mars 2014 qui étend

La société Les Rapides du littoral fait grief à l’arrêt de rejeter sa demande tendant à voir déclarer caduque la déclaration d’appel, alors «  qu’en cas d’appel d’un

Une fois ordonnée, la mise à ban doit être placée, en collaboration avec le Service des ponts et chaussées, respectivement le Service de la mobilité de la Ville de Fribourg,

Recours associatifs et institutionnels disponibles pour les femmes victimes de violence.. Services d’écoute, de soutien psychologique,