Bonjour,
J'ai un état ou j'ai une zone de détail puis des calculs dans les pieds de groupes et enfin j'aimerais bien afficher les résultats de ces groupes dans un petit tableau en pied de page. Si quelqu'un à une solutions se serait top
Bonjour,
J'ai un état ou j'ai une zone de détail puis des calculs dans les pieds de groupes et enfin j'aimerais bien afficher les résultats de ces groupes dans un petit tableau en pied de page. Si quelqu'un à une solutions se serait top
Le pb n'est pas si simple car Access ne permet pas de faire des sum ou count... dans le pied de page, cette zone n'étant pas représentative d'un groupe de données.
Ton seul recours il me semble, si tu veux faire une somme par exemple, est de coder cette somme en VBA.
Tu déclares une variable de niveau module et tu lui additionne le montant à chaque Print de la ligne détail (attention au FormatCount)
et quand tu arrives au pied ... tu affiches le résultat et tu remets ta variable à 0.
Bonjour,
Tout d'abord merci de ta réponse.
Le problème est que malgré tes explications je ne vois pas trop comment faire. (le code n'est pas spécialement ma tasse de thé). N'existe t'il pas un moyen dans access pour définir une zone en tant que pied de page (une zone calculé en pied de groupe par exemple) ou tout autre méthode ?
Je crains que la réponse cela soit VBA ou rien!
En fait mon but n'est pas forcement que le calcul se trouve dans la zone du pied de page mais toujours au meme endroit sur toutes les pages ou le calcul apparrait. J'ai essayer aussi de faire les calculs a un autre emplacement et ensuite d'afficher simplement le resultat de ces calculs dans la zone du pied de page, mais le résultat afficher n'est pas toujours bon (dépendant du nombre de sous totaux). Ai je oublié quelque chose ? Si, il n'y a pas d'astuce autre que le vba, quelqu'un pourrait me donner un petit exemple ou m'aider ?
Bonsoir,
Si je ne me trompe pas tu veux faire un récapitulatif en pied de page de tes cumuls par groupe :Par contre ici ce n'est plus le cas :Envoyé par yoda25
Envoyé par yoda25Je pense que se serait plutôt à toi de nous donner un exemple de ce que tu souhaites.Envoyé par yoda25
Ceci dit je peux te proposer un code VBA assez simple à mettre en oeuvre.
Je te propose comme exemple une édition de factures fournisseurs avec un cumul par fournisseur des acomptes versés ainsi qu'un cumul du hors taxe.
Je souhaite faire un récapitulatif à chaque page des cumuls payés aux fournisseurs. Comme je suis limité par la place (un pied de page n'est pas extensible), j'imprime les 5 premiers fournisseurs avec leurs noms, sur le 6ème je cumule tous les autres.
Dans le pied de page j'ai 18 controles indépendants qui représentent mon 'Tableau' :
Nom du fournisseur : Fourniss1 à Fourniss6
Acomptes : CumAcompte1 à CumAcompte6
Total HT : CumTotal1 à CumTotal6
Déclaration au niveau de l'état d'un compteur pied de groupe
Initialisation du 'tableau' à chaque nouvelle page
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Option Compare Database Option Explicit ' Compteur pied de groupe Dim intGroup As Integer
Alimentation des postes du 'tableau'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer) Dim I As Integer ' Initialisation des cumuls du pied de page et compteur de groupe à chaque nouvelle page intGroup = 0 ' Mise à jour des champs du tableau récapitulatif For I = 1 To 6 Me.Controls.Item("Fourniss" & I) = 0 ' Nom Fournisseur Me.Controls.Item("CumAcompte" & I) = 0 ' Acomptes versés Me.Controls.Item("CumTotal" & I) = 0 ' Total hors taxe Next I End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Private Sub PiedGroupe1_Format(Cancel As Integer, FormatCount As Integer) ' Une section pied de page n'étant pas extensible, on devra définir une ' taille maximale au tableau récapitulatif. ' Les nom des champs du tableau du pied de page devront se terminer ' par un chiffre de 1 à n (dans cet exemple n vaut 6) ' Incrémentation compteur de groupe à chaque édition d'un groupe intGroup = intGroup + 1 If intGroup < 6 Then ' On remplit le tableau avec les champs cumul du pied de groupe. ' le champ [FournAcompteHt] est le cumul du champ détail [AcompteHt] ' le champ [FournTotalHt] est le cumul du champ détail [TotalHt] Me.Controls.Item("CumAcompte" & intGroup).Value = Me.[FournAcompteHt] Me.Controls.Item("CumTotal" & intGroup).Value = Me.[FournTotalHt] ' On récupère le nom du fournisseur Me.Controls.Item("Fourniss" & intGroup).Value = Me.[Fournisseur] Else ' Le récapitulatif étant limité à 6 on cumule donc tous ceux ' dépassant 5 sur le 6ème et dernier poste Me.Fourniss6 = "Autres ..." Me.CumAcompte6 = Me.CumAcompte6 + Me.FournAcompteHt Me.CumTotal6 = Me.CumTotal6 + Me.FournTotalHt End If End Sub
Bonjour,
Merci pour vos réponse, je vais regarder d'avantage le code que tu m'a mis en exemple. C'est vrai que je n'ai peu etre pas été tres clair, ce donc j'ai besoin c'est d'afficher des calculs que j'ai effectué a divers emplacement dans l'état.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager