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.

ACTION

onglet "créER"
groupe "requêtes"
(3ème bloc)

<clic g> sur  ou
créer
la requête comme requête sélection avec les données de la nouvelle table
afficher les résultats de la requête en mode "feuille de données"
puis revenir en mode "création"

ACTION

 onglet "créer"
groupe "type de requête"
(2ème bloc)

<clic g> sur  
nommer la table
 pour valider
<clic g> sur    pour exécuter la requête

 

Description : attention copie.gifATTENTION

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.

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 "ajout"
sélectionner la table à la quelle ajouter les données
 pour valider
<clic g> sur    pour exécuter la requête

 

Description : attention copie.gifATTENTION

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"
Une ligne supplémentaire est ajoutée dans la grille d'interrogation afin de définir la modification à apporter à un ou plusieurs champs de la sélection
renseigner la ligne "mise à jour" pour les champs à modifier
<clic g> sur    pour exécuter la requête

 

Description : ancre ios.gifCONSEIL

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

Description : ancre ios.gifCONSEIL

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"
Une ligne supplémentaire "supprimer" est ajoutée dans la grille d'interrogation
<clic g> sur    pour exécuter la requête
confirmer la suppression des enregistrements

 

Description : ancre ios.gifCONSEIL

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

 

Description : ancre ios.gifCONSEIL

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"

 

Description : barre copie.gif
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

 

Description : barre copie.gif
exemple

saisir le nom du 1er paramètre "Nom de l'éditeur" et sa nature "texte"
saisir le nom du 2ème paramètre "nature du livre" et sa nature "texte"

 pour valider
Dans la requête
Afficher le champ "LibelleEditeur" et indiquer "Nom de l'éditeur" entre crochets sur la ligne "critères"
Afficher le champ "Sujet" et indiquer " Nature du livre " entre crochets sur la ligne "critères"
<clic g> sur    pour exécuter la requête
Saisir les valeurs des paramètres à la demande

 

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"



Description : attention copie.gifATTENTION

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.

ACTION

onglet "créER"
groupe "requêtes"
(3ème bloc)

<clic g> sur  
sélectionner

suivre l'assistant en définissant les table à comparer et en commençant par la table la plus complète
mettre en correspondance le champ sur lequel s'effectue la comparaison avec l'outil

définir les champs à afficher …
visualiser
s les enregistrements

LA REQUÊTE GÉNÉRÉE EST DU TYPE :

Description : ancre ios.gifCONSEIL

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

ACTION

onglet "créER"
groupe "requêtes"
(3ème bloc)

<clic g> sur  
afficher les tables concernées
<double clic>
 sur la jointure
choisir l'option 2 (
par défaut, c'est l'option 1 qui est sélectionnée)

<clic g> sur    pour exécuter la requête
visualiser s les enregistrements

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.

ACTION

 onglet "créer"
groupe "paramétrage de requêtes"
(3ème bloc)

<clic g> sur    pour afficher la liste des tables
sélectionner
la table puis <clic g> sur  
répéter l'opération pour toutes les tables concernées par la requête
<clic g> sur

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

Description : souris droite.gifbouton droit

<clic d>
sur la barre de titre de la table à enlever

 clavier

sélectionner la table
Appuyer sur la touche <suppr> du clavier

 

Description : attention copie.gifATTENTION

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

Description : souris gauche.gifbouton 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

Description : attention copie.gifATTENTION

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

Description : souris droite.gifbouton 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.

Description : ancre ios.gifCONSEIL

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
la requête s'affiche en mode SQL

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"

Modifié le: mercredi 21 mars 2012, 12:06