S’applique à
Access 2010

Cet article explique comment utiliser les requêtes de valeurs principales et les requêtes de total pour rechercher les dates les plus récentes ou les plus anciennes dans un ensemble d’enregistrements. Cela peut vous aider à répondre à diverses questions commerciales, telles que le moment où un client a passé une commande pour la dernière fois, ou les cinq trimestres qui ont été vos meilleurs pour les ventes, par ville.

Contenu de cet article

Vue d’ensemble

Vous pouvez classer les données et passer en revue les éléments les mieux classés à l’aide d’une requête de valeurs supérieures. Une requête de valeur supérieure est une requête select qui retourne un nombre spécifié ou un pourcentage de valeurs à partir de la partie supérieure des résultats, par exemple, les cinq pages les plus populaires sur un site web. Vous pouvez utiliser une requête de valeurs principales sur n’importe quel type de valeurs : il n’est pas obligé d’être des nombres.

Si vous souhaitez regrouper ou résumer vos données avant de les classer, vous n’avez pas besoin d’utiliser une requête de valeurs principales. Par exemple, supposons que vous deviez trouver les numéros de vente d’une date donnée pour chaque ville dans laquelle votre entreprise opère. Dans ce cas, les villes deviennent des catégories (vous devez rechercher les données par ville). Vous utilisez donc une requête de totaux.

Lorsque vous utilisez une requête de valeurs principales pour rechercher des enregistrements qui contiennent les dates les plus récentes ou les plus anciennes dans une table ou un groupe d’enregistrements, vous pouvez répondre à diverses questions professionnelles, telles que les suivantes :

  • Qui a fait le plus de ventes ces derniers temps ?

  • Quand un client a-t-il passé une commande pour la dernière fois ?

  • Quand seront les trois prochains anniversaires dans l’équipe ?

Pour créer une requête de valeur supérieure, commencez par créer une requête select. Ensuite, triez les données en fonction de votre question : si vous recherchez le haut ou le bas. Si vous avez besoin de regrouper ou de résumer les données, transformez la requête select en requête de totaux. Vous pouvez ensuite utiliser une fonction d’agrégation, telle que Max ou Min pour renvoyer la valeur la plus élevée ou la plus basse, ou First ou Last pour renvoyer la date la plus ancienne ou la plus récente.

Cet article suppose que les valeurs de date que vous utilisez ont le type de données Date/Heure. Si vos valeurs de date se trouvent dans un champ Texte, .

Envisagez d’utiliser un filtre au lieu d’une requête de valeurs supérieures

Un filtre est généralement préférable si vous avez une date spécifique à l’esprit. Pour déterminer si vous devez créer une requête de valeurs principales ou appliquer un filtre, tenez compte des points suivants :

  • Si vous souhaitez retourner tous les enregistrements dont la date correspond, est antérieure ou ultérieure à une date spécifique, utilisez un filtre. Par exemple, pour afficher les dates des ventes entre avril et juillet, vous appliquez un filtre.

  • Si vous souhaitez retourner une quantité spécifiée d’enregistrements qui ont les dates les plus récentes ou les plus récentes dans un champ, et que vous ne connaissez pas les valeurs de date exactes, ou qui n’ont pas d’importance, vous créez une requête de valeurs principales. Par exemple, pour afficher les cinq meilleurs trimestres de ventes, utilisez une requête de valeurs supérieures.

Pour plus d’informations sur la création et l’utilisation de filtres, consultez l’article Appliquer un filtre pour afficher les enregistrements sélectionnés dans une base de données Access.

Haut de la page

Préparer des exemples de données à suivre avec les exemples

Les étapes décrites dans cet article utilisent les données des exemples de tableaux suivants.

La table Employees   

LastName

Prénom

Adresse

Ville

CountryOrR egion

Date de naissance

Date d’embauche

Jacques

Étienne

7, place Beaubernard

Saint-Denis

USA

05-Fév-1968

10-juin-1994

Heloo

Waleed

52 avenue des anémones

Valenciennes

USA

