Créer une Requête Analyse Croisée

Faciliter la lecture des données de synthèse à l’aide d’une requête Analyse croisée

Pour faciliter la lecture et la compréhension des données de synthèse dans Access, vous pouvez utiliser une requête Analyse croisée. Une requête Analyse croisée calcule une somme, une moyenne ou une autre fonction d’agrégation, puis regroupe les résultats en deux ensembles de valeurs : l’un défini sur le côté de la feuille de données et l’autre horizontalement en haut de celle-ci. Dans le ruban, cliquez sur Créer, puis dans le groupe Requêtes, cliquez sur Assistant Requête. Dans la boîte de dialogue Nouvelle requête, double-cliquez sur Assistant Requête analyse croisée.

Si un ensemble d’en-têtes comportent des valeurs de date, l’Assistant va vous aider à regrouper les enregistrements en fonction d’intervalles standard, par exemple par mois ou par trimestre.

Remarque : Les requêtes Analyse croisée ne sont pas disponibles dans les applications Access Web App et ne sont que partiellement prises en charge dans les bases de données Web : aucun objet Web ne peut les utiliser.

Vue d’ensemble

Une requête Analyse croisée est un type de requête Sélection. Lorsque vous exécutez une requête Analyse croisée, les résultats s’affichent dans une feuille de données dont la structure est différente de celle des autres types de feuilles de données.

La structure d’une requête Analyse croisée peut la rendre plus lisible qu’une requête Sélection simple affichant les mêmes données, comme le montre l’illustration suivante.

Requête Sélection et requête Analyse croisée affichant les mêmes données

1. Cette requête sélection regroupe les données de synthèse verticalement par employé et catégorie.

2. Une requête Analyse croisée peut afficher les mêmes données, mais elle les regroupe horizontalement et verticalement pour rendre la feuille de données plus compacte et plus facile à lire.

Lorsque vous créez une requête Analyse croisée, vous devez spécifier les champs qui contiennent les en-têtes de lignes, le champ qui contient les en-têtes de colonnes et le champ qui contient les valeurs à synthétiser. Vous ne pouvez utiliser qu’un seul champ de chaque lorsque vous spécifiez les en-têtes de colonnes et les valeurs à synthétiser. Vous pouvez utiliser jusqu’à trois champs lorsque vous spécifiez les en-têtes de lignes.

Vous pouvez également utiliser une expression pour produire des en-têtes de lignes, des en-têtes de colonnes ou des valeurs à synthétiser. Pour plus d’informations, reportez-vous à Fonctions d’agrégation SQL.

Diagramme d’une requête Analyse croisée

1. Une, deux ou trois colonnes de ce côté contiennent des en-têtes de lignes. Les noms des champs que vous utilisez comme en-têtes de lignes apparaissent dans la ligne supérieure de ces colonnes.

2. Les en-têtes de lignes sont affichés ici. Le nombre de lignes dans la feuille de données d’analyse croisée peut croître rapidement lorsque vous utilisez plusieurs champs d’en-têtes de lignes, car chaque combinaison d’en-têtes de lignes est affichée.

3. Les colonnes de ce côté contiennent des en-têtes de colonnes et des valeurs de synthèse. Notez que le nom du champ d’en-tête de colonne n’apparaît pas dans la feuille de données.

4. Les valeurs de synthèse apparaissent ici.

Méthodes disponibles pour créer votre requête Analyse croisée

Utiliser l’Assistant Requête analyse croisée    L’Assistant Requête analyse croisée est généralement la méthode la plus rapide et la plus simple pour créer une requête analyse croisée. La majeure partie du programme est la plus à faire, mais l’Assistant ne propose pas d’options.

L’Assistant offre les avantages suivants :

  • Il est facile à utiliser. Pour utiliser l’Assistant, il vous suffit de le démarrer puis de répondre à une série de questions.
  • Il permet de regrouper automatiquement des dates par intervalles. Si vous utilisez un champ qui contient des données de type Date/Heure pour les en-têtes de colonnes, l’Assistant vous aide également à regrouper les dates par intervalles (par exemple, par mois ou par trimestre).

    Conseil : Si vous souhaitez utiliser les valeurs d’un champ Date/heure pour les en-têtes de colonnes tout en regroupant les dates sous forme d’intervalles non fournis par l’Assistant (par exemple, par année fiscale ou par exercice biennal), n’utilisez pas l’Assistant pour créer votre requête. Dans ce cas, créez la requête Analyse croisée en mode Création et utilisez une expression pour créer les intervalles.

  • Vous pouvez l’utiliser comme point de départ. Vous pouvez utiliser l’Assistant pour créer la requête analyse croisée de base souhaitée, puis peaufiner la conception de la requête à l’aide du mode création.

Toutefois, si vous utilisez l’Assistant, vous ne pourrez pas :

  • utiliser plusieurs tables ou requêtes comme source d’enregistrement ;
  • utiliser une expression pour créer des champs ;
  • ajouter une invite de paramètre ;
  • spécifier une liste de valeurs fixes à utiliser comme en-têtes de colonnes.

    Lors de la dernière étape de l’Assistant, vous pouvez choisir de modifier la requête en mode Création. Vous pourrez ainsi ajouter des éléments de création de requête que l’Assistant ne prend pas en charge, comme des sources d’enregistrement supplémentaires.

Travailler en mode Création     Le mode Création vous offre un contrôle accru sur la création de votre requête. Il prend en charge des fonctionnalités non disponibles dans l’Assistant.

Vous pouvez créer votre requête Analyse croisée en mode Création si vous souhaitez :

  • Contrôlez davantage le processus. L’Assistant vous apporte quelques décisions pour vous.
  • utiliser plusieurs tables ou requêtes comme sources d’enregistrement ;
  • ajouter une invite de paramètre à votre requête ;
  • utiliser des expressions en tant que champs dans votre requête ;
  • spécifier une liste de valeurs fixes à utiliser comme en-têtes de colonnes.
  • Entraînez-vous à utiliser la grille de création.

Créer une requête en mode SQL    Selon vos préférences, vous pouvez aussi créer une requête Analyse croisée en mode SQL. Sachez toutefois que le mode SQL ne vous permet pas de spécifier les types de données des paramètres. Si vous souhaitez utiliser un paramètre dans votre requête Analyse croisée, vous devez spécifier le type de données de celui-ci en modifiant votre requête en mode Création.

Conseil : Rappel : une requête Analyse croisée peut être créée à l’aide de plusieurs méthodes. Vous pouvez créer la requête à l’aide de l’Assistant, puis la modifier à l’aide du mode Création.

Créer une requête Analyse croisée à l’aide de l’Assistant Requête analyse croisée

L’Assistant Requête analyse croisée ne vous permet d’utiliser qu’une seule table ou requête comme source d’enregistrement de votre requête Analyse croisée. Si une table ne contient pas toutes les données que vous souhaitez inclure à votre requête Analyse croisée, commencez par créer une requête Sélection renvoyant les données souhaitées. Pour plus d’informations sur la création d’une requête sélection, reportez-vous à la section Voir aussi.

