| ||||||||
Nouvelle astucienne | Bonjour, Je tente de développer un petit "logiciel de gestion" afin de réaliser la facturation d'une auto-entreprise. Je n'arrive pas à calculer le total d'une commande, d'un devis ou d'une facture. En recherchant des tuto ou sur livres de formations, voilà ce que je fais : Le formulaire montre maintenant les informations du formulaire ainsi que les items facturés. Mais il ne montre pas le total de la facture. Il faut ajouter un champ calculé pour le voir. La prochaine partie consiste à ajouter un champ calculé pour voir le total.
Le sous formulaire apparaît. Il faut ajouter un champ calculé dans l'en-tête ou le pied du formulaire. Pour cet exemple, il sera ajouté dans le pied de formulaire. Pour agrandir le pied de formulaire.
Le pointeur devrait changer de forme.
La zone du pied de formulaire va s'agrandir. Il faut qu'il soit assez grand pour ajouter un champ calculé.
Un champ vide va apparaître dans le pied de formulaire. Il faut maintenant ajouter la formule pour calculer le total et lui donner un nom significatif.
Vous pourrez ensuite écrire la formule requise.
Comme dans Excel, les formules des champs calculés que l'on retrouve dans des formulaires ou des états commencent toujours avec le signe "=". Cette formule va additionner les valeurs de tous les enregistrements stotal. Il faut maintenant donner un nom significatif à ce nouveau champ calculé.
Puisque ce champ a été placé soit dans dans l'en-tête ou le puied du formulaire, il va maintenant faire la somme de tous les enregistrements de la table ou de la requête. Si ce même champ aurait été placé dans la zone détail, il aurait fait la somme que d'un seul enregistrement. C'est pour cette raison qu'il était important de placer ce champ dans l'en-tête ou le pied du formulaire. Ces zones permettent d'accomplir des opérations sur tous les enregistrements au lieu d'un seul.
Ajouter le calcul du sous-formulaire dans le formulaire principal
Dans l'exercice précédent, nous avons ajouté un champ appelé TotalIems qui fait le total de tous les enregistrements s'appelle TotalItems. Il suffit maintenant de l'ajouter au formulaire Facture pour voir le total.
Nous sommes maintenant de retour au formulaire Facture. Il faut ajouter une référence au champ TotalItems dans ce formulaire pour voir le total des items de cette facture.
Cela va activer le générateur d'expression. Il faut spécifier à Access l'endroit où se trouve le champ TotalItems. Ce champ se retrouve dans le sous-formulaire RFactures-Items.
Le bouton OK choisi le champ. La touche Entrée confirme la formule. La case sera vide si vous ne faites pas ces deux opérations. Le total de la facture devrait apparaître la prochaine fois que vous afficherez le formulaire.
Le total est bien là. Mais va-t-il se mettre à jour si on change une valeur?
Le total du formulaire se met à jour lorsque vous changez d'enregistrement. Malheureusement, cela ne fonctionne pas, j'ai un message "#erreur" quand je reviens en mode affichage.
Quelqu'un pourrait m'aider SVP.
| |||||||
Publicité | ||||||||
| ||||||||
Petit astucien | Bonjour, L'explication m'a l'air correcte, dans Access le message #Erreur" se produit quand on veut faire la somme de champs dont un ou plusieurs champ(s) sont Null (vide) ou quand il n'existe pas encore d'enregistrement (donc pas de champ à additionner) N'est-ce pas le cas pour vous. | |||||||
Nouvelle astucienne | Merci pour ces informations. Pourtant, aucun champs n'est vide et le message "#erreur" n'est que dans le champs total dans le formuaire, le champs total dans le pied du sous-formulaire est vide... | |||||||
Petit astucien | Bonjour, Ceci explique cela c'est sans doute à cause du champ vide du sous formulaire que vous avez #Erreur dans l'autre. Qu'y-a-t'il comme formule dans le champ (vide) du sous formulaire? Si on imagine que les champs du sous formulaire à additionner ont comme nom Montant_HT, dans le champ du pied de sousformulaire vous devez avoir la formule =SOMME([Montant_HT]) Et si aucun champ Montant_HT du sous formulaire n'est Null le total doit apparaître dans le pied du sous formulaire. Modifié par rj390111 le 26/05/2011 05:54 | |||||||
Nouvelle astucienne | Bonsoir, dsl d'avoir été si longue.. je veux additionner les champs "TOTALLI" correspondant au total des lignes, donc ma formule dans le champ (vide) du pied du sous-formulaire est =SOMME([TOTALLI]) Dans ma version test, le calcul du total des lignes s'effectue correctement et aucune ligne n'est vide. Malgré cela, le total ne s'affiche pas... Les champs ont le même format (monétaire, euros, décimal). Ce dysfonctionnement peut être du a autre chose qu'un champ vide ? Bonne soirée. Lydia | |||||||
Petit astucien | Bonjour, Je soupconne que le champ TotalI est un champ indépendant qui contient comme source =[NomChamp1]+[NomChamp2]+... et il vous affiche bien le résultat de la ligne. Indépendant veut dire qui ne fait pas partie de la table, mais qui est ajouté dans le formulaire pour afficher un calcul dans votre cas. Seulement dans ce cas effectivement un champ dans le pied de formulaire qui reprend comme source =SOMME([TotalI]) affiche #Erreur Ce qu'il faut faire c'est inclure le champ TotalI dans la requête qui est la source du formulaire en tant que champ calculé. Pour ce faire vous ajoutez dans une nouvelle colonne de la requête TotalI : [NomChamp1]+[NomChamp2]+... A ce moment dans le pied du formulaire le champ qui a comme source =SOMME([TotalI]) affichera bien le résultat. Si votre formulaire n'est pas alimenté par une requête mais directement par la table vous devez céer un requête à partir de la table pour pouvoir créer le champ calculé. J'espère avoir été clair. | |||||||
Nouvelle astucienne | Je sais comment faire une requête pour effectuer des calculs. Mais je vous avouerai que j'ai un peu de mal à voir comment utiliser cette requête pour un champs du formulaire... | |||||||
Petit astucien | Re, Votre formulaire est-il basé sur une table ou sur une requête elle même basée sur la table?
| |||||||
Petit astucien | Bonjour, Un exemple simple http://www.cijoint.fr/cjlink.php?file=cj201105/cijbEPi4Kz.zip Si besoin je peux encore fournir des explications mais pas avant demain. N'hésitez pas.
| |||||||
Nouvelle astucienne | mon formulaire est basé sur 4 tables : - la table client (RS...) - la table facture (N° de facture, date, total facture...) - la table article (Ref article, PU...) - la table ligen facture qui fait la relation entre la table facture et la table article (Ref article, N° de facture), j'ai ajouté les champs quantité et total ligne dans cette table
Je regarde ce soir votre lien...
Encore merci pour votre aide et vos explications...
PS : je peux vous transmettre le schéma des relation entre ces tables faisant apparaitre les champs de chacune des tables si vous le souhaitez... | |||||||
Nouvel astucien | Bonjour Si votre probleme n'est pas résolu, il faut employé la fonction Nz dans la formule de calcul. Cette fonction transforme un champ vide en zéro. Access calcule avec les zéros. | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|