Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Εκθέσεις ] Σύνολα στο Υποσέλιδο Σελίδας (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1030-sinola-sto-yposelido-selidas.html)

mdragon 23-03-11 13:38

Σύνολα στο Υποσέλιδο Σελίδας
 
Καλημέρα σε όλους,
Επανέρχομαι με ένα "κουλό" πρόβλημα.....
Έχω μια έκθεση η οποία δέχεται 15 εγγραφές ανά σελίδα maximum.
Το ζητούμενο είναι πως θέλω να παίρνω στο υποσέλιδο σελίδας τα αθροίσματα των πεδίων μου. Δίνοντάς του όμως =Sum([Πεδίο]) μου δίνει #Σφάλμα#.
Είναι δυνατόν να σου επιτρέπει σύνολα ανά έκθεση και όχι ανά σελίδα :wall:

Αν έχει κάποιος καμιά ιδέα.....




Ευχαριστώ,
Μάρω

Dimitris Ch 23-03-11 15:17

Καλησπερα
για κανε μια επισυναψη την βαση βρε Μαρω


Δημητρης

Tasos 23-03-11 18:11

Καλησπέρα σε όλους!

Αγαπητή Μαρία, αν δε βλέπουμε ένα επισυναπτόμενο παράδειγμα (όπως επισημαίνει και ο
Δημήτρης) μας είναι δύσκολο να απαντήσουμε με σαφήνεια.

Η συνάρτηση Sum([Πεδίο1]) σε μια φόρμα αθροίζει τις ΟΛΕΣ τις εγγραφές από Πεδίο1
Το ίδιο ισχύει και στις εκθέσεις που ανάλογα την προβολή το πεδίο θα εμφανίσει είτε#Σφάλμα# είτε το συνολικό άθροισμα.

Γενικά, για να εμφανίσουμε το άθροισμα ενός πεδίου σε επίπεδο σελίδας θα χρειαστούμε:

Στο υποσέλιδο σελίδας ένα πεδίο με το όνομα "PageTotals" (παραδειγματικό όνομα).

και στη λειτουργική μονάδα της Έκθεσης τον παρακάτω κώδικα:

Κώδικας:

Option Compare Database
Option Explicit

Dim PageTotal As Currency  ' Double?

Private Sub FormDetail_Print(Cancel As Integer, PrintCount As Integer)
    PageTotal = PageTotal + Nz(Me.PageTotals)
End Sub

Private Sub PageFooter_Print(Cancel As Integer, PrintCount As Integer)
    Me.PageTotals = PageTotal
    PageTotal = 0
End Sub

Αν θέλεις κάτι άλλο δώσε μας περισσότερες λεπτομέρειες.

Καλή συνέχεια!

Φιλικά
Τάσος

mdragon 23-03-11 20:19

Καλησπέρα,
συνήθως επισυννάπτω αρχεία αλλά θεώρησα ότι ήταν κατανοητό το ερωτήμά μου :oooops:
Τάσο για άλλη μια φορά με κάλυψες.
Δημήτρη το ζητούμενο είναι σε μία έκθεση να έχουμε σύνολα ανά σελίδα. Αν χρειάζεσαι ακόμα την επισύνναψη πες μου να φτιάξω ένα αρχείο και να το ανεβάσω.




Φιλικά,
Μάρω

Dimitris Ch 23-03-11 22:35

Αν σε καλυψε ο Τασος Οκ
Εμενα μου φανηκε περιεργο να μην σου βγαζει συνολα γι αυτο σου ειπα να επισυναψεις την βαση
Πιθανος γιατι γω σχεδιαζω με τον οδηγο και οχι ελευθερα
Θα ηθελα και την γνωμη του τασου σ αυτο...Υπαρχει καποια διαφορά
Ετσι οπως το κανεις φαινεται σωστο

Φιλικα Δημητρης

ΠΑΝΟΣ 24-03-11 13:07

Καλησπέρα , έχω και εγώ το ίδιο ακριβώς πρόβλημα.
Συγκεκριμένα έχω ένα πεδίο [NET] , και θέλω στο τέλος κάθε σελίδας να μου βγάζει μερικό σύνολο.
Γενικό σύνολο στο τέλος της έκθεσης βγάζει κανονικά , με το μερικό σύνολο ανά σελίδα έχω πρόβλημα. Μπορεί κάποιος να με βοηθήσει??
Ευχαριστώ:wall:

Tasos 24-03-11 14:32

Καλησπέρα σε όλους!

Πάνο καλωσόρισες στο φόρουμ!

