En dehors des requêtes sélection (et analyse croisée), d'autres types de requêtes "agissent" sur les données. Avant de les utiliser, faire une requête "sélection", en afficher les données, la transformer en requête "action" puis l'exécuter.
LES TYPES DE REQUÊTES ACTION :
Génère une nouvelle table à partir des enregistrements extraits
Ajoute un groupe d'enregistrements à une table
Modifie les données d'un groupe d'enregistrements
Supprime des enregistrements d'une table
1 REQUêTE S
Sélectionne les enregistrements satisfaisant des critères
Synthétise les données sous forme de tableau croisé
(Voir Access 2010 1er niveau - utilisation )
2 REQUÊTES "CRÉATION DE TABLE"
Elles vont générer une nouvelle table, dans la base existante ou une autre base.
ATTENTION
|
Access demande de nombreuses confirmations auxquelles il faut répondre par "oui" (non sans les avoir lues au préalable)
|
|
exercice
|
Dans la base en cours "Bibliotheque avec donnees" Créer une requête de type "création de table" qui ajoutera dans la base actuelle une table appelée "livres policiers" comportant les champs suivants : à prendre dans les différentes tables et uniquement pour le genre "policier" Enregistrer la requêtes, l'exécuter puis vérifier la table créée
|
|
…
infos
|
Il est possible de donner le nom d'une table déjà existante si l'on souhaite remplacer celle-ci avec les nouvelles données sélectionnées
|
|
3 REQUÊTES "AJOUT"
Elles permettent d'ajouter un groupe d'enregistrements à une table. Il faut bien évidemment que les nouveaux enregistrements respectent la structure de la table et la nature des champs de la table.
ATTENTION
|
Il est indispensable de veiller à ce que les données ajoutées soient cohérentes avec la structure de la base (une table des erreurs est éventuellement générée)
|
|
exercice
|
Dans la base en cours "Bibliotheque avec donnees" Créer une requête "ajout" qui ajoutera à la table "Livres" créée précédemment les enregistrements du genre "Heroïc Fantasy" Exécuter la requête et vérifier la table "Livres"
|
|
4 REQUÊTES "MISE A JOUR"
Elles vont permettre la mise à jour des données d'une table existante. Elles sont très utilisées et font gagner beaucoup de temps par rapport à des modifications manuelles.
ACTION
|
onglet "créER" groupe "requêtes" (3ème bloc)
<clic g> sur ou créer une requête sélectionnant les données à ajouter afficher les résultats de la requête en mode "feuille de données" pour les vérifier puis revenir en mode "création"
|
ACTION
|
onglet "créer" groupe "type de requête" (2ème bloc)
<clic g> sur pour transformer la requête en requête "mise à jour" renseigner la ligne "mise à jour" pour les champs à modifier <clic g> sur pour exécuter la requête
|
|
CONSEIL
|
Le plus souvent, ce ne sont pas tous les enregistrements que l'on veut mettre à jour mais seulement ceux qui correspondent à un certain critère ; il faut alors faire la requête sélection en paramétrant correctement ce critère (afficher en mode "feuille de données" pour vérifier) et ne passer en requête "mise à jour" lorsque l'on qu'on est sûr de sa requête.
|
|
exercice
|
Dans la table "Livres" de la base "Bibliotheque avec donnees" Remplacer le genre "Heroïc Fantasy" par "Science Fiction" puis vérifier la table "Livres" Dans le volet de gauche "tables", faire une copie de cette table sous le nom "Livres avec policiers et science fiction"
|
|
exercice
|
Dans la table "Livres" de la base "Bibliotheque avec donnees", le prix d'achat indiqué a en fait été saisi par erreur tel qu'indiqué sur les livres soit avec une tva à 7,0 % alors que l'on souhaitait avoir ici le prix Hors Taxes. Effectuer la correction nécessaire (autrement dit, diviser le prix indiqué par 1,070 pour obtenir le prix hors taxe).
|
|
AVANT
APRÈS
CONSEIL
|
Penser à utiliser le générateur d'expression pour indiquer les noms de champ ou effectuer des opérations complexes
|
|
5 REQUÊTES "SUPPRESSION"
La requête est pratique pour supprimer un groupe d'enregistrements dans une table.
ACTION
|
onglet "créER" groupe "requêtes" (3ème bloc)
<clic g> sur ou créer une requête sélectionnant les données à ajouter afficher les résultats de la requête en mode "feuille de données" pour les vérifier puis revenir en mode "création"
|
ACTION
|
onglet "créer" groupe "type de requête" (2ème bloc)
<clic g> sur pour transformer la requête en requête "suppression" <clic g> sur pour exécuter la requête confirmer la suppression des enregistrements
|
|
CONSEIL
|
Dans la mesure où l'on commence par une requête sélection avant d'effectuer la suppression, le risque d'erreur est minime ; néanmoins, faire une sauvegarde de la base avant d'effectuer ce type d'opérations à risque
|
|
exercice
|
Dans la table "Livres" de la base "Bibliotheque avec donnees" Créer une requête "suppression" pour éliminer tous les enregistrements de la table n'ayant pas pour sujet "Science Fiction" () et l'exécuter Afficher la table "Livres" pour vérifier la suppression des enregistrements Fermer la requête et la table
|
|
6 REQUÊTES AVEC PARAMÈTRES
Les paramètres permettent de saisir les critères de sélection lors de l'exécution de la requête. C'est une solution pratique pour des requêtes fréquemment utilisées, mais dont une ou plusieurs informations peuvent varier.
ACTION
|
onglet "créER" groupe "requêtes" (3ème bloc)
<clic g> sur ou créer une requête sélectionnant les données à ajouter afficher les résultats de la requête en mode "feuille de données" pour les vérifier puis revenir en mode "création"
|
ACTION
|
onglet "créer" groupe "afficher / masquer" (4ème bloc)
<clic g> sur pour transformer la requête en requête "suppression" saisir les noms des paramètres et leur nature (texte, entier…) pour valider indiquer ces paramètres entre crochets comme critères pour les champs concernés
<clic g> sur pour exécuter la requête indiquer la valeur des paramètres lorsque la requête le demande
|
|
CONSEIL
|
Pour être certain de bien indiquer la même chose, il est possible de copier/coller le nom du paramètre entre la boite de dialogue "paramètres" et la ligne "critères"
|
|
exemple
|
Pour créer une requête qui affiche les ouvrages et les informations associées en fonction de leur genre et de leur éditeur. Créer une requête classique de sélection comme ci-dessous
|
|
exercice
|
À partir de la base "Bibliotheque avec donnees", créer une requête donnant comme information : la référence de l'ouvrage, son titre, sa date d'achat, son prix et ceci pour un genre et un éditeur désignés lors de l'exécution de la requête. Exécuter la requête et indiquer "10/18" comme éditeur et "Policier" comme genre puis enregistrer la requête sous le nom "Selection des ouvrages par genre et editeur"
|
|
…
ATTENTION
|
Bien indiquer exactement la même chose entre la boite de dialogue "paramètres" et la ligne "critères" de la requête. Lors de l'exécution de la requête, indiquer exactement la valeur du paramètre demandé telle qu'elle existe dans la base (bien faire attention à l'orthographe et éventuellement aux accents s'il y en a) Bien vérifier le résultat de la requête : le fait que des lignes soient affichées ne signifie pas forcément que la requête correspond à ce que l'on en attend
|
|
7 REQUÊTES D'ANALYSE
Elles vont permettre d'analyser le contenu d'une table ou de comparer deux tables.
a) DOUBLONS
Il y a doublon dans une requête lorsque deux enregistrements sont identiques.
ACTION
|
onglet "créER" groupe "requêtes" (3ème bloc)
<clic g> sur sélectionner suivre l'assistant en définissant la table et les champs à analyser … visualiser les enregistrements
|
|
infos
|
C'est une situation qui ne peut pas arriver si le champ en question a été désigné comme clé unique (requête surtout utilisée avant l'intégration de données extérieures)
|
|
b) NON-CORRESPONDANCE
Cette requête permet de comparer deux tables et d'isoler les enregistrements qui figurent dans l'une et pas dans l'autre. Ceci est particulièrement utile, notamment pour comparer une même table à deux périodes différentes ou après un incident.
LA REQUÊTE GÉNÉRÉE EST DU TYPE :
CONSEIL
|
Si la requête ne donne pas de résultat, intervertissez le champ comportant le critère "est Null" avec le champ correspondant de l'autre table
|
|
exercice
|
Dans la base "Bibliotheque avec donnees", comparer les tables "Livres" et " Livres avec policiers et science fiction" Cette sélection doit correspondre aux enregistrements supprimés précédemment, c'est-à-dire les livres du genre "policier L'enregistrer sous le nom "Livres avec policiers et science fiction" et "Livres sans correspondance"
|
|
…
8 CAS PARTICULIERS
Deux cas se distinguent, de par leur structure, des requêtes classiques.
a) JOINTURE RÉFLEXIVE
Les Jointures réflexives permettent de lier des valeurs à l'intérieur d'une même table en affichant la même table 2 fois dans la requête (mais sous 2 noms différents).
ACTION
|
onglet "créER" groupe "requêtes" (3ème bloc)
<clic g> sur afficher 2 fois la table concernée la 2ème version de la table est indicée (xxxx_1) mais le nom (alias) peut être changé dans les propriétés positionner les jointures <clic g> sur pour exécuter la requête visualiser s les enregistrements
|
|
infos
|
L'alias permet de donner un nom différent par lequel reconnaître une table
|
|
infos
|
La notion d'ouvrage de référence est une notion propre aux ouvrages scientifiques qui a l'avantage de bien illustrer la notion de jointure réflexive
|
|
exercice
|
Dans la base en cours "Bibliotheque avec donnees", créer une requête affichant les ouvrages associés à un ouvrage de référence en créant une jointure réflexive entre les champs "N°Reference" et "N°OuvrageRef" de 2 tables "ouvrage" dont vous nommerez la seconde occurrence "ouvrage de reference" L'enregistrer sous "ouvrages de référence"
|
|
b) JOINTURE EXTERNE
Les jointures externes permettent d'extraire tous les enregistrements d'une table même s'ils ne correspondent au critère de jointure (non reliés à l'autre table).
avancé
|
Les champs correspondants à la table pointée auront des valeurs lorsqu'il y a correspondance et seront vides dans le cas de calculs à valeur null
|
|
exercice
|
Lister les lecteurs avec ou sans emprunts L'enregistrer sous le nom "Lecteurs avec et sans emprunts"
|
|
…
9 AJOUT/SUPPRESSION DE TABLES ET JOINTURES
Dans une requête, il est simple d'ajouter ou supprimer une table ; les jointures entre tables s'affichent automatiquement.
a) AFFICHER UNE TABLE
À partir d'une requête existante, il est possible d'ajouter des tables.
infos
|
Il est aussi possible de faire directement glisser avec la souris la table ou la requête du volet de navigation (à gauche) vers l'onglet de la requête
|
|
exercice
|
Dans la base "Bibliotheque avec donnees" Créer une nouvelle requête "sélection" en mode "création" Fermer la fenêtre "afficher la table" L'afficher de nouveau avec l'outil Afficher les tables "Livres", "Ecrit", "Auteur" et "Exemplaire" Fermer la fenêtre "afficher la table"
|
|
avancé
|
Si une relation existe entre deux tables, une ligne les relie. C'est une ligne de jointure, indiquant la relation existante entre deux tables avec le cas échéant (intégrité référentielle) ses cardinalités (Une à Une ou Une à Plusieurs ).
|
|
b) enlever UNE TABLE
Si une table est inutile, ajoutée par erreur ou si elle ne sert plus à rien dans la requête, il faut l'enlever (la table est juste supprimée de la requête).
ACTION
|
bouton droit
<clic d> sur la barre de titre de la table à enlever
|
clavier
sélectionner la table Appuyer sur la touche <suppr> du clavier
|
|
ATTENTION
|
Les champs associés sont automatiquement supprimés sauf dans les expressions
|
|
exercice
|
Dans la requête en cours de la base "Bibliotheque avec donnees" Ne plus afficher la table "Exemplaire
|
|
c) CRÉER UNE jointure
La création de nouvelles jointures s'effectue directement dans la requête. Cette manipulation n'affecte que la requête en cours, il n'y a pas de cardinalités.
ACTION
|
bouton gauche
afficher les deux tables dans la requête Sélection pointer sur le champ à lier de la première table <faire glisser> du champ à lier de la 1ère table jusqu'au champ de la seconde table
|
|
ATTENTION
|
Ne pas faire de jointures illogiques
|
|
exercice
|
Dans la requête en cours de la base "Bibliotheque avec donnees"" Créer une jointure entre les champs "N°Ouvrage" des tables "Livres" et "Ecrit"
|
|
d) supprimer UNE jointure
Les jointures, si des relations ont été préalablement définies, s'affichent automatiquement sous forme d'une ligne joignant les champs concernés. Une jointure inutile ou erronée peut être supprimée.
ACTION
|
bouton droit
sélectionner la jointure (la ligne) <clic d> sur la ligne symbolisant la jointure
|
clavier
sélectionner la jointure (la ligne) Appuyer sur la touche <suppr> du clavier
|
|
exercice
|
Dans la requête en cours de la base "Bibliotheque avec donnees" Supprimer la jointure que vous venez de créer sur le champ "N°Ouvrage"
|
|
10 SQL
Le langage SQL est le langage norme ANSI des bases de données relationnelles. ACCESS comprend et utilise le SQL.
CONSEIL
|
Il est souvent plus pratique d'utiliser une grille d'interrogation et les outils graphiques de création de requêtes puis de basculer en mode SQL pour voir le Sql généré et l'utiliser éventuellement à la place d'une requête (utiliser alors le copier/couper/coller)
|
|
ACTION
|
onglet "créer" groupe "résultats" (1er bloc)
<clic g> sur de <clic g> sur
|
onglet "créer" "type de requête" (2ème bloc)
<clic g> sur
|
|
infos
|
Ce langage est basé sur la logique de l'algèbre relationnelle (voir page 2) et la logique de prédicat de premier ordre (logique mathématique à la base de l'intelligence artificielle). Même si ce langage peut paraître déroutant au premier abord, il est possible, avec juste un peu de pratique et de logique, d'effectuer directement des modifications sur le code
|
|
exercice
|
Ouvrir la requête "selection des ouvrages par genre et editeur" de la base "Bibliotheque avec donnees" L'afficher en mode Sql , essayer de déchiffrer le code Revenir en mode "création" ou "feuille de données"
|
|