22 mai 1957

22-Nov-1996

Antoine

Guido

3122 75th Ave. S.W.

Toulouse

USA

11-Nov-1960

11 mars 2000

Bagel

Jean Philippe

1 Impasse des vallées

Paris

UK

22 mars 1964

22 juin 1998

Prix

Julien

2, av. de Slovaquie

Marseille

Mexique

05-Juin-1972

05-Jan-2002

Hughes

Christine

3122 75th St. S.

Toulouse

USA

23-Jan-1970

23-avr-1999

Riley

Steve

67, av. du Mali

Nice

USA

14-avr-1964

14-Oct-2004

Birkby

Dana

2 Nosey Pkwy

Brest

USA

29-Oct-1959

29 mars 1997

Table EventType   

TypeID

Type d’événement

1

Lancement du produit

2

Fonction d’entreprise

3

Fonction privée

4

Levée de fonds

5

Salon commercial

6

Conférence

7

Concert

8

Exhiber

9

Foire de rue

Table Consommateurs   

CustomerID

Société

Coordonnées

1

Contoso, Ltd. Graphisme

Jonathan Haas

2

Tailspin Toys

Ellen Adams

3

Fabrikam

Carol Philips

4

Wingtip Toys

Lucio Iallo

5

A. Datum

Mandar Samant

6

Adventure Works

Brian Burke

7

Design Institute

Stèle de Jaka

8

School of Fine Art

Milena Duomanova

La table Events   

EventID (ID d’événement)

Type d’événement

Client

Date de l’événement

Prix

1

Lancement du produit

Contoso, Ltd.

4/14/2011

10 000 €

2

Fonction d’entreprise

Tailspin Toys

4/21/2011

8 000 €

3

Salon commercial

Tailspin Toys

5/1/2011

25 000 $

4

Exhiber

Graphic Design Institute

5/13/2011

4 500 €

5

Salon commercial

Contoso, Ltd.

5/14/2011

55 000 $

6

Concert

School of Fine Art

5/23/2011

12 000 €

7

Lancement du produit

A. Datum

6/1/2011

15 000 €

8

Lancement du produit

Wingtip Toys

6/18/2011

21 000 €

9

Levée de fonds

Adventure Works

6/22/2011

1 300 $

10

Conférence

Graphic Design Institute

6/25/2011

2 450 $

11

Conférence

Contoso, Ltd.

04.07.11

3 800 $

12

Foire de rue

Graphic Design Institute

04.07.11

5 500 €

Remarque : Les étapes décrites dans cette section supposent que les tables Customers et Event Type résident du côté « un » des relations un-à-plusieurs avec la table Events. Dans ce cas, la table Events partage les champs CustomerID et TypeID. Les requêtes de totaux décrites dans les sections suivantes ne fonctionneront pas sans ces relations.

Coller les exemples de données dans des feuilles de calcul Excel

  1. Démarrez Excel. Un classeur vide s’ouvre.

  2. Appuyez sur Maj+F11 pour insérer une feuille de calcul (vous en aurez besoin quatre).

  3. Copiez les données de chaque exemple de table dans une feuille de calcul vide. Incluez les en-têtes de colonne (la première ligne).

Créer des tables de base de données à partir des feuilles de calcul

  1. Sélectionnez les données de la première feuille de calcul, y compris les en-têtes de colonne.

  2. Cliquez avec le bouton droit sur le volet de navigation, puis cliquez sur Coller.

  3. Cliquez sur Oui pour confirmer que la première ligne contient des en-têtes de colonne.

  4. Répétez les étapes 1 à 3 pour chacune des feuilles de calcul restantes.

Rechercher la date la plus ou la moins récente

Les étapes de cette section utilisent les exemples de données pour illustrer le processus de création d’une requête de valeurs principales.

Créer une requête de valeurs principales de base

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.

  2. Double-cliquez sur la table Employees, puis cliquez sur Fermer.

    Si vous utilisez les exemples de données, ajoutez la table Employees à la requête.

  3. Ajoutez les champs que vous souhaitez utiliser dans votre requête à la grille de conception. Vous pouvez double-cliquer sur chaque champ ou glisser-déplacer chaque champ sur une cellule vide de la ligne Champ .

    Si vous utilisez l’exemple de table, ajoutez les champs Prénom, Nom et Date de naissance.

  4. Dans le champ qui contient vos valeurs supérieures ou inférieures (champ Date de naissance, si vous utilisez l’exemple de table), cliquez sur la ligne Trier et sélectionnez Croissant ou Décroissant.

    L’ordre de tri décroissant renvoie la date la plus récente, et l’ordre de tri croissant renvoie la date la plus ancienne.

    Important : Vous devez définir une valeur dans la ligne Trier uniquement pour les champs qui contiennent vos dates. Si vous spécifiez un ordre de tri pour un autre champ, la requête ne retourne pas les résultats souhaités.

  5. Sous l’onglet Création , dans le groupe Outils , cliquez sur la flèche vers le bas en regard de Tous (la liste Valeurs principales ), puis entrez le nombre d’enregistrements que vous souhaitez afficher ou sélectionnez une option dans la liste.

  6. Cliquez sur Exécuter Image du boutonpour exécuter la requête et afficher les résultats en mode Feuille de données.

  7. Enregistrez la requête sous NextBirthDays.

Vous pouvez voir que ce type de requête de valeurs principales peut répondre à des questions de base, telles que la personne la plus âgée ou la plus jeune de l’entreprise. Les étapes suivantes expliquent comment utiliser des expressions et d’autres critères pour ajouter de la puissance et de la flexibilité à la requête. Les critères indiqués à l’étape suivante retournent les trois prochains anniversaires des employés.

Ajouter des critères à la requête

Ces étapes utilisent la requête créée dans la procédure précédente. Vous pouvez suivre une autre requête de valeurs principales tant qu’elle contient des données date/heure réelles, et non des valeurs de texte.

Conseil :  Si vous souhaitez mieux comprendre le fonctionnement de cette requête, basculez entre le mode Création et le mode Feuille de données à chaque étape. Si vous souhaitez voir le code de requête réel, basculez vers la vue SQL. Pour basculer entre les affichages, cliquez avec le bouton droit sur l’onglet en haut de la requête, puis cliquez sur l’affichage souhaité.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la requête NextBirthDays, puis cliquez sur Mode Création.

  2. Dans la grille de conception de requête, dans la colonne à droite de BirthDate, entrez la valeur suivante :MonthBorn : DatePart(« m »,[BirthDate]).Cette expression extrait le mois de BirthDate à l’aide de la fonction DatePart .

  3. Dans la colonne suivante de la grille de conception de requête, entrez la valeur suivante :DayOfMonthBorn : DatePart(« d »,[BirthDate])Cette expression extrait le jour du mois de BirthDate à l’aide de la fonction DatePart .

  4. Désactivez les zones case activée dans la ligne Afficher pour chacune des deux expressions que vous venez d’entrer.

  5. Cliquez sur la ligne Trier pour chaque expression, puis sélectionnez Croissant.

  6. Dans la ligne Critères de la colonne Date de naissance, tapez l’expression suivante :Month([Birth Date]) > Month(Date()) OR Month([Birth Date])= Month(Date()) AND Day([Birth Date])>Day(Date())Cette expression effectue les opérations suivantes :

    • Month( [Birth Date]) > Month(Date()) spécifie que la date de naissance de chaque employé tombe dans un mois futur.

    • Month ([Birth Date])= Month(Date()) And Day([Birth Date])>Day(Date()) spécifie que si la date de naissance a lieu dans le mois en cours, l’anniversaire tombe le ou après le jour courant.

      En bref, cette expression exclut tous les enregistrements où l’anniversaire a lieu entre le 1er janvier et la date actuelle.

      Conseil :  Pour plus d’exemples d’expressions de critères de requête, consultez l’article Exemples de critères de requête.

  7. Sous l’onglet Création , dans le groupe Configuration de la requête , tapez 3 dans la zone Retour .

  8. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter Image du bouton.