Dans cet exemple, nous allons créer une requête Analyse croisée en utilisant la table Produits de la base de données Northwind. Vous souhaitez afficher le nombre de produits de chaque catégorie, tous fournisseurs confondus.

  1. Sous l’onglet Créer, accédez au groupe Requêtes et cliquez sur Assistant Requête.

    Deux options sont disponibles dans le groupe Requêtes du ruban Access : Assistant Requête et Création de requête

  2. Dans la boîte de dialogue Nouvelle requête, cliquez sur Assistant Requête analyse croisée, puis sur OK.

    L’Assistant Requête analyse croisée démarre.

  3. Sur la première page de l’Assistant, sélectionnez la table ou la requête à utiliser pour créer la requête Analyse croisée. Pour cet exemple, sélectionnez la table Produits, puis cliquez sur Suivant.

    Dans l’Assistant Requête analyse croisée, sélectionnez une table ou une requête.

  4. Dans la page suivante, sélectionnez le champ qui contient les valeurs à utiliser comme en-têtes de lignes. Vous pouvez sélectionner jusqu’à trois champs à utiliser comme sources d’en-têtes de lignes, mais moins vous utiliserez d’en-têtes de lignes, plus votre feuille de données d’analyse croisée sera simple à lire. Si vous sélectionnez plusieurs champs pour les en-têtes de lignes, l’ordre dans lequel vous les sélectionnez détermine l’ordre par défaut dans lequel vos résultats sont triés.

    Pour cet exemple, sélectionnez N° fournisseurs.Valeur, puis cliquez sur le bouton affichant le symbole >. Notez qu’Access affiche le nom du champ sur le côté gauche de l’aperçu de la requête, en bas de la boîte de dialogue. Cliquez sur Suivant pour continuer.

    Sélectionnez un champ à afficher comme en-tête de ligne dans l’Assistant Requête analyse croisée.

  5. Dans la page suivante, sélectionnez le champ qui contient les valeurs à utiliser comme en-têtes de colonnes. En règle générale, vous devez choisir un champ qui contient peu de valeurs, afin de faciliter la lecture de vos résultats. Il est par exemple préférable d’utiliser un champ qui possède seulement quelques valeurs possibles (comme le sexe) plutôt qu’un champ pouvant contenir de nombreuses valeurs différentes (comme l’âge).

    Si le type de données du champ que vous choisissez d’utiliser pour les en-têtes de colonnes est Date/Heure, l’Assistant ajoute une étape qui vous permet de spécifier comment regrouper les dates par intervalle, comme par mois ou par trimestre.

    Pour cet exemple, sélectionnez catégorie et Notez qu’Access affiche les noms d’exemples de catégorie dans la partie supérieure de l’aperçu de requête d’exemple en bas de la boîte de dialogue. Cliquez sur Suivant pour continuer.

    Sélectionnez un champ à afficher comme en-tête de ligne dans l’Assistant Requête analyse croisée.

  6. Si vous choisissez un champ Date/Heure pour les en-têtes de colonnes, la page suivante de l’Assistant vous invite à spécifier l’intervalle à utiliser pour regrouper les dates. Vous pouvez spécifier AnnéeTrimestreMoisDate ou Date/Heure. Si vous ne choisissez pas un champ Date/Heure pour les en-têtes de colonnes, l’Assistant ignore cette page.
  7. Dans la page suivante, choisissez un champ et une fonction à utiliser pour calculer les valeurs de synthèse. Le type de données du champ que vous sélectionnez détermine les fonctions qui sont disponibles.

    Dans la même page, activez ou désactivez la case à cocher Oui, inclure les sommes des lignes pour inclure ou exclure les sommes des lignes.

    Si vous incluez les sommes des lignes, la requête Analyse croisée possède un en-tête de ligne supplémentaire qui utilise les mêmes champ et fonction que la valeur du champ. L’inclusion d’une somme de ligne insère une colonne supplémentaire qui résume les colonnes restantes. Par exemple, si votre requête Analyse croisée calcule l’âge moyen par emplacement et sexe (avec des en-têtes de colonnes de sexe), la colonne supplémentaire calcule l’âge moyen par emplacement indépendamment du sexe.

    Pour cet exemple, sélectionnez ID dans la zone Champs et Nombre dans la zone Fonctions pour permettre à Access de compter le nombre de produits correspondant à chaque intersection de fournisseur et de catégorie. Ne décochez pas la case Oui, inclure les sommes des lignes. Access crée une colonne qui calcule le nombre total de produits correspondant à chaque fournisseur. Cliquez sur Suivant pour continuer.

    Sélectionnez un champ et une fonction à calculer dans l’Assistant Requête analyse croisée.

  8. Sur la dernière page de l’Assistant, entrez un nom pour votre requête, puis indiquez si vous souhaitez afficher les résultats ou modifier la structure de la requête.

    Vous pouvez changer la fonction utilisée pour générer les sommes des lignes en modifiant la requête Analyse croisée en mode Création.

  9. Si vous avez suivi cet exemple en utilisant la table Produits de la base de données Northwind, la requête Analyse croisée affiche les noms des fournisseurs sous forme de lignes, les noms des catégories de produits sous forme de colonnes et le nombre de produits correspondant à chaque intersection.

    Requête Analyse croisée affichée en mode Feuille de données avec les catégories Fournisseurs et Produits.

Créer une requête Analyse croisée en mode Création

Si vous créez votre requête Analyse croisée en mode Création, vous pouvez utiliser autant de sources d’enregistrement (tables et requêtes) que vous le souhaitez. Toutefois, par souci de simplicité, vous pouvez commencer par créer une requête Sélection renvoyant toutes les données souhaitées, puis utiliser cette requête comme unique source d’enregistrement de votre requête Analyse croisée. Pour plus d’informations sur la création d’une requête Sélection, reportez-vous à la section Voir aussi.

Lorsque vous générez une requête Analyse croisée en mode Création, vous utilisez les lignes Total et Analyse croisée de la grille de création pour spécifier les valeurs de champs qui deviendront des en-têtes de colonnes, celles qui deviendront des en-têtes de lignes et celles dont il faut calculer la somme, la moyenne, le nombre, ou tout autre calcul.

Éléments d’une requête Analyse croisée affichée en mode Création

1. Les paramètres de ces lignes déterminent si le champ est un en-tête de ligne, un en-tête de colonne ou une valeur de synthèse.

2. Ce paramètre affiche les valeurs des champs comme en-têtes de lignes.

3. Ce paramètre affiche les valeurs des champs comme en-têtes de colonnes.

4. Ces paramètres produisent les valeurs de synthèse.

Créer la requête

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

    Deux options sont disponibles dans le groupe Requêtes du ruban Access : Assistant Requête et Création de requête

  2. Dans la boîte de dialogue Afficher la table, double-cliquez sur chaque table ou requête que vous souhaitez utiliser comme source d’enregistrement.

    Si vous utilisez plus d’une source d’enregistrement, assurez-vous que les tables ou requêtes sont jointes sur les champs qu’elles ont en commun. Pour plus d’informations sur la jointure de tables et de requêtes, voir la section Voir aussi.

  3. Fermez la boîte de dialogue Afficher la table.
  4. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur Analyse croisée.
  5. Dans la fenêtre de création de requête, double-cliquez sur chaque champ à utiliser comme source d’en-têtes de lignes. Vous pouvez sélectionner jusqu’à trois champs pour les en-têtes de lignes.
  6. Dans la grille de création de requête, sur la ligne Analyse croisée pour chaque champ d’en-tête de ligne, sélectionnez En-tête de ligne.

    Vous pouvez entrer une expression sur la ligne Critères afin de limiter les résultats de ce champ. Vous pouvez également utiliser la ligne Trier pour spécifier un ordre de tri pour un champ.

  7. Dans la fenêtre de création de requête, double-cliquez sur le champ à utiliser comme source d’en-têtes de colonnes. Vous ne pouvez sélectionner qu’un seul champ pour les en-têtes de colonnes.
  8. Dans la grille de création de requête, dans la ligne Analyse croisée pour le champ d’en-tête de colonne, sélectionnez En-tête de colonne.

    Vous pouvez entrer une expression sur la ligne Critères afin de limiter les résultats pour le champ d’en-tête de colonne. Toutefois, l’utilisation d’une expression de critères avec le champ d’en-tête de colonne ne limite pas le nombre de colonnes renvoyées par la requête Analyse croisée. Au lieu de cela, elle limite les colonnes qui contiennent des données. Par exemple, supposons que vous avez un champ d’en-tête de colonne qui possède trois valeurs possibles : rouge, vert et bleu. Si vous appliquez le critère =’bleu’ au champ d’en-tête de colonne, l’analyse croisée affiche toujours une colonne pour le rouge et une colonne pour le vert, mais seule la colonne pour le bleu contient des données.

    Si vous souhaitez limiter les valeurs à afficher sous forme d’en-têtes de colonnes, vous pouvez spécifier une liste de valeurs fixes à l’aide de la propriété En-têtes des colonnes de la requête. Pour plus d’informations, reportez-vous à la section suivante.

  9. Dans la fenêtre de création de requête, double-cliquez sur le champ que vous souhaitez utiliser pour calculer des valeurs de synthèse. Vous ne pouvez sélectionner qu’un seul champ à utiliser pour les valeurs de synthèse.
  10. Dans la grille de création de requête, sur la ligne Total pour le champ des valeurs de synthèse, sélectionnez une fonction d’agrégation à utiliser pour calculer les valeurs.
  11. Sur la ligne Analyse croisée pour le champ de valeurs de synthèse, sélectionnez Valeur.

    Vous ne pouvez pas spécifier de critères pour un champ de valeurs de synthèse, ni effectuer de tri sur ce type de champ.

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

Spécifier des valeurs fixes pour les en-têtes de colonnes

Si vous souhaitez spécifier des valeurs fixes à utiliser pour les en-têtes de colonnes, vous pouvez définir la propriété En-têtes des colonnes de la requête.

  1. Ouvrez la requête Analyse croisée en mode Création.
  2. Si la feuille de propriétés n’est pas visible, appuyez sur F4 pour l’afficher.
  3. Dans la feuille de propriétés, juste au-dessus de l’onglet Général, assurez-vous que le Type de sélection est Propriétés de la requête. Si ce n’est pas le cas, cliquez à un emplacement vide au-dessus de la grille de création de requête.
  4. Dans la feuille de propriétés, sous l’onglet Général, dans la propriété En-têtes des colonnes, entrez une liste délimitée par des virgules de valeurs que vous souhaitez utiliser comme en-têtes de colonnes.

    Certains caractères (tels que la plupart des signes de ponctuation) ne sont pas autorisés dans les en-têtes de colonnes. Si vous utilisez ces caractères dans votre liste de valeurs, Access les remplace par un trait de soulignement (_).

Créer une requête Analyse croisée en mode SQL

Syntaxe SQL à utiliser pour créer une requête Analyse croisée

En mode SQL, une requête Analyse croisée s’exprime en tant qu’instruction TRANSFORM. La syntaxe d’une instruction TRANSFORM est la suivante :

Transform AggFunction
instructionselect
TABLEAU croisé dynamique de tableau croisé dynamique [dans (valeur1[, valeur2[,…]])]

L’instruction TRANSFORM est composée des éléments suivants :

Élément Description
aggfunction Fonction d’agrégation SQL qui s’applique aux données sélectionnées.
selectstatement Instruction SELECT.
pivotfield Champ ou expression que vous souhaitez utiliser pour créer des en-têtes de colonne dans le jeu de résultats de la requête.
value1value2 Valeurs fixes utilisées pour créer des en-têtes de colonne.

En mode SQL, vous pouvez utiliser autant de tables ou de requêtes que vous le souhaitez comme sources d’enregistrement d’une requête Analyse croisée. Toutefois, par souci de simplicité, vous pouvez créer une requête Sélection renvoyant toutes les données à utiliser dans votre requête Analyse croisée, puis utiliser cette requête Sélection comme source d’enregistrement. Pour plus d’informations sur la création d’une requête Sélection, reportez-vous à la section Voir aussi.

  1. Sous l’onglet Créer, accédez au groupe Autres et cliquez sur Création de requête.
  2. Fermez la boîte de dialogue Afficher la table.
  3. Sous l’onglet Création, accédez au groupe Vues, puis cliquez sur Affichage et sur Mode SQL.
  4. Sous l’onglet Objet SQL, entrez ou collez les instructions SQL suivantes :

    TRANSFORM 
    SELECT 
    FROM 
    GROUP BY 
    PIVOT 
    ;
    
  5. Sur la première ligne, après TRANSFORM, entrez une expression pour calculer des valeurs de synthèse ; par exemple, Sum([Montant]).

    Si vous utilisez plusieurs tables ou requêtes comme sources d’enregistrement, incluez le nom de la table ou de la requête dans le nom de chaque champ. Par exemple, Sum([Dépenses].[Montant]).

  6. Sur la deuxième ligne, après SELECT, entrez la liste des champs ou les expressions de champs à utiliser pour les en-têtes de lignes. Séparez les éléments de liste avec des virgules ; par exemple, [Budget].[ID_Service], [Dépenses].[Type].
  7. Sur la troisième ligne, après FROM, entrez la liste des tables ou requêtes utilisées comme sources d’enregistrement ; par exemple, Budget, Dépenses.
  8. Sur la quatrième ligne, après GROUP BY, entrez la liste des champs utilisés dans la clause SELECT, à l’étape 6.
  9. Sur la cinquième ligne, après PIVOT, entrez un nom ou une expression de champ à utiliser pour les en-têtes de colonnes ; par exemple, PIVOT [Budget].[Année].
Ajouter un ordre de tri à un champ d’en-tête de ligne

Pour ajouter un ordre de tri à une requête Analyse croisée en mode SQL, utilisez une clause ORDER BY.

  1. Insérez une ligne entre la clause GROUP BY et la clause PIVOT.
  2. Sur la nouvelle ligne, entrez ORDER BY suivi d’un espace.
  3. Entrez le nom ou l’expression de champ à utiliser pour le tri ; par exemple, ORDER BY [Dépenses].[Catégorie_de_dépenses]

    Par défaut, une clause ORDER BY trie les valeurs dans l’ordre croissant. Pour les trier dans l’ordre décroissant, entrez DESC après le nom ou l’expression de champ.

  4. Si vous souhaitez effectuer un tri sur un champ ou sur une expression supplémentaire, entrez une virgule, puis entrez le nom ou l’expression de champ supplémentaire. Le tri est effectué dans l’ordre dans lequel les champs ou expressions sont affichés dans la clause ORDER BY.
Spécifier des valeurs fixes à utiliser comme en-têtes de colonnes
  • En mode SQL, à la fin de la clause PIVOT de votre requête Analyse croisée, entrez IN, suivi d’une liste de valeurs (entre parenthèses) séparées par des virgules pour les utiliser comme en-têtes de colonnes. Par exemple, IN (2007, 2008, 2009, 2010) génère quatre en-têtes de colonnes : 2007, 2008, 2009, 2010.

Si vous spécifiez une valeur fixe qui ne correspond pas à une valeur du champ dynamique, cette valeur fixe devient un en-tête de colonne vide.

Ajouter des critères de requête pour limiter les en-têtes de lignes
  1. En mode SQL, insérez une nouvelle ligne après la clause FROM de votre requête Analyse croisée.
  2. Entrez WHERE suivi d’un critère de champ.

    Si vous souhaitez ajouter des critères, vous pouvez utiliser les opérateurs AND et OR pour étendre votre clause WHERE. Vous pouvez également utiliser des parenthèses pour regrouper des critères en ensembles logiques.

Utiliser des plages ou des intervalles pour les en-têtes

Parfois, plutôt que d’utiliser toutes les valeurs d’un champ pour les en-têtes de lignes ou de colonnes, vous pouvez regrouper les valeurs du champ en plages, puis utiliser ces plages pour les en-têtes de lignes ou de colonnes. Par exemple, supposons que vous utilisiez un champ « Âge » pour les en-têtes de colonnes. Plutôt que d’utiliser une colonne pour chaque âge, vous préférerez peut-être utiliser des colonnes représentant des tranches d’âge.

Vous pouvez ajouter la fonction IIF dans une expression afin de créer les plages à utiliser pour les en-têtes de lignes ou de colonnes.

Conseil : Si vous souhaitez créer des intervalles avec un champ Date/Heure, utilisez l’Assistant Requête analyse croisée. Cet Assistant vous permet de regrouper les dates par AnnéeTrimestreMoisDateou Date/Heure. Si aucun de ces intervalles ne correspond à vos besoins, créez votre requête Analyse croisée en mode Création et utilisez ensuite la technique décrite dans cette section pour créer les intervalles souhaités.

Créer des plages à l’aide d’une expression
  1. Ouvrez la requête Analyse croisée en mode Création.
  2. Dans la grille de création de requête, sur la ligne Champ, cliquez avec le bouton droit sur une colonne vide, puis cliquez sur Zoom dans le menu contextuel.
  3. Dans la zone Zoom, tapez un alias de champ, suivi de deux-points (:).
  4. Tapez IIf().
  5. À l’intérieur des parenthèses qui suivent IIf, tapez une expression de comparaison qui définit la première plage de valeurs de champs.

    Par exemple, supposons que vous créez des plages pour un champ Age et que vous souhaitez que chaque plage englobe vingt années. L’expression de comparaison pour la première plage est [Age]<21.

  6. Tapez une virgule après l’expression de comparaison, puis tapez un nom pour la plage entre guillemets. Le nom que vous fournissez correspond à l’en-tête d’analyse croisée pour les valeurs comprises dans la plage.

    Par exemple, après [Age]<21, tapez une virgule, puis tapez “0-20 years”.

  7. Tapez une virgule après le nom de la plage (à l’extérieur des guillemets) et effectuez l’une des opérations suivantes :
    • Pour créer une autre plage, tapez IIf(), puis répétez les étapes 5, 6 et 7.
    • Pour la dernière plage, tapez un nom pour la plage.

      Par exemple, une expression IIf imbriquée complète qui fractionne un champ Age en plages de vingt années peut ressembler à ce qui suit (des sauts de ligne ont été ajoutés pour des raisons de lisibilité) :

      IIf([Age]<21,"0-20 years",
       IIf([Age]<41,"21-40 years",
       IIf([Age]<61,"41-60 years",
       IIf([Age]<81,"61-80 years", "80+ years"))))
      

      Remarque : Lorsque Access évalue l’expression, il arrête l’évaluation dès qu’une des instructions IIf a la valeur True. Il est inutile de spécifier l’extrémité inférieure de chaque plage, car toute valeur inférieure à l’extrémité inférieure d’une plage donnée aurait déjà été évaluée à la valeur True.

  8. Dans la grille de création de requête, sur la ligne Total, sélectionnez Regrouper par.
  9. Sur la ligne Analyse croisée, spécifiez s’il faut utiliser les plages en tant qu’en-têtes de lignes ou en-têtes de colonnes. N’oubliez pas que vous pouvez spécifier de un à trois en-têtes de lignes et un seul en-tête de colonne.
Inviter à fournir un paramètre pour limiter les en-têtes de lignes

Vous souhaiterez peut-être que votre requête Analyse croisée invite l’utilisateur à entrer des données lors de son exécution. Par exemple, supposons que vous utilisez plusieurs en-têtes de lignes, parmi lesquels Pays/région. Plutôt que de toujours afficher les données pour chaque pays ou région, vous souhaiterez peut-être que votre requête invite l’utilisateur à spécifier un nom, puis affiche les données en fonction de l’entrée utilisateur.

Vous pouvez ajouter une invite de paramètre à n’importe quel champ d’en-tête de ligne.

Remarque : Vous pouvez également ajouter une invite de paramètre à un champ d’en-tête de colonne sans limiter les colonnes affichées.

  1. Ouvrez la requête Analyse croisée en mode Création.
  2. Sur la ligne Critères du champ d’en-tête de ligne pour lequel vous souhaitez inviter l’utilisateur à fournir une entrée, tapez le texte de la question entre crochets. Le texte de la question s’affiche sous forme d’invite lors de l’exécution de la requête.

    Par exemple, si vous tapez [Quel pays ou région ?] sur la ligne Critères, lors de l’exécution de la requête, une boîte de dialogue s’affiche avec la question « Quel pays ou région ? », une zone d’entrée et un bouton OK.

    Conseil : Si vous souhaitez que votre paramètre soit flexible, concaténez votre expression avec des caractères génériques à l’aide de l’opérateur COMME. Par exemple, au lieu d’utiliser le critère [Quel pays ou région ?], vous pouvez utiliser COMME [Quel pays ou région ?]&”*” pour que le paramètre corresponde à une gamme plus étendue d’entrées. L’utilisation de l’opérateur COMME ne modifie pas l’apparence de l’invite de paramètre.

  3. Sous l’onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Paramètres.
  4. Dans la boîte de dialogue Paramètres de la requête, dans la colonne Paramètres, entrez la même invite de paramètre que celle utilisée sur la ligne Critères. Incluez les crochets, mais n’incluez pas de caractères génériques concaténés ni l’opérateur Comme.
  5. Dans la colonne Type de données, sélectionnez le type de données pour le paramètre. Le type de données doit correspondre au type de données du champ d’en-tête de ligne.
