Temps nécessaire pour suivre cette leçon : entre vingt minutes et trois bons quarts d'heure
Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici
Dans cette leçon, nous allons effectuer des calculs au sein de ces groupes - à des fins statistiques par exemple. |
Nous allons voir ça en pratique.
Commencez par créer un nouvel état en mode création, basé sur T_Celebrite, qui ressemble à ceci : (pensez bien à virer l'en-tête/pied de page, les étiquettes des champs, et resserrez le tout)
Bien, maintenant demandez un groupe sur le domaine, comme ceci :
Offrez-lui un fond jaune, taille 15, et une petite bordure noire. Resserrez la section :
Pas spécialement. mais comme je l'ai djà souvent répété, si vous ne prenez pas la peine de mettre en forme bien correctement vos états, je vous assure que vous n'allez rapidement plus rien comprendre.
Décalez un petit peu le nom et le prénom sur la droite.
Bon, nous avons fait un groupe sur le domaine, soit. Maintenant, nous allons compter les gens que nous avons dans chaque domaine. Pour ce faire, mettez un peu de place sous Domaine, et installez un champ Ab| : . Remplacez Texte3 par Nombre de célébrités : , et "Indépendant" par =Compte(NomClient) : . Attention : La moindre faute de frappe entraînera une erreur.
ATTENTION : Constatez que je vous ai fait écrire =Compte(NomClient) alors que dès que vous appuyez sur la touche ENTER de votre clavier (), il écrit en fait =Compte([NomClient]). Vous pouvez ajouter les crochets vous-même, mais ce n'est pas nécessaire : Access les rajoutera automatiquement autour des champs DANS LE CAS ou vous avez bien pris soin de ne PAS inclure d'espace dans les noms de vos champs !
Note : Les crochets s'obtiennent avec la touche de votre clavier Alt Gr (A droite de votre barre d'espace), et "è" pour les crochets ouvrants, et Alt Gr "!" pour les crochets fermants
Si vous avez eu le malheur d'appeler votre champ dans T_Celebrite Nom Client (Avec un espace) à la place de NomClient, ALORS, il vous FAUDRA systématiquement insérer les crochets partout ou ils sont nécessaires (en l'occurrence ici : =Compte([NomClient])), sinon... Une erreur apparaîtra : à l'instant ou vous appuyerez sur après avoir essayé d'écrire =Compte(Nom Client)
C'est un peu le même principei.
Sauf que dans ces requêtes, on effectuait un calcul sur les champs d'un seul enregistrement (=[Salaire]+[prime] par exemple). Ici, nous faisons un regroupement de plusieurs enregistrements.
Vous pourriez relire rapidement ces leçons 27 et 28 pour bien vous remettre dans le bain.
Toujours. C'est donc comme ceci :
Tiens : vous parliez d'Excel... Vous connaissez sans doute la fonction Somme : . Ca ressemble un peu, quelque part... Le modèle d'écriture est : =NomDeLaFonction(RéférenceDesCellules)
Pas tout le temps, mais c'est une règle générale: =NomDeLaFonction(NomDuChamp). C'est évidemment très simplifié, mais n'allons pas trop loin pour cette leçon.
En fait, pour la fonction Compte, le champ qu'on indique n'est pas important, mais ce qui se passe, c'est que si un champ est vide, il ne va pas le compter. Je vais vous montrer. Lancez l'état en mode aperçu avant impression :
Oui, en haut ou en bas de l'état ?
Pas de problème... Allez dans le menu Affichage/En-tête-pied d'état pour les afficher, et copiez-collez simplement votre formule dans l'en-tête d'état : , et voilà :
C'est ce que j'étais en train de vous expliquer un peu plus haut : s'il y a un nom vide, il ne le compte pas... :
Oui, mais justement on n'en est jamais sûr ... Le titre ? Le nom ? Le prénom ? Le pays ?
C'est ça ! Ou alors, nous allons interdire le fait que le nom puisse être vide, parce qu'après tout, ce n'est pas très normal que des noms soient vides.
Le nom de famille de Loana est Petrucciani. Marche à suivre :
Et voilà : -
NON. Il n'est pas possible de faire ceci : . Si vous essayez quand même, vous aurez cette erreur :
Je n'en sais rien, c'est sans doute la conception interne d'Access qui interdit cette possibilité.
Pas rien, mais en tout cas pas de calculs sur des groupes.
Par contre, on peut y mettre le numéro de la page : c'est pourtant le même principe, quand vous allez dans le menu Insertion/Numéros de page, c'est aussi une sorte de formule (="Page " & [Page]), mais comme c'est directement lié à la page, c'est alors possible...
Oui. Le nom de l'état par exemple.
Dans l'en-tête de page, intégrez un champ ab|, et écrivez =Nom dans le champ. Supprimez l'étiquette, comme ceci : . Voilà ce que ça donne : Le nom de l'état :
Effectivement ! Page est un mot réservé, mais on n'a généralement pas besoin d'un champ qui s'appellerait Page...
Je n'ai déconseillé que les noms de champs qui sont des noms réservés qu'on aurait le plus envie d'utiliser...
AJoutons une touche artistique à nos nouveaux champs : le nom de l'état, a peu près comme ceci :
Et, surtout, le comptage des gens : avez-vous vus l'espace immense entre "Nombre de célébrités" et "100" : . Cet espace est dû qu'en mode création, ce n'est pas 100 qui est indiqué, mais =Compte([NomClient]) : . Et comme ce champ est (en plus) aligné à droite (). il en résulte cet espace excédentaire : .
Conclusion : en mode création, n'ayez pas avoir peur de réduire, réduire, réduire le champ qui contient la formule =Compte([NomClient]) jusqu'à ce qu'elle soit juste assez large pour contenir un nombre à 3 chiffres (Ici : 100), comme ceci : . Attribuez-lui un fond orange bien visible.
C'est vrai qu'on n'arrive plus à lire la formule complète (On ne voit plus que =Co), mais ça n'a aucune importance.
En mode aperçu avant impression, regardez comme tout va bien : . La zone orange est juste un tout petit peu trop large pour contenir le nombre. Finalement, pour coller "Nombre de célébrités" vraiment à 100, nous allons :
Et voilà : . Il n'y a plus qu'à retirer l'orange au profit d'un fond transparent :
Nous allons nous arrêter là pour cette leçon. Fermez votre état, et Enregistrez-leNous avons vu dans la leçon 28, sur les calculs dans les requêtes, qu'il était possible d'effectuer des calculs sur différents champs d'un même enregistrements. Cette fois, dans les états, il est possible de faire des cumuls, tel que le comptage d'enregistrements par groupe. Nous avons constaté que la fonction Compte à la particularité est de ne compter que les enregistrements non-vides. Ainsi, si nous comptions par exemple le champ Remarque, il ne donnerait que le nombre total des remarques qui ne sont pas vides. Nous avons également constaté que ces fonctions peuvent s'appliquer dans les en-têtes de groupes, mais également dans les en-têtes (et dans les pieds) d'état, en utilisant la même syntaxe. Access rajoute automatiquement des crochets autour des champs lorsque c'est nécessaire pour autant qu'ils ne contiennent pas d'espace. Nous avons enfin vu la fonction Nom qui se contente d'afficher le nom de l'état dans lequel on se trouve. |
Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses. |
L'exercice consiste à créer au sein de votre base de données habituelle un état en mode création basé sur T_Celebrite, regroupé par pays, qui ressemble le plus possible à cet extrait : Vous l'appellerez E_ComptageParPays Téléchargez la solution de l'exercice ici, qui n'est autre que Proformation.MDB telle qu'elle devrait être à la fin de cette leçon |
Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.
Avez-vous une question technique
concernant cette leçon ? Cliquez
ici !
Une remarque sur cette leçon ? Un problème
? Une erreur ? une ambiguité ? Soyez
gentil de m'en informer