Remarque :  Dans votre propre requête utilisant vos propres données, vous pouvez parfois voir plus d’enregistrements que vous avez spécifié. Si vos données contiennent plusieurs enregistrements qui partagent une valeur qui figure parmi les valeurs les plus élevées, votre requête renverra tous ces enregistrements, même si cela implique de renvoyer plus d’enregistrements que vous ne le souhaitez.

Haut de la page

Rechercher les dates les plus récentes ou les moins récentes pour les groupes d’enregistrements

Vous utilisez une requête de totaux pour rechercher les dates les plus anciennes ou les plus récentes pour les enregistrements qui appartiennent à des groupes, tels que les événements regroupés par ville. Une requête de totaux est une requête select qui utilise des fonctions d’agrégation (telles que Group By, Min, Max, Count, First et Last) pour calculer des valeurs pour chaque champ de sortie.

Incluez le champ que vous souhaitez utiliser pour les catégories ( à regrouper par ) et le champ avec les valeurs que vous souhaitez synthétiser. Si vous incluez d’autres champs de sortie (par exemple, les noms des clients lorsque vous regroupez par type d’événement), la requête utilise également ces champs pour créer des groupes, en modifiant les résultats afin qu’ils ne répondent pas à votre question d’origine. Pour étiqueter les lignes à l’aide d’autres champs, vous créez une requête supplémentaire qui utilise la requête totaux comme source et ajoutez les champs supplémentaires à cette requête.

Conseil :  La création de requêtes par étapes est une stratégie très efficace pour répondre à des questions plus avancées. Si vous rencontrez des difficultés pour faire fonctionner une requête complexe, déterminez si vous pouvez la décomposer en une série de requêtes plus simples.

Créer une requête de totaux

Cette procédure utilise l’exemple de table Events et l’exemple de table EventType pour répondre à cette question :

Quand a été l’événement le plus récent de chaque type d’événement, à l’exception des concerts ?

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.

  2. Double-cliquez sur les tables Events et EventType. Chaque table apparaît dans la section supérieure du concepteur de requêtes.

  3. Double-cliquez sur le champ EventType de la table EventType et le champ EventDate de la table Events pour ajouter les champs à la grille de création de requête.

  4. Dans la grille de conception de requête, dans la ligne Critères du champ EventType , entrez <>Concert.

    Conseil :  Pour plus d’exemples d’expressions de critères, consultez l’article Exemples de critères de requête.

  5. Sous l’onglet Création , dans le groupe Afficher/Masquer , cliquez sur Totaux.

  6. Dans la grille de création de requête, cliquez sur la ligne Total du champ EventDate, puis sur Max.

  7. Sous l’onglet Création, dans le groupe Résultats, cliquez sur Affichage, puis sur Mode SQL.

  8. Dans la fenêtre SQL, à la fin de la clause SELECT, juste après l’mot clé AS, remplacez MaxOfEventDate par MostRecent.

  9. Enregistrez la requête sous MostRecentEventByType.

Créer une deuxième requête pour ajouter des données supplémentaires

Cette procédure utilise la requête MostRecentEventByType de la procédure précédente pour répondre à cette question :

Qui était le client lors de l’événement le plus récent de chaque type d’événement ?

  1. Sous l’onglet Créer, dans le groupe Requêtes, cliquez sur Création de requête.

  2. Sous l’onglet Requêtes , double-cliquez sur la requête MostRecentEventByType.

  3. Sous l’onglet Tables , double-cliquez sur la table Events et la table Customers.

  4. Dans le concepteur de requêtes, double-cliquez sur les champs suivants :

    1. Dans la table Events, double-cliquez sur EventType.

    2. Dans la requête MostRecentEventByType, double-cliquez sur MostRecent.

    3. Dans la table Clients, double-cliquez sur Société.

  5. Dans la grille de conception de requête, dans la ligne Trier de la colonne EventType , sélectionnez Croissant.

  6. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur Exécuter.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.