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

Lorsque vous souhaitez restructurer des données de synthèse pour les rendre plus faciles à lire et à comprendre, utilisez une requête Analyse croisée.

Une requête Analyse croisée calcule une somme, une moyenne ou autre fonction d’agrégation (fonction d’agrégation : fonction, telle que SOMME, NB, MOYENNE ou VAR, utilisée pour calculer des totaux.), puis regroupe les résultats en deux ensembles de valeurs : un affiché verticalement sur le côté de la feuille de données et l’autre affiché horizontalement en haut.

 Remarque   Vous ne pouvez pas utiliser une requête Analyse croisée dans un navigateur Web. Si vous souhaitez exécuter une requête Analyse croisée dans une base de données Web, vous devez d’abord ouvrir la base de données à l’aide d’Access.

Dans cet article


Vue d’ensemble

Une requête Analyse croisée est un type de requête sélection (requête Sélection : requête qui pose une question relative aux données stockées dans vos tables et renvoie un jeu de résultats dans le formulaire d’une feuille de données, sans modifier les données qu’il contient.). 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 facile à lire qu’une requête sélection simple qui affiche les mêmes données, comme le montre l’illustration suivante.


Une requête sélection et une requête Analyse croisée affichant les mêmes données

Légende 1 Cette requête sélection regroupe les données de synthèse verticalement par employé et catégorie.
Légende 2 Une requête Analyse croisée peut afficher les mêmes données, mais regroupe les données à la fois horizontalement et verticalement afin de rendre la feuille de données plus compact et plus facile à lire.

Création de requêtes analyse croisée

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.

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


Diagramme d’une requête Analyse croisée

Légende 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.
Légende 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.
Légende 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.
Légende 4 Les valeurs de synthèse apparaissent ici.

Méthodes permettant de créer une requête Analyse croisée

Utilisation de l’Assistant Requête analyse croisée    L’Assistant Requête analyse croisée est généralement le moyen le plus simple et le plus rapide pour créer une requête Analyse croisée. Il effectue l’essentiel du travail pour vous, mais il y a quelques options qu’il ne propose pas.

L’Assistant présente les avantages suivants :

  • Il est facile à utiliser.    Pour l’utiliser, il vous suffit de démarre l’Assistant et de répondre à une série de questions guidées.
  • Il peut grouper automatiquement des dates par intervalle.    Si vous utilisez un champ qui contient des données de date/heure pour les en-têtes de colonnes, l’Assistant vous aide également à grouper les dates par intervalle, par exemple par mois ou par trimestre.

 Conseil   Si vous souhaitez utiliser des valeurs d’un champ Date/Heure pour les en-têtes de colonnes, mais que vous souhaitez grouper les dates selon un intervalle non fourni par l’Assistant, comme l’exercice fiscal ou biennal, n’utilisez pas l’Assistant pour créer votre requête. Au lieu de cela, créez la requête Analyse croisée en mode Création et utilisez une expression pour créer les intervalles.

  • Il peut être utilisé 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 structure de la requête en mode Création.

En revanche, l’Assistant ne vous permet pas d’effectuer les opérations suivantes :

 Remarque   À la dernière étape de l’Assistant, vous pouvez choisir de modifier la requête en mode Création. Cela vous permet d’ajouter des éléments de structure de requête non pris en charge par l’Assistant, tels que des sources d’enregistrement supplémentaires.

Utilisation du mode Création     Le mode Création vous permet de mieux contrôler votre structure de requête. Il prend en charge les fonctionnalités qui ne sont pas disponibles dans l’Assistant.

Utilisez le mode Création pour créer votre requête Analyse croisée si vous souhaitez :

