Créer une requête Sélection simple

Une requête Sélection permet de créer des sous-ensembles de données que vous pouvez utiliser pour répondre à des questions spécifiques. Vous pouvez également vous en servir pour fournir des données à d'autres objets de base de données. N'hésitez pas à y recourir quand vous en avez besoin.

Cet article explique comment créer une requête Sélection simple pour rechercher des données dans une table. Vous apprendrez également à améliorer votre requête en définissant des critères d'enregistrement et en ajoutant des valeurs calculées.

Dans cet article


Introduction

Une requête Sélection est un type d'objet de base de données qui affiche des informations en mode Feuille de données (mode Feuille de données : fenêtre qui affiche des données d’une table, d’un formulaire, d’une requête, d’une vue ou d’une procédure stockée sous forme de lignes et de colonnes. En mode Feuille de données, vous pouvez modifier des champs et ajouter, supprimer ou rechercher des données.). Les données d'une requête proviennent d'une ou de plusieurs tables, de requêtes ou d'une combinaison des deux. Les tables ou requêtes à partir desquelles une requête obtient ses données constituent sa « source d'enregistrement ».

Que vous créiez des requêtes Sélection simples à l'aide d'un Assistant ou à partir du mode Création, les étapes sont essentiellement les mêmes. Il suffit de choisir la source d'enregistrement à utiliser, ainsi que les champs à inclure dans la requête . Vous pouvez également spécifier des critères pour affiner les résultats.

Une fois la requête Sélection créée, exécutez-la pour vérifier qu'elle fonctionne correctement. Pour cela, ouvrez-la en mode Création . Vous pouvez ensuite la réutiliser à tout moment, comme source d'enregistrement d'un formulaire, d'un état ou d'une autre requête, par exemple.

 Remarque   Pour plus d'informations sur l'utilisation d'une requête en tant que source d'enregistrement pour un formulaire ou un état, voir l'article Utiliser une requête en tant que source d'enregistrement pour un formulaire ou un état.

Access propose plusieurs types de requête pour vous permettre d'exécuter différentes opérations. Par exemple, la requête Sélection affiche des données, la requête Action modifie les données dans sa source de données, ou crée une table. La requête Paramètre vous demande d'entrer des critères lorsque vous l'exécutez, etc. Cet article traite uniquement des requêtes Sélection.

 Remarque   Cette rubrique décrit comment créer les requêtes Sélection qui renvoient des données d'une table unique. Si vous souhaitez créer les requêtes qui renvoient des données d'au moins deux tables, voir l'article Créer une requête basée sur plusieurs tables.

Haut de la page Haut de la page

Créer une requête

Dans cet exercice, vous allez créer une requête Sélection intitulée « Contacts à Paris ». Pour cela, vous pouvez travailler en mode Création ou démarrer un Assistant. Si vous savez rédiger des instructions SQL (instruction/chaîne SQL : expression qui définit une commande SQL, telles que SELECT, UPDATE ou DELETE, et qui inclut des clauses telles que WHERE et ORDER BY. Les instructions/chaînes SQL sont généralement utilisées dans des requêtes et dans des fonctions de regroupement.), vous pouvez créer une requête en mode SQL en écrivant une instruction SELECT simple.

Avant de commencer, vous avez besoin d'une table avec des données. Les données exemple sont fournies sous le formulaire de table HTML.

RéfClient Société Adresse Ville DépartementOuRégion CodePostal PaysOuRégion Tél. Coordonnées DateNaissance
1 Baldwin Museum of Science 7, place Beaubernard Beaune Côte d'Or 21203 France 03 80 203 130 Stéphane Rogert 03.12.45
2 Blue Yonder Airways 52 avenue des anémones Valenciennes Nord 59300 France (201) 555-0123 Patrice Dupont-Roc 21.03.59
3 Coho Winery 31 rue du soleil Poitiers Vienne 86201 France 05 49 413 201 Gilles Fabrouque 01.04.73
4 Contoso Pharmaceuticals 1 Impasse des vallées Paris 75003 France 01 85 04 12 35 Fabrice Grand 16.06.67
5 Fourth Coffee Paris 75201 France 01 15 56 10 63 Julien Dupré 09.08.71
6 Consolidated Messenger 23 rue de la poste Rennes Ille-et-Vilaine 35031 France 02 23 62 10 10 Christine Huguette 27.05.48
7 Graphic Design Institute 151 rue de la plage Cannes 06400 France 04 93 39 11 71 Denise Barré 12.08.61
8 Litware, Inc. 3 avenue de la victoire Bordeaux Gironde 33080 France 05 56 201 201 Jean Aimée 01.09.75
9 Tailspin Toys 22 rue de l'église Paris 74301 France François Parrèche 15.02.53
10 Woodgrove Bank 37 Grande rue Paris 75056 France 01 15 56 10 63 Martin Gorbot 25.09.38

Vous pouvez soit entrer les données dans cette table exemple manuellement, soit copier cette table vers un tableur, tel que Microsoft Office Excel 2007, puis importer la feuille de calcul vers une table dans Microsoft Office Access 2007.

AfficherEntrer les données exemple manuellement

  1. Sous l'onglet Créer, dans le groupe Tables, cliquez sur Table.

Office Access 2007 ajoute une table vide à votre base de données.

 Remarque   Vous n'êtes pas obligé de suivre cette procédure si vous ouvrez une nouvelle base de données vide. En revanche, vous devez la suivre lorsque vous ajoutez une table à la base de données.

  1. Double-cliquez sur la première cellule dans la ligne d'en-tête et tapez le nom du champ dans l'exemple de table.

Par défaut, Access désigne des champs vides dans la ligne d'en-tête avec le texte Ajouter un nouveau champ, comme suit :

Nouveau champ dans une feuille de données

  1. Utilisez les flèches de direction pour vous déplacer sur la prochaine cellule d'en-tête vide, puis tapez le nom du deuxième champ (vous pouvez également appuyer sur la touche de tabulation ou double-cliquer sur la nouvelle cellule). Répétez cette étape jusqu'à la saisie de tous les noms de champs.
  2. Entrez les données dans l'exemple de table.

Lorsque vous entrez des données, Access détermine un type de données pour chaque champ. Chaque champ d'une table a un type de données spécifique de type Nombre, Texte ou Date/Heure. La définition des types de données garantit une saisie exacte de données et empêche des erreurs, telles que l'utilisation d'un numéro de téléphone dans un calcul. Vous pouvez spécifier le type de données pour chaque champ d'une table et modifier le type de données d'un champ dans certaines circonstances. Pour cet exemple de table, il est recommandé qu'Access détermine le type de données.

  1. Une fois la saisie de données terminée, cliquez sur Enregistrer

Raccourci clavier  Appuyez sur Ctrl+S.

La boîte de dialogue Enregistrer sous s'affiche.

  1. Dans la zone Nom de la table, entrez Clients, puis cliquez sur OK.

AfficherCopiez la table vers un tableur, puis importez-la vers Access

  1. Démarrez votre tableur et créez un fichier vide. Si vous utilisez Excel, un nouveau classeur vide est créé par défaut.
  2. Copiez l'exemple de table fournie dans la section précédente et collez-le dans la première cellule de la première feuille de calcul.
  3. La technique intégrée dans votre tableur permet de donner à la feuille de calcul le nom Clients.
  4. Enregistrez le fichier de feuille de calcul à un emplacement pratique et passez aux étapes suivantes.
Importer la table dans Access
  1. Dans une base de données nouvelle ou existante :

Sous l'onglet Données externes, dans le groupe Importer, cliquez sur Excel.

- ou -

Cliquez sur Autres, puis sélectionnez un tableur dans la liste.

La boîte de dialogue Données externes - Feuille de calcul Nom du programme s'affiche.

  1. Cliquez sur Parcourir, ouvrez le fichier de feuille de calcul que vous avez créé au cours des étapes précédentes, puis cliquez sur OK.

L'Assistant Importation de feuille de calcul démarre.

  1. Par défaut, l'Assistant sélectionne la première feuille de calcul du classeur (Clients, si vous avez suivi les étapes de la section précédente), et les données de cette feuille de calcul s'affichent dans la partie inférieure de la page de l'Assistant. Cliquez sur Suivant.
  2. Dans la page suivante de l'Assistant, sélectionnez Première ligne contient les en-têtes de colonnes, puis sur Suivant.
  3. La page suivante de l'Assistant vous permet de modifier les noms de champ et les types de données ou d'exclure certains champs lors de l'importation, en utilisant les zones de texte et les listes sous Options de champ. Cliquez sur Suivant.
  4. Sur la page suivante de l'Assistant, dans la zone Options de champ, sélectionnez Oui (sans doublon) dans la liste Indexé, et sélectionnez Entier long dans la liste Type de données. Cliquez sur Suivant pour continuer.
  5. Sur la page suivante de l'Assistant, sélectionnez l'option Choisir ma propre clé primaire, choisissez RéfClient dans la liste, puis cliquez sur Suivant.
  6. Par défaut, Access applique le nom de la feuille de calcul à la nouvelle table. Assurez-vous de nommer la table Clients, puis cliquez sur Terminer.
  7. Sur la dernière page de l'Assistant, vous pouvez enregistrer les procédures d'importation pour une réutilisation ultérieure. Sachant que vous importez un exemple de table, il est recommandé d'enregistrer cette procédure.

 Remarque   Si vous ne disposez pas d'un tableur, vous pouvez copier les données exemple dans un éditeur de texte, tel que le Bloc-notes. Pour plus d'informations sur l'importation des données de type Texte, voir l'article Importer ou attacher des données dans un fichier texte.


Créez la requête.

Pour commencer, vous allez utiliser un Assistant pour créer la requête, en fonction de l'exemple de table que vous venez de créer. Vous allez ensuite l'améliorer en mode Création. Vous pouvez vérifier l'instruction SQL générée automatiquement au fur et à mesure de chaque étape.

  1. Sous l'onglet Créer, dans le groupe Autre, cliquez sur Assistant Requête.
  1. Dans la boîte de dialogue Nouvelle requête, cliquez sur Assistant Requête simple, puis sur OK.
  2. Sous Tables/Requêtes, cliquez sur la table contenant les données à utiliser. Dans cet exemple, cliquez sur Table : Clients. Une requête peut également utiliser une autre requête comme source d'enregistrement.
  3. Sous Champs disponibles, double-cliquez sur les champs Contact, Adresse, Téléphone et Ville. C'est ainsi que vous les ajoutez à la liste Champs sélectionnés. Une fois les quatre champs ajoutés, cliquez sur Suivant.
  4. Nommez la requête « Contacts à Paris », puis cliquez sur Terminer.

Access affiche tous les enregistrements de contact en mode Feuille de données. Les résultats affichent tous les enregistrements, mais uniquement les quatre champs que vous avez spécifiés dans l'Assistant de requête.

AfficherVérifiez l'instruction SQL d'origine

Dans la barre d'état Access, cliquez sur Mode SQL ou cliquez avec le bouton droit sur l'onglet de l'objet de requête, puis cliquez sur Mode SQL. Access ouvre la requête en mode SQL et affiche ce qui suit :

SELECT Customers.[Contact], Customers.[Address], Customers.[Phone], Customers.[City]
FROM Customers;

Comme vous pouvez le constater, la requête est constituée de deux clauses de base dans SQL : la clause SELECT, qui répertorie les champs compris dans la requête, et la clause FROM, qui répertorie les tables contenant ces champs.

 Remarque   Si vous avez ajouté des champs dans un ordre différent de celui stipulé dans la procédure précédente, l'ordre utilisé sera repris dans la clause SELECT.


  1. Fermez la requête. Access l'enregistre automatiquement.

Haut de la page Haut de la page

Ajouter des critères à la requête

Pour limiter le nombre d'enregistrements obtenus, vous pouvez spécifier un ou plusieurs critères.

Un critère de requête ressemble à une condition que vous appliquez à un champ. Le critère définit une condition, en fonction des valeurs de champ, exprimant ce que vous souhaitez ajouter à la requête, par exemple « afficher uniquement les enregistrements dont le champ Ville est Paris ».

Ouvrez la requête en mode Création. Vous ajoutez un critère au champ Ville, afin d'afficher uniquement les contacts parisiens, tels qu'ils ont été spécifiés par les résultats de recherche. Vous ajoutez également ces critères au champ Adresse et au champ Téléphone, pour affiner vos résultats de recherche.

  1. Dans la ligne Critères du champ Ville, tapez Paris.

Ajoutez deux autres critères pour obtenir des résultats plus parlants. Par exemple, vous ne souhaitez obtenir que les enregistrements qui contiennent l'adresse, et le numéro de téléphone du contact.

  1. Dans la ligne Critères du champ Adresse, tapez Est Pas Null AND <>"". Faites de même pour le champ Téléphone dans la ligne Critères.

 Remarque   Le critère Est Pas Null AND <>"" est vrai lorsqu'une valeur connue, non vide existe pour le champ avec un critère. Il est faux lorsqu'il n'existe pas de valeur connue (Null), ou lorsque la valeur est vide (""). Vous pouvez utiliser cette expression pour vérifier un champ pour une valeur connue et non vide.

  1. Basculez en mode Feuille de données pour afficher les résultats.

AfficherVérifiez l'instruction SQL avec des critères

Dans la barre d'état Access, cliquez sur Mode SQL, ou cliquez avec le bouton droit sur l'onglet de document de requête, puis choisissez Mode SQL. Access affiche le code SQL suivant :

SELECT Customers.[Contact], Customers.[Address], Customers.[Phone], Customers.[City]
FROM Customers
WHERE (((Customers.[Address]) Is Not Null And (Customer.[Address])<>"") 
 AND ((Customer.[Phone]) Is Not Null And (Customer.[Phone])<>"") 
 AND ((Customer.[City])="london"));

Vous constaterez que l'instruction SQL comporte dorénavant une clause WHERE. Les critères spécifiés pour les champs de requête apparaissent dans SQL, dans la clause WHERE. Dans ce scénario, ils sont combinés en utilisant l'opérateur AND.


Que faire si vous ne voulez pas combiner les conditions à l'aide de l'opérateur AND ? En d'autres termes, comment spécifier deux critères ou plus en incluant uniquement les enregistrements qui remplissent l'une ou les deux conditions ?

Spécifiez d'autres jeux de critères en utilisant l'opérateur OR

Supposons que vous souhaitiez afficher tous les enregistrements dont la Ville est Paris et contenant au moins une information de contact  (l'adresse ou le numéro de téléphone , par exemple). Vous souhaitez combiner les critères en utilisant l'opérateur OR, comme suit :

Pour spécifier des critères de substitution, complétez les lignes Critères et Ou dans la grille de création. Tous les enregistrements qui répondent aux critères définis dans la ligne Critères ou Ou font partie des résultats.

Vous allez maintenant modifier la requête en entrant des critères de substitution dans les lignes Critères et Ou.

  1. Basculez de nouveau en mode Création.
  2. Supprimez la chaîne Est Pas Null AND <>"" de la ligne Critères du champ Téléphone.
  3. Dans la ligne Ou du champ Téléphone, tapez Est Pas Null AND <>"".
  4. Dans la ligne Ou du champ Ville, tapez Paris.
  5. Basculez en mode Feuille de données pour afficher les résultats. Tous les enregistrements contenant une adresse, un numéro de téléphone, ou les deux, et dont la ville est Paris sont affichés dans les résultats de la requête.

 Remarque   Pour spécifier deux jeux de critères de substitution ou plus, complétez les lignes en dessous de la ligne Ou. Chaque ligne représente un jeu de critères indépendant.

AfficherVérifiez l'instruction SQL avec des critères révisés

Dans la barre d'état Access, cliquez sur Mode SQL, ou cliquez avec le bouton droit sur l'onglet de document de requête, puis choisissez Mode SQL. Access affiche le code SQL suivant :

SELECT Customers.[Contact], Customers.[Address], Customers.[Phone], Customers.[City]
FROM Customers
WHERE (((Customers.[Address]) Is Not Null And (Customer.[Address])<>"") AND ((Customer.[City])="london"))
 OR (((Customers.[Phone]) Is Not Null And (Customers.[Phone])<>"") AND ((Customers.[City])="london"));

Vous constaterez deux modifications : les critères spécifiant que le champ Ville est Paris apparaît fois deux ; les critères dans la clause WHERE sont dorénavant combinés en utilisant l'opérateur OR.


Pour en savoir plus sur la spécification de critères de plusieurs types de champs, voir l'article Exemples de critères de requête.

Haut de la page Haut de la page

Ajouter des calculs à la requête

Si vous avez bien conçu votre base de données, les tables ne devraient pas contenir de calculs simples. Par exemple, la date de naissance d'une personne, mais pas son âge, pourrait être enregistrée dans une table. En effet, si vous connaissez la date du jour et la date de naissance de la personne, vous pouvez calculer son âge. Par conséquent, il est inutile de stocker cette donnée dans la table. Il vaut mieux créer une requête qui calcule et affiche la valeur pertinente. Les calculs sont actualisés à chaque exécution de la requête pour tenir compte des éventuelles modifications des données sous-jacentes.

Dans cet exercice, vous allez modifier la requête « Contacts à Paris » de sorte que la date de naissance et l'âge de chaque individu soient affichés.

  1. Ouvrez la requête en mode Création.
  2. Dans la fenêtre de la table Clients, faites glisser le champ DateNaissance vers la première colonne vide de la grille de création. Vous pouvez également double-cliquer sur le nom du champ pour l'ajouter automatiquement à la première colonne vide.
  3. Dans la colonne suivante, sur la ligne Champ, tapez l'expression qui permettra de calculer l'âge de chaque contact. Tapez Âge: DiffDate ("aaaa", [DateNaissance], Date()).

Âge est le nom que vous utilisez pour le champ calculé. Si vous n'entrez pas de nom, Access utilise un nom générique, par exemple EXPR1. La chaîne qui se trouve après les deux-points (:) est l'expression qui fournit les valeurs de chaque enregistrement. La fonction DiffDate calcule la différence entre deux dates et renvoie le résultat au format spécifié. Le format aaaa affiche le résultat en années et les éléments [DateNaissance] et Date() de l'expression indique les deux valeurs de date. La fonction Date renvoie la date du jour et [DateNaissance] fait référence au champ DateNaissance de la table sous-jacente.

 Remarque   Le calcul utilisé pour Âge dans cet exemple est une approximation qui risque d'être légèrement inexacte, selon le mois en cours.

Basculez en mode Feuille de données. Le résultat inclut deux champs supplémentaires : DateNaissance et Âge.

AfficherVérifiez l'instruction SQL avec des calculs

Dans la barre d'état Access, cliquez sur Mode SQL, ou cliquez avec le bouton droit sur l'onglet de document de requête, puis choisissez Mode SQL. Access affiche le code SQL suivant :

SELECT Customers.[Contact], Customers.[Address], Customers.[Phone], Customers.[City], Customers.[BirthDate],
 DateDiff("yyyy",[BirthDate],Date()) AS Age
FROM Customers
WHERE (((Customers.[Address]) Is Not Null And (Customer.[Address])<>"") AND ((Customer.[City])="london"))
 OR (((Customers.[Phone]) Is Not Null And (Customers.[Phone])<>"") AND ((Customers.[City])="london"));

Notez que Clients.[DateNaissance] et le champ calculé, Âge, apparaissent désormais dans la clause SELECT. Le mot clé AS est utilisé pour désigner le nom du champ calculé.


Pour plus d'informations sur le mode d'écriture des expressions calculant les valeurs d'une requête, voir l'article Créer une expression.

Haut de la page Haut de la page

Synthétiser les valeurs de la requête

Il est plus facile de synthétiser les colonnes d'une requête dans Office Access 2007 que dans les versions précédentes d'Access. Vous pouvez ajouter, compter ou calculer d'autres valeurs d'agrégat, puis les afficher sur une ligne spéciale (appelée « ligne Totaux ») qui apparaît sous la ligne marquée d'un astérisque (*) en mode Feuille de données.

Vous pouvez utiliser une fonction d'agrégat différente pour chaque colonne ou choisir de ne pas synthétiser une colonne.

Dans cet exercice, vous allez modifier la requête « Contacts à Paris » de sorte que la ligne Total soit affichée.

  1. Ouvrez la requête en mode Feuille de données.
  2. Sous l'onglet Accueil, dans le groupe Enregistrements, cliquez sur Totaux.
  1. Cliquez sur la ligne Total dans la colonne Contact.

Dans la liste déroulante, sélectionnez Aucun ou Nombre. Comme la colonne Nom du contact affiche des valeurs textuelles, les fonctions telles que Somme et Moyenne ne sont d'aucune utilité, et par conséquent, ne sont pas disponibles.

  1. Sélectionnez Nombre pour compter le nombre de contacts obtenus.

Le chiffre 5 est affiché sur la ligne Total.

  1. Dans le champ Âge, sélectionnez Moyenne. Comme le champ Âge renvoie un nombre, les fonctions Somme, Moyenne, Nombre, Maximum, Minimum, Écart type et Variance sont disponibles.

Access affiche l'âge moyen dans la ligne Total.

Pour effacer le total d'une colonne, cliquez dans la ligne Total sous la colonne en question et sélectionnez Aucun dans la liste déroulante. Pour masquer la ligne Total, sous l'onglet Accueil, dans le groupe Type de données et mise en forme, cliquez sur Totaux.

 Remarque   L'utilisation de la ligne Total ne modifie pas l'instruction SQL sous-jacente.

Haut de la page Haut de la page

 
 
S'applique à :
Access 2007