Φίλοι μου ούτε ο οδηγός ούτε μια κενή έκθεση μπορεί να βοηθήσει στο πρόβλημα.
Το Άθροισμα εγγραφών μιας σελίδας δεν υποστηρίζεται άμεσα από καμία έκδοση Access μέχρι τώρα εκτός και αν:
  • Υπάρχουν ομαδοποιημένες εγγραφές όπου το τέλος της ομάδας συμπίπτει με το τέλος της σελίδας.
    Εδώ μπορούμε στο υποσέλιδο της σελίδας να εμφανίσουμε το άθροισμα της ομάδας που είναι και το άθροισμα της σελίδας
  • Προγραμματιστικά με χρήση VBA.
    Έστω ότι η λεπτομέρεια της Σελίδας έχει το όνομα FormDetail
    και το υποσέλιδο το όνομα FormPageFooter
Στο υποσέλιδο σελίδας δημιουργούμε ένα πεδίο με το όνομα "PageTotals" (παραδειγματικό όνομα).
και στη λειτουργική μονάδα της Έκθεσης τον παρακάτω κώδικα:

Κώδικας:

Option Compare Database
Option Explicit

Dim PageTotal As Currency  ' Double?

Private Sub FormDetail_Print(Cancel As Integer, PrintCount As Integer)
    PageTotal = PageTotal + Nz(Me.PageTotals)
End Sub

Private Sub FormPageFooter_Print(Cancel As Integer, PrintCount As Integer)
    Me.PageTotals = PageTotal
    PageTotal = 0
End Sub

Καλή συνέχεια!

Τάσος

Meteora 24-03-11 14:35

Τάσο μου,
μήμως πρέπει ο κώδικας στο υποσέλιδο_σελίδας να μπεί :

Private Sub PageFooter_Print(Cancel As Integer, PrintCount As Integer)
Me.[Text box onoma] = PageTotal
PageTotal = 0
End Sub

Και στη ρουτίνα που αφορά την ενότητα 'Λεπτομέρεια' να γραφεί :

PageTotal = PageTotal + Nz(Me.πεδίοτάδε) Για την περίπτωση του Πάνου το πεδίοτάδε είναι το ΝΕΤ

Φιλικά

Νίκος

kapetang 24-03-11 15:48

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Στη ΒΔ, που επισυνάπτω, υπάρχει μία έκθεση που εμφανίζει:
1) Στις λεπτομέρειες το τρέχον άθροισμα του πεδίου «Poso».
2) Στο υποσέλιδο σελίδας:
2α) Το άθροισμα του πεδίου «Poso» για τις εγγραφές κάθε σελίδας και
2β) Το άθροισμα του πεδίου «Poso» για όλες τις προηγούμενες εγγραφές μέχρι την τελευταία της τρέχουσας σελίδας.
Η περίπτωση 2α παρουσιάζεται μόνο στην εκτύπωση και σε προεπισκόπηση εκτύπωσης.
Για την υλοποίηση χρησιμοποίησα, τον κώδικα του Τάσου και τη διόρθωση που πρότεινε ο Νίκος.
Κώδικας:

Option Compare Database
Option Explicit

Dim PageTotal As Currency  ' Double?

Private Sub FormDetail_Print(Cancel As Integer, PrintCount As Integer)
    PageTotal = PageTotal + Nz(Me.[Poso])
End Sub

Private Sub FormPageFooter_Print(Cancel As Integer, PrintCount As Integer)
    Me.PageTotals = PageTotal
    PageTotal = 0
End Sub

Για την υλοποίηση των περιπτώσεων 1 και 2β:
Στις λεπτομέρειες πρόσθεσα το αδέσμευτο πλαίσιο κειμένου «txtPoso» και όρισα τις ιδιότητες, προέλευση στοιχείου ελέγχου:=[Poso] και τρέχον άθροισμα: Για την ομάδα.
Στο υποσέλιδο πρόσθεσα το αδέσμευτο πλαίσιο κειμένου «FooterTotalFromStatr» και όρισα την ιδιότητα, προέλευση στοιχείου ελέγχου:=[txtPoso]

Φιλικά/Γιώργος

Tasos 24-03-11 16:09

Καλησπέρα Γιώργο και Νίκο!

Νίκο, σ ευχαριστώ για τη διόρθωση!

Τα κατάφερα πάλι να τα ανεβάσω ανάποδα :biggrin:

Θα έπρεπε να είμαι πιο προσεκτικός με τις επικολλήσεις μου...

Μάλλον χρειάζομαι διακοπές:what:

Τα λέμε

Τάσος


Η ώρα είναι 11:13.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2