formateur informatique

Synthèse conditionnelle avec une requête Access

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Synthèse conditionnelle avec une requête Access
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Conditions et synthèse

Avec les requêtes Access, il est simple de tirer des synthèses conditionnelles sur des données regroupées. Cette nouvelle astuce ouvre la voie.

Calculs conditionnels dans une requête de synthèse Access

Dans l'exemple illustré par la capture, des primes sont allouées et calculées lorsque le commercial a passé la barre des 10 000 Euros sur une période donnée. Mais ces ventes sont archivées au coup par coup dans une table différente de celles des commerciaux. Il est donc question tout d'abord de réunir les informations puis de les consolider et d'émettre des conditions.

Source et procédure
Pour la démonstration de cette astuce, nous suggérons de récupérer cette petite source d'informations. Deux tables sont présentes dans le volet de navigation sur la gauche de l'écran. Elles se nomment respectivement Commerciaux et Ventes.
  • Double cliquer sur la table Commerciaux,
Nous l'affichons ainsi en mode Feuille de données. Cette table est basique. Elle recense les vendeurs sur un niveau de détail très sobre. Vous notez que l'identifiant du premier champ est une combinaison de caractères et de numéros incrémentés. Nous l'avions conçu à l'occasion d'une précédente astuce. C'est un format personnalisé qui sert de leurre à l'affichage. Seul le numéro automatique est effectivement considéré.
  • Dans le volet de navigation, double cliquer sur la table Ventes,
Table Access dépendante des ventes réalisées par les commerciaux

Comme vous pouvez le voir, toutes les ventes réalisées au coup par coup sont listées. Elles sont toutes rattachées à un commercial par le numéro de l'identifiant issu de la table parente. Et donc de multiples chiffres sont associés à un même vendeur.

Regrouper les données
Avant de pouvoir décider d'une prime à allouer, faut-il encore être en mesure de connaître le volume réalisé par chaque vendeur. Mais les requêtes Access sont puissantes et simples de mise en oeuvre. En outre, elles permettent de créer des recoupements sur les données communes tout en consolidant les informations numériques attachées. Et dans le processus, c'est la première astuce que nous proposons de démontrer.
  • Fermer les deux tables ouvertes en cliquant sur les croix des onglets,
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
  • Dans la boîte de dialogue qui suit, sélectionner les deux tables avec la touche CTRL,
  • Cliquer alors sur le bouton Ajouter puis sur le bouton Fermer de la boîte de dialogue,
Représentation schématisée des tables dépendantes dans l-éditeur de requête Access

Nous intégrons ainsi les deux tables en représentation schématisée dans l'éditeur de requêtes.
  • Dans la première table, sélectionner tous les champs, sauf c_num,
  • Puis, les glisser sur la grille de requête,
  • Dans la seconde table, sélectionner le champ v_montant,
  • Puis, le glisser à la suite sur la grille de requête,
Ajouter les champs de deux tables liées sur la grille de requête Access

De cette manière, nous comptons réunir dans une même vue les informations de la seconde table attachées à celles de la première table.
  • Enregistrer la requête (CTRL + S) sous le nom r_primes,
  • Tout à fait à gauche du ruban contextuel Créer, cliquer sur le bouton Exécuter,
Requête Access en mode feuille de données et regroupant les données de deux tables

Nous affichons ainsi le résultat de l'extraction de la requête en mode Feuille de données. Les informations sont effectivement réunies puisque la requête agit sur les deux tables liées. Mais à ce stade, nous ne bénéficions que d'une simple énumération des ventes réalisées au coup par coup. C'est la raison pour laquelle un même vendeur est répété à X reprises. Pour émettre une condition consistant à calculer une prime en fonction des résultats, nous devons consolider les ventes de chacun.
  • Tout à fait à gauche du ruban Accueil, cliquer sur le bouton Affichage,
Ainsi, nous revenons dans la vue en conception de la requête.
  • Cliquer avec le bouton droit de la souris n'importe où dans la grille de requête,
  • Dans le menu contextuel, choisir Totaux,
Opérations de synthèse et de regroupement dans les requêtes Access

Nous ajoutons ainsi à la grille de requête les lignes permettant de réaliser des opérations de synthèse. Par défaut, l'opération de chaque champ est définie sur Regroupement. Les données qui peuvent être réunies, c'est-à-dire les informations identiques, doivent l'être bien entendu. Pour les montants des ventes en revanche, nous devons les additionner pour chaque regroupement opéré.
  • Déployer la liste déroulante de la ligne d'opération du champ v_montant,
  • Dans les propositions d'opérations, choisir la Somme,
Sommer les valeurs sur des données regroupées dans une requête Access

C'est ainsi que nous allons pouvoir consolider toutes les ventes effectuées par un même vendeur.
  • Enregistrer les modifications de la requête (CTRL + S),
  • Puis, cliquer sur le bouton Exécuter dans le ruban Créer,
Cette fois, nous obtenons bien la synthèse escomptée.

Consolidation des données dans requête Access de regroupement

Toutes les ventes sont consolidées pour chaque commercial. Nous allons donc désormais pouvoir travailler sur ces totaux afin de décider ou non de l'allocation d'une prime.

Champ calculé conditionnel
C'est un champ calculé qui permet de réaliser de nouvelles opérations en fonction des données émanant de la requête. Une condition est à poser. Arbitrairement, nous décidons qu'une prime de 5% est allouée à chaque commercial ayant réalisé un chiffre dépassant les 10 000 Euros. Et comme vous le savez dans Access, la fonction conditionnelle se nomme VraiFaux. Sa construction est tout à fait identique à celle de la fonction Si avec Excel : =VraiFaux(Critère; Action_Alors; Action_Sinon).
  • Dans le ruban Accueil, cliquer sur le bouton Affichage pour revenir en conception,
  • Dans la zone Champ de la première colonne vide qui suit, taper l'expression suivante :
v_prime:VraiFaux(Somme([v_montant])>10000; Somme([v_montant])*0,05; 0)

Formule conditionnelle dans un champ calculé de requête Access

Ainsi,nous créons un nouveau champ que nous nommons v_prime. Dans la syntaxe Access, il doit être suivi du symbole deux points (:) pour annoncer l'opération à suivre. Dans la zone de critère de la fonction VraiFaux, nous posons la condition sur la somme du champ v_montant. Un champ doit nécessairement être désigné entre crochets. Cette somme doit dépasser les 10 000 Euros. Si le critère est satisfait, nous multiplions cette somme par 0,05 pour appliquer les 5% de prime. Dans le cas contraire, nous n'attribuons aucune prime (0).
  • Déployer la liste déroulante de la zone Opération,
  • En bas des propositions, choisir Expression,
C'est ainsi que notre expression est considérée comme telle. Elle se gère elle-même par ses calculs.
  • Dans la zone Format de la feuille de propriétés, taper le code suivant : ###0,00' €',
Formater un champ calculé en monétaire dans une requête Access

Il est tout à fait possible en effet d'attribuer des formats à la volée dans une requête Access, y compris sur des champs calculés.
  • Enregistrer les modifications et cliquer sur le bouton Exécuter dans le ruban Créer,
Calculs conditionnels formatés en monétaire dans une requête Access

Nous obtenons bien la synthèse attendue grâce à une requête Access intégrant un champ calculé conditionnel et exploitant les lignes d'opération. Ces informations conditionnelles, nous pourrons facilement les exploiter depuis un formulaire, dès lors que nous l'aurons construit sur la base de cette requête de synthèse.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn