Administration et communication |
Applications bureautiques et informatiques |
La requête Sélection de Access est le type de requête le plus courant. Elle est la requête standard, celle qui est créée par défaut.
- Elle récupère des données contenues dans une ou plusieurs tables et affiche les résultats sous la forme d'une feuille de données.
- Il est possible d'effectuer une mise à jour des enregistrements directement dans cette feuille de données ou dans le formulaire créé à partir de la requête (sous réserve de quelques restrictions).
- Remarque : on peut également utiliser une requête Sélection pour regrouper des enregistrements et calculer une somme, une moyenne ou effectuer un comptage ou tout autre type d'opération.
Mise en situation : un club sportif (ASL, 24 pl. de la gare, à Grenoble) organise des stages de ski d'une journée pour ses adhérents (nom, prénom, numéro, date de naissance, adresse rue, code postal, adresse ville ). Les stages ont un nom qui change chaque année : étoile, cristal, paillette, colonne, granule, dendrile, aiguille pour la saison en cours. Ils ont un niveau, un contenu, une date, un lieu
2 - Un exemple et sa solution
Un adhérent peut suivre plusieurs stages pendant une saison.
Le travail à faire : le système d'information doit permettre d'inscrire les adhérents pour les stages qu'ils souhaitent suivre.
Remarque : la solution proposée a pour seul but de démontrer l'importance du choix des tables sources des données dans la requête. Elle est donc simplifiée par rapport à une solution professionnelle.Phase 1 : la modélisation, la réalisation du modèle physique, la création des tables, la mise en relation des tables dans Access.
Le modèle comporte donc une entité adhérent, une entité stage et une association "inscription au stage". Il faut donc créer les trois tables suivantes :
Adhérent Stage Inscription Numadher
Nomadher
Prenomadher
Naissadher
Adrueadher
Cpadher
AdviladherNumsta
Nomsta
Niveausta
Contenusta
Datesta
Lieusta# Numadher
# Numsta
Après création des tables, on peut utiliser la fonction "Relations" de Access pour définir les relations par défaut entre les tables. On place judicieusement les tables, puis on clique-glisse chaque clé primaire vers la clé étrangère de l'association. Access reconnaît dans quel sens doit fonctionner la relation. Il suffit de cocher "Appliquer l'intégrité référentielle"
![]()
et de vérifier le type de jointure. Pour de nombreux cas de gestion courante, on peut accepter le type de jointure 1 (voir la page sur les propriétés des jointures):
![]()
On obtient le schéma suivant :
![]()
Phase 2 : création de la requête
On observe des différences entre ces quatre requêtes : les données ne viennent pas des mêmes tables. Or elles donnent la même feuille de données (bien entendu la 2me bis n'affiche pas le numéro d'adhérent).Requête 1 :
Requête 2 :
ou requête 2 bis :
![]()
Requête 3 :
Phase 3 : création du formulaire avec sous-formulaire
Dans la fenêtre "Comment souhaitez-vous afficher vos données ?", choisir ou accepter "Par adhérent".
Le formulaire généré à partir de la requête 1 permet à la fois de saisir un nouvel adhérent (numéro, nom et prénom) et de nouvelles inscriptions aux stages. Mais attention, la saisie de nouveaux adhérents n'est pas prévue dans l'énoncé et les données seraient incomplètes. Bien entendu, on peut ajouter dans la requête tous les autres attributs de l'adhérent
Avec la requête 2, le numéro "adhérent" se retrouve dans le sous-formulaire sauf si on ne le sélectionne pas. Le formulaire ne permet pas de saisir un nouvel adhérent (Un message s'affiche : "Enregistrement impossible"). mais permet de saisir de nouvelles inscriptions : c'était notre but.
La requête 2 bis est une version simplifiée de la précédente : le numéro de l'adhérent n'est pas utilisé. Elle fonctionne comme la précédente.
Dans la requête 3, on remarque que la donnée "Numsta" provient de la table Stage et non pas de la table Inscription. Le formulaire généré ne permet pas de saisir de nouvelles inscriptions. Le message suivant s'affiche :
En conséquence, cette requête ne peut pas être utilisée pour la mise à jour des données.
Prenons l'exemple de la requête 1 ci-dessus. Elle permet d'afficher les adhérents qui sont déjà inscrits à un ou plusieurs stages. MAIS un adhérent inscrit à deux stages apparaît deux fois, un adhérent inscrit à 3 stages apparaît 3 fois, etc. Comment faire un publipostage aux adhérents inscrits ? C'est à dire comment empêcher l'apparition des doublons dans une requête basée sur plusieurs tables ? Voici le mode opératoire de l'aide de Access.
3 - Utilisation d'une requête Sélection pour faire une recherche.Voilà, vous obtenez la liste des adhérents déjà inscrits (bien entendu, pour un publipostage vous auriez modifié la requête en ajoutant les champs d'adresse).
- Ouvrez la requête en mode Création.
- Sélectionnez la requête en cliquant n'importe où dans la requête mais en dehors de la grille de création et des listes de champs.
- Cliquez sur Propriétés dans la barre d'outils pour afficher la feuille des propriétés de la requête.
- Attribuez la valeur Oui à la propriété Valeurs distinctes.
- Décochez Numsta et Nomsta dans la grille pour empêcher la projection de ces données.
Retour au Sommaire des productions pédagogiques
Retour à l'Accueil de la spécialité