Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Montant total des commandes clients
Cette nouvelle
astuce Access montre comment consolider les données d'un
sous formulaire pour livrer le résultat de synthèse sur le
formulaire.
Dans l'exemple illustré par la capture, toutes les commandes passées par un client sont énumérées dans un
sous-formulaire en mode feuille de données. C'est une
somme particulière, émettant une condition bien précise, qui consolide ces informations pour livrer le
total du client juste au-dessus, plus précisément sur le
formulaire.
Base de données source
Pour la mise en place de cette démonstration, nous proposons de récupérer une
base de données réalisant déjà le lien entre chaque client et ses commandes par le biais d'un
formulaire et d'un
sous-formulaire.
- Télécharger le fichier consolider-montants.rar en cliquant sur ce lien,
- Le décompresser dans le dossier de votre choix,
- Double cliquer sur le fichier résultant pour l'ouvrir dans Access,
- Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
- Dans le volet de navigation, double cliquer sur le formulaire f_Clients pour l'exécuter,
Nous débouchons sur un formulaire présentant le premier client. Les commandes qu'il a passées sont effectivement listées dans le
sous-formulaire. La
barre de navigation personnalisée permet de faire défiler ces clients. Et à chaque fois, le
sous formulaire s'actualise pour livrer toutes les commandes attachées. Tous n'ont pas encore passé de commande. Si vous atteignez le quatrième client, vous remarquez qu'il a déjà effectué trois commandes. Le montant consolidé doit être affiché au-dessus du
sous formulaire, dans la zone de texte annoncée par l'
étiquette Total du client. Bien sûr et à ce stade, elle est encore vide.
Les informations de ces clients émanent de la
table Clients. Celles des commandes attachées sont archivées dans la
table Commandes. Ces deux tables sont reliées entre elles par la
clé primaire Client_id et la
clé externe Com_client. C'est grâce à cette liaison que ces informations sont réunies sur le
formulaire et le
sous-formulaire.
Consolider les commandes des clients
C'est la
fonction Access SomDom qui permet de réaliser des sommes sur des critères. Son objectif ici est d'additionner tous les montants des commandes pour un même client. Ces montants sont archivés dans le
champ Com_montant de la
table Commandes. Cette somme ne doit être réalisée que lorsque la valeur de la
clé externe Com_client correspond bien à l'identifiant de la
clé primaire Client_id, pour le client en cours de consultation depuis le
formulaire. La
fonction SomDom opère comme les
fonctions CpteDom et
RechDom. C'est l'opération qui diffère. En premier argument, nous devons lui indiquer le champ à partir duquel l'addition doit être faite. En deuxième argument, nous devons préciser le nom de la table hébergeant ce champ. En troisième et dernier paramètre, nous devons émettre la
clause Where, soit le
critère. Ce
critère doit faire le lien entre les deux clés pour que la consolidation concerne bien le client en cours.
- A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste, choisir le mode Création,
- Sur le formulaire en conception, cliquer sur la zone du total client,
C'est bien elle qui doit accueillir le calcul de synthèse.
- Activer l'onglet Données de sa feuille de propriétés,
- Cliquer dans la zone vide de sa propriété Source contrôle pour l'activer,
- Taper le symbole égal (=) pour initier la syntaxe de la formule,
- Inscrire la fonction de consolidation suivie d'une parenthèse, soit : =SomDom(,
- Désigner le champ Com_montant entre crochets et entre guillemets, soit : "[com_montant]",
- Taper un point-virgule (;) pour passer dans l'argument de la table qui l'héberge,
- Désigner la table Commandes entre guillemets, soit : "Commandes",
- Taper un point-virgule (;) pour passer dans la clause Where, soit le critère à construire,
- Désigner le champ Com_client suivi du symbole égal entre guillemets, soit : "[Com_client]="
Le début du critère est donc entre guillemets. Il fait référence à la
clé externe Com_client de la
table Commandes. Elle doit vérifier l'égalité avec le client en cours de consultation depuis le
formulaire. Cette égalité doit donc s'opérer avec la
clé primaire du
champ Client_id sur le
formulaire.
- Ajouter un espace suivi d'un Et commercial suivi d'un autre espace : & ,
- Puis, inscrire le champ de la clé primaire entre crochets, soit : [Client_id],
Cette fois, le champ ne doit pas être mentionné entre guillemets puisqu'il appartient au
formulaire. C'est ainsi que l'on consolide toutes les commandes issues d'un
sous-formulaire pour un même client avec une seule fonction.
- Fermer la parenthèse de la fonction SomDom,
- Puis, valider la syntaxe à l'aide de la touche Entrée du clavier,
- Enregistrer le formulaire (CTRL + S) puis l'exécuter (F5),
En faisant défiler les clients, vous constatez que les montants des commandes sont parfaitement consolidés.
Et si vous ajoutez une nouvelle entrée dans la
table Commandes, bien sûr rattachée à un client par le numéro du
champ Com_client, vous constatez qu'elle est directement intégrée dans le calcul de la
fonction SomDom.