formateur informatique

Classement en fonction des résultats sur formulaire Access

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Classement en fonction des résultats sur formulaire Access
Livres à télécharger


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


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Etablir les classements sur un formulaire

Sur un formulaire Access énumérant des commerciaux avec leurs résultats, cette nouvelle astuce montre comment calculer simplement les classements respectifs et ce, à la volée.

Calculer les rangs sur un formulaire Access grâce à la fonction CpteDom

Dans l'exemple finalisé illustré par la capture, cette information supplémentaire sur le rang de chacun est fournie dans la partie grisée, sous la barre de navigation personnalisée.



Source et présentation
Pour la mise en place de cette solution, nous proposons de récupérer une petite base de données, construite au fil des astuces précédentes. Barre de navigation personnalisée sur formulaire Access avec zone de texte prévue pour le calcul des classements

Nous débouchons bien sur le formulaire présentant les commerciaux indépendamment. La barre de navigation personnalisée permet de les faire défiler. Sous cette dernière, la barre d'information grisée est fort logiquement vide à ce stade. C'est elle qui doit accueillir nos travaux pour les calculs de rangs. La donnée qui doit être comparée aux autres est celle du chiffre d'affaires réalisé. Elle est contenue dans la zone d'intitulé Chiffre et porte le nom com_ca, celui du champ d'origine dans la table commerciaux. Si ce chiffre est le plus grand de tous, alors le commercial doit être classé premier.



Calculs de rangs
Pour établir ces classements, nous devons exploiter la fonction Access CpteDom. Dans sa version classique, elle permet de réaliser des dénombrements sur un champ d'une table. Mais avec un double critère spécifique que nous allons lui passer en troisième argument, elle va être en mesure de calculer ces rangs. Cette formule doit-être accueillie par une zone de texte. Et nous allons le voir, cette zone de saisie existe déjà, bien que vide pour l'instant.
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans la liste des propositions, choisir le mode création,
  • En bas du formulaire en conception, cliquer sur la zone intitulée Indépendant,
Zone de texte sur formulaire Access pour écrire la formule de classement

Si vous consultez sa feuille de propriétés, vous notez qu'elle est nommée Classement.

La fonction CpteDom, tout comme les fonctions SomDom et RechDom, analyse toutes les données d'un champ d'une table désignée à la recherche de correspondances. Ces correspondances peuvent s'établir par rapport à un critère ou à des critères. Dans notre cas, nous devons nous assurer que l'identifiant du commercial (com_id) n'est pas identique à l'identifiant en cours d'analyse. Le commercial ne doit pas être comparé à lui-même pour ne pas fausser le calcul du classement. Et dans le même temps, nous devons vérifier si son chiffre (com_ca) est supérieur au chiffre d'affaire de l'enregistrement en cours d'analyse. Une fois que la fonction CpteDom aura passé en revue tous les enregistrements, elle saura combien de fois le chiffre du commercial est supérieur aux autres. C'est selon cette information qu'elle établira le classement de chacun.
  • Cliquer sur l'onglet Données de la feuille de propriétés pour le contrôle sélectionné,
  • Cliquer dans la zone de sa propriété Source contrôle pour l'activer,
  • Taper le symbole égal (=) pour initier la syntaxe de la source d'information,
  • Inscrire tout d'abord le début de syntaxe suivant :
"Classement de " & [com_nom] & " : " &

Avant d'engager le calcul, nous enrichissons l'information d'une indication sur le nom du commercial en cours. Nous concaténons les parties statiques aux parties dynamiques à l'aide du Et Commercial (&).
  • Inscrire le nom de la fonction suivie d'une parenthèse, soit : CpteDom(,
  • Taper le symbole de l'astérisque entre guillemets, soit "*",
Peu importe le champ en effet. Il sera explicitement désigné pour le traitement dans la clause Where en troisième argument.
  • Taper un point-virgule (;) pour passer dans l'argument de la table à étudier,
  • Désigner la table Commerciaux entre guillemets, soit : "Commerciaux",
  • Taper un point-virgule (;) pour passer dans l'argument de la clause Where,
  • Débuter la construction du double critère avec la syntaxe suivante : "com_id<>" & [com_id] &,
Nous nous assurons d'abord que l'Id en cours est différent de celui parcouru dans la table par la fonction CpteDom. Comme nous le disions, le commercial en cours ne doit pas être pris en compte pour ne pas être comparé à lui-même. Le contrôle sur le formulaire est mentionné entre guillemets et sans crochets. Le champ du même nom dans la table est mentionné entre crochets. C'est ainsi que la distinction est faite.
  • Puis terminer l'expression du critère comme suit : " AND com_ca>" & [com_ca])+1,
Grâce à l'opérateur AND, nous recoupons donc une seconde condition. Nous vérifions en même temps que le CA en cours est inférieur au CA parcouru dans la table. S'ils sont tous supérieurs et comme ce traitement est encapsulé dans la fonction CpteDom, il en résulte le décompte de tous les enregistrements vérifiant ces deux conditions, soit le classement du commercial en cours. Après avoir fermé la parenthèse de la fonction CpteDom, nous ajoutons une unité à ce décompte pour corriger le décalage. En effet et par exemple pour le plus gros CA, aucun ne le dépasse. Donc la fonction CpteDom renvoie 0 pour le meilleur, soit un classement de 0 + 1 pour le premier.
  • Enregistrer les modifications (CTRL + S) et exécuter le formulaire (F5),


Classement sur formulaire Access avec la fonction CpteDom et deux critères dans la clause Where

Si vous faites défiler les enregistrements avec les boutons de la barre de navigation personnalisée, vous constatez que tous les classements sont établis. Si vous ouvrez la table commerciaux et opérez un tri décroissant sur le champ com_ca, vous confirmez la parfaite cohérence de ce calcul de rang.

 
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