Remplacer les valeurs Null par des zéros

Si le champ que vous utilisez pour calculer des valeurs de synthèse dans votre requête Analyse croisée contient des valeurs Null, ces valeurs sont ignorées par toute fonction d’agrégation que vous utilisez. Pour certaines fonctions d’agrégation, vos résultats peuvent être affectés. Par exemple, pour calculer une moyenne, vous ajoutez toutes les valeurs et divisez le résultat par le nombre de valeurs. Mais si le champ contient des valeurs Null, celles-ci ne sont pas comptabilisées dans le nombre de valeurs.

Dans certains cas, vous préférerez peut-être remplacer toutes les valeurs Null par des zéros afin qu’elles soient comptabilisées pendant les calculs d’agrégation. Vous pouvez utiliser la fonction Nz pour remplacer les valeurs Null par des zéros.

Syntaxe de Nz

Nz ( variant [valueifnull ] )

La syntaxe de la fonction Nz comprend les arguments suivants :

Argument Description
variant Obligatoire. Variable de type de donnéesVariant.
valueifnull Facultatif (sauf dans une requête). Variant qui fournit une valeur à renvoyer si l’argument variant est Null. Cet argument vous permet de renvoyer une valeur différente de zéro ou d’une chaîne de longueur nulle.

Remarque : Si vous utilisez la fonction Nz dans une expression dans une requête sans utiliser l’argument valueifnull, le résultat est une chaîne de longueur nulle dans les champs qui contiennent des valeurs Null.

  1. La requête étant ouverte en mode Création, dans la grille de création de requête, cliquez avec le bouton droit sur le champ Valeur.
  2. Dans le menu contextuel, cliquez sur Zoom.
  3. Dans la zone Zoom, placez le nom de champ ou l’expression entre parenthèses, puis tapez Nz devant les parenthèses.
  4. Tapez 0 juste devant la parenthèse droite.

    Par exemple, si vous avez utilisé Nz avec un champ nommé « Hours Lost » pour convertir les valeurs Null en zéros, votre expression terminée ressemble à ceci :

Nz([Hours Lost], 0)

Conseils relatifs aux requêtes analyse croisée
  • Restez simple    La lecture des requêtes Analyse croisée peut devenir difficile à mesure que le nombre de combinaisons de lignes augmente. N’utilisez pas plus d’en-têtes de lignes que vous n’en avez besoin.
  • Créez votre analyse croisée par étape    Ne vous limitez pas à l’utilisation de tables. Il est souvent pratique de commencer par créer une requête Opérations, puis d’utiliser cette requête comme source d’enregistrement pour une requête Analyse croisée.
  • Choisissez avec soin votre champ d’en-tête de colonne    Les feuilles de données analyse croisée sont généralement plus faciles à lire lorsque le nombre d’en-têtes de colonnes est relativement faible. Une fois que vous avez identifié les champs à utiliser comme en-têtes, utilisez le champ ayant le moins de valeurs distinctes pour produire des en-têtes de colonnes. Par exemple, si votre requête calcule une valeur par âge ou sexe, utilisez le sexe comme en-tête de colonne plutôt que l’âge, car le sexe a en général moins de valeurs possibles que l’âge.
  • Utiliser une sous-requête dans une clause WHERE    Vous pouvez utiliser une sous-requête dans une clause WHERE de votre requête Analyse croisée.