Écriture d’une requête en mode SQL    Vous pouvez écrire une requête Analyse croisée en mode SQL, si vous le préférez. Toutefois, vous ne pouvez pas spécifier de types de données de paramètres à l’aide du mode SQL. Si vous souhaitez utiliser un paramètre dans votre requête Analyse croisée, vous devez spécifier le type de données du paramètre en modifiant votre requête en mode Création.

 Conseil   Souvenez-vous : vous n’êtes pas limité à l’utilisation d’une seule méthode pour créer une requête Analyse croisée. Vous pouvez utiliser l’Assistant pour créer la requête, puis le mode Création pour modifier la structure de la requête.

Haut de la page Haut de la page

Créer une requête Analyse croisée



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

L’utilisation de l’Assistant Requête analyse croisée nécessite que vous utilisiez une seule table ou une seule requête comme source d’enregistrement pour votre requête Analyse croisée. Si une table unique ne contient pas toutes les données que vous souhaitez inclure dans votre requête Analyse croisée, commencez par créer une requête sélection qui renvoie les données souhaitées. Pour plus d’informations sur la création d’une requête sélection, voir la section Voir aussi.

  1. Sous l’onglet Créer, dans le groupe Macros et code, cliquez sur Assistant 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.

  1. Dans la première page de l’Assistant, choisissez la table ou la requête à utiliser pour créer une requête Analyse croisée.
  2. 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.

 Remarque   Si vous choisissez plusieurs champs pour fournir des en-têtes de lignes, l’ordre dans lequel vous choisissez les champs détermine l’ordre par défaut dans lequel vos résultats sont triés.

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

  1. 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ée, Trimestre, Mois, Date ou Date/Heure. Si vous ne choisissez pas un champ Date/Heure pour les en-têtes de colonnes, l’Assistant ignore cette page.
  2. Dans la page suivante, choisissez un champ et une fonction à utiliser pour calculer les valeurs de synthèse. Le type de données (type de données de champ : caractéristique d’un champ qui détermine le type de données qu’il peut stocker. Par exemple, un champ dont le type de données est Texte peut stocker des données composées soit de texte, soit de chiffres, mais un champ de type numérique peut stocker uniquement des données numériques.) du champ que vous sélectionnez détermine les fonctions qui sont disponibles.
  3. 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.

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

  1. Dans la page suivante de l’Assistant, tapez un nom pour votre requête, puis indiquez si vous souhaitez afficher les résultats ou modifier la structure de la requête.

Haut de la page Haut de la page

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

L’utilisation du mode Création pour créer votre requête Analyse croisée vous permet d’utiliser autant de sources d’enregistrements (tables et requêtes) que vous le souhaitez. Toutefois, vous pouvez conserver la simplicité structurelle en créant d’abord une requête sélection qui renvoie toutes les données souhaitées, puis en utilisant cette requête comme source d’enregistrement uniquement pour votre requête Analyse croisée. Pour plus d’informations sur la création d’une requête sélection, voir 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.


Parties d’une requête Analyse croisée affichées en mode Création

Légende 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.
Légende 2 Ce paramètre affiche les valeurs des champs comme en-têtes de lignes.
Légende 3 Ce paramètre affiche les valeurs des champs comme en-têtes de colonnes.
Légende 4 Ces paramètres produisent les valeurs de synthèse.

Créer la requête

  1. Sous l’onglet Créer, dans le groupe Macros et code, cliquez sur 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 (jointure : association entre un champ d’une table ou d’une requête et un champ du même type de données dans une autre table ou requête. Les jointures indiquent au programme la façon dont les données sont liées. Les enregistrements qui ne correspondent pas peuvent, selon le type de jointure défini, être inclus ou exclus.) 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.

  1. Fermez la boîte de dialogue Afficher la table.
  2. Sous l’onglet Création, dans le groupe Type de requête, cliquez sur Analyse croisée.
  3. 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.
  4. 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.

  1. 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.
  2. 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.

 Remarque   Si vous souhaitez limiter les valeurs qui s’affichent en tant qu’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, voir Spécifier des valeurs fixes pour les en-têtes de colonnes.

  1. 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.
  2. 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.
  3. 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.

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

 Remarque   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 (_).

Haut de la page Haut de la page

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

AfficherSyntaxe SQL pour une requête Analyse croisée

Une requête Analyse croisée est exprimée en SQL sous la forme d’une instruction TRANSFORM. Une instruction TRANSFORM a la syntaxe suivante :

TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]

L’instruction TRANSFORM comprend les parties suivantes :

Partie Description
aggfunction Fonction d'agrégation SQL agissant sur les données sélectionnées.
selectstatement Instruction SELECT.
pivotfield Champ ou expression (expression : toute combinaison d’opérateurs mathématiques ou logiques, de constantes, de fonctions, de noms de champs, de contrôles et de propriétés qui s’évalue pour donner une seule valeur. Les expressions peuvent réaliser des calculs, manipuler des caractères ou tester des données.) que vous souhaitez utiliser pour créer des en-têtes de colonnes dans le jeu de résultats de la requête.
value1, value2 Valeurs fixes utilisées pour créer des en-têtes de colonnes.

Le mode SQL ne limite pas le nombre de tables ou de requêtes que vous pouvez utiliser comme sources d’enregistrements pour une requête Analyse croisée. Toutefois, vous pouvez aider à simplifier la structure en créant une requête sélection qui renvoie toutes les données que vous souhaitez utiliser dans votre requête Analyse croisée, puis en utilisant cette requête sélection comme source d’enregistrement. Pour plus d’informations sur la création d’une requête sélection, voir la section Voir aussi.

  1. Sous l’onglet Créer, dans le groupe Macros et code, cliquez sur Création de requête.
  2. Fermez la boîte de dialogue Afficher la table.
  3. Sous l’onglet Créer, dans le groupe Résultats, cliquez sur SQL.
  4. Sous l’onglet Objet SQL, tapez ou collez l’instruction SQL suivante :
TRANSFORM 
SELECT 
FROM 
GROUP BY 
PIVOT 
;
  1. Sur la première ligne, après TRANSFORM, tapez une expression à utiliser pour calculer les valeurs de synthèse ; par exemple, Somme([Amount]).

 Remarque   Si vous utilisez plus d’une table ou d’une requête comme source d’enregistrement, incluez le nom de la table ou requête dans le cadre de chaque nom de champ ; par exemple, Sum([Expense].[Amount]).

  1. Sur la deuxième ligne, après SELECT, tapez une liste de champs ou d’expressions de champs que vous souhaitez utiliser pour les en-têtes de lignes. Séparez les éléments de la liste par des virgules ; par exemple, [Budget].[Dept_ID], [Expense].[Type].
  2. Sur la troisième ligne, après FROM, tapez une liste de tables ou de requêtes que vous utilisez comme sources d’enregistrements ; par exemple, Budget, Expense.
  3. Sur la quatrième ligne, après GROUP BY, tapez la même liste de champs que celle utilisée dans la clause SELECT, à l’étape 6.
  4. Sur la cinquième ligne après PIVOT, tapez un nom de champ ou une expression que vous souhaitez utiliser pour les en-têtes de colonnes ; par exemple, PIVOT [Budget].[Year].

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, tapez ORDER BY suivi d’un espace.
  3. Tapez le nom de champ ou l’expression sur lequel vous voulez appliquer le tri ; par exemple, ORDER BY [Expense].[Expense_Class].

Par défaut, une clause ORDER BY trie les valeurs par ordre croissant. Si vous souhaitez effectuer un tri par ordre décroissant, tapez DESC après le nom de champ ou l’expression.

  1. Si vous souhaitez effectuer un tri sur un champ ou une expression supplémentaire, tapez une virgule, puis tapez le nom de champ ou l’expression supplémentaire. Le tri se produit dans l’ordre dans lequel les champs ou les expressions apparaissent dans la clause ORDER BY.

Limiter les valeurs utilisées pour les en-têtes de lignes ou de colonnes

Vous pouvez appliquer les procédures suivantes pour spécifier une liste de valeurs à utiliser comme en-têtes de colonnes et ajouter des critères à vos champs d’en-tête de lignes. Ces procédures supposent que votre requête Analyse croisée est ouverte en mode SQL.

Spécifier des valeurs fixes à utiliser comme en-têtes de colonnes

  • À la fin de la clause PIVOT, tapez IN, suivi d’une liste délimitée par des virgules de valeurs (placées entre parenthèses) à 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.

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

Ajouter des critères de requête pour limiter les en-têtes de lignes

  1. Insérez une nouvelle ligne après la clause FROM.
  2. Tapez WHERE suivi d’un critère de champ.

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

Haut de la page Haut de la page

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

Parfois, plutôt qu’utiliser chaque valeur d’un champ pour les en-têtes de lignes ou de colonnes, vous souhaitez regrouper les valeurs d’un champ dans des plages, puis utiliser ces plages pour les en-têtes de lignes ou de colonnes. Par exemple, supposons que vous utilisez un champ « Age » pour les en-têtes de colonnes. Plutôt qu’utiliser une colonne pour chaque âge, vous préférerez peut-être utiliser des colonnes qui représentent des tranches d’âge.

Vous pouvez utiliser la fonction IIf dans une expression pour créer des 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ée, Trimestre, Mois, Dateou 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.

Fonctionnement de IIf

La fonction IIf évalue une expression, puis retourne une valeur si l’expression est vraie, ou une autre valeur si l’expression est fausse. Vous pouvez imbriquer des instructions IIf pour créer une séquence logique de comparaisons. Par conséquent, vous pouvez utiliser IIf pour répartir des valeurs de champs numériques dans des plages.

AfficherSyntaxe de IIf

IIf(expr, truepart, falsepart)

La syntaxe de la fonction IIf comprend les arguments (argument : valeur qui fournit des informations à une action, un événement, une méthode, une propriété, une fonction ou une procédure.) suivants :

Argument Description
expr Obligatoire. Expression que vous souhaitez évaluer.
truepart Obligatoire. Valeur ou expression renvoyée si expr est True.
falsepart Obligatoire. Valeur ou expression renvoyée si expr est True.

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 (alias (SQL) : autre nom d’une table ou d’un champ dans des expressions. Les alias sont souvent utilisés pour raccourcir le nom de la table ou du champ pour les références qui y seront faites dans le code, pour éviter d’éventuelles références ambiguës ou pour fournir un nom plus évocateur dans des résultats de requête.), 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.

  1. 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".

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

  1. Dans la grille de création de requête, sur la ligne Total, sélectionnez Regrouper par.
  2. 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.

Haut de la page Haut de la page

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, mais cela ne limite pas les colonnes qui s’affichent. Pour plus d’informations sur la limitation des colonnes qui s’affichent, voir la section Spécifier des valeurs fixes pour les en-têtes de colonnes.

  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 [Quel pays ou région ?] comme critère, 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 COMME ne modifie pas l’apparence de l’invite de paramètre.

  1. Sous l’onglet Créer, dans le groupe Afficher/Masquer, cliquez sur Paramètres.
  2. 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.
  3. 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.

Haut de la page Haut de la page

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.

AfficherSyntaxe de Nz

Nz(variant [, valueifnull ] )

La syntaxe de la fonction Nz comprend les arguments suivants :

Argument Description
variant Obligatoire. Variable de type de données (type de données : caractéristique d’un champ qui détermine le type des données qu’il peut contenir. Les différents types de données sont Boolean, Integer, Long, Currency, Single, Double, Date, String et Variant (par défaut).)Variant.
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)

Haut de la page Haut de la page

Conseils relatifs aux requêtes analyse croisée

Haut de la page Haut de la page

 
 
S'applique à :
Access 2010, Access 2007