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/1131-filtro-se-ekthesi.html)

Χρήστος 11-05-11 21:09

Φίλτρο σε Έκθεση
 
Καλησπέρα,
Θέλω να ρωτήσω το εξής: Μια έκθεσή μου τροφοδοτείται από ένα ερώτημα και μου εμφανίζει μια σειρά από εγγραφές.

Ας υποθέσουμε οτι στο ερώτημα βλέπουμε τις παρακάτω 3 εγγραφές (Πεδία: Α, Β, Γ, Δ):
1) Α: Χρήστος Β: 2 Γ: 5 Δ: 7
1) Α: Χρήστος Β: 8 Γ: 8 Δ: 8
3) Α: Νίκος Β: 3 Γ: 7 Δ: 10
4) Α: Νίκος Β: 6 Γ: 9 Δ: 15
(Δ=Β+Γ)

Στην έκθεση, με ομαδοποίηση:
Κεφαλίδα: Α
Άθροισμα([Β]), Άθροισμα([Γ]), Άθροισμα([Δ])

βλέπω κατί σαν και τα παρακάτω:
1) Χρήστος, 10, 13, 15
2) Νίκος, 9, 16, 25

Σ' ένα κουμπί θέλω να περάσω μια έκφραση που να ανοίγει την συγκεκριμένη έκθεση (rptA) και να εμφανίζει τις εγγραφές εκείνες όπου Άθροισμα([Β])>=5

Μπορείτε να με βοηθείστε;

Χρήστος 11-05-11 21:21

Αλήθεια, η παραπάνω έκφραση κοιτάει το ερώτημα ή την Έκθεση; Μάλλον το ερώτημα, ε;

Tasos 11-05-11 21:35

Καλησπέρα Χρήστο!

....Στην έκφραση υπάρχει μη ορισμένη συνάρτηση Άθροισμα.

Η VBA αλλά και η Access δεν αναγνωρίζει τη συνάρτηση Άθροισμα γιατί απλά δεν υπάρχει
τέτοια συνάρτηση είτε σαν ενσωματωμένη είτε ορισμένη από τον προγραμματιστή.

Η ενσωματωμένη συνάρτηση είναι η SUM() και αυτή θα πρέπει να χρησιμοποιήσεις.

Η "Άθροισμα" είναι μόνο η μεταγλώττιση της Sum() που εμφανίζεται στην προβολή επεξεργασίας των αντικειμένων της Access με ελληνική γλώσσα για να είναι πιο φιλική στους Ελληνόφωνους χρήστες.

Δοκίμασε και τα ξαναλέμε.

Φιλικά

Τάσος

Χρήστος 11-05-11 21:43

Σφάλμα: Δεν είναι δυνατόν να υπάρχει συνάρτηση συγκεντρωτικών αποτελεσμάτων στον όρο WHERE

Χρήστος 11-05-11 21:47

Το ερώτημά μου δεν είναι συγκεντρωτικό. Μπορεί η έκφραση να δει και να φιλτράρει τις εγγραφές όπως αυτές εμφανίζονται στην Έκθεση δίχως να κοιτάξει το ερώτημα;

Meteora 12-05-11 16:19

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

Χρήστο,
Η έκθεσή σου εφόσον διαβάζει ερώτημα, οφείλει να εμφανίσει όλες τις εγγραφές του ερωτήματος. Όμως σε μια εντολή π.χ. Docmd.openReport μπορούμε να φιλτράρουμε αυτές τις εγγραφές μέσω του Where...
Θα έχεις λύση με ένα συγκεντρωτικό ερώτημα στο οποίο να τοποθετήσεις ένα κριτήριο εκεί στο άθροισμα που σε ενδιαφέρει, έτσι ώστε η έκθεσή σου -που θα διαβάζει δεδομένα από αυτό το ερώτημα- να μη παρουσιάζει κανένα πρόβλημα.
Εφόσον δεν έχεις λύση στο ζήτημά σου, φτιάξε ένα πίνακα που να εμφανίζει 2-3 εγγραφές ίδιες με αυτές που έχεις στο ερώτημα. 'Τράβηξε' την έκθεσή σου μέσα σε αυτό το δείγμα της εφαρμογής. ...συμπίεση το δείγμα και ανέβασε ένα *. Zip.

Με εκτίμηση

Νίκος Δ.

Χρήστος 12-05-11 17:44

Νίκο, δεν καταφέρνω να κάνω το ερώτημά μου συγκεντρωτικό, έχει πάρα πολλά πεδία, πολλά υπολογιζόμενα!

kapetang 12-05-11 17:44

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

Η ΒΔ που επισυνάπτω αποτελεί προσομοίωση του ζητούμενου από το Χρήστο, αν το κατάλαβα σωστά.
Αποτελείται:
1) Από τον πίνακα «test» με πεδία fA, fB, fC και fD.
2) Την έκθεση «qryTest» στην οποία γίνεται ομαδοποίηση με βάση το πεδίο fA.
Στην έκθεση εμφανίζονται μόνο οι εγγραφές που το άθροισμα των τιμών του πεδίου fB για κάθε ομάδα δεν είναι μικρότερο του 5.
Για να επιτευχθεί αυτό, αφού σχεδίασα την έκθεση με βάση τον πίνακα test, στη συνέχεια άλλαξα την προέλευση εγγραφών στο παρακάτω ερώτημα:
Κώδικας:

SELECT tblTest.*
FROM tblTest
WHERE (((tblTest.fA) In (SELECT tblTest.fA FROM tblTest GROUP BY tblTest.fA HAVING (((Sum(tblTest.fB))>=5)))));

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

ΥΓ Φίλε Νίκο δε μελέτησα ακόμα τη λύση που πρότεινες

Χρήστος 12-05-11 22:01

Δείγμα
 
Γεια σας και πάλι ....
Επιστρέφω με ένα δείγμα της βάσης μου μήπως και μπορέσετε και με βοηθήστε γιατί εγώ σηκώνω τα χέρια ψηλά!! :)

Dimitris Ch 12-05-11 23:02

1 Συνημμένο(α)
Αυτό που χρειάζεσαι είναι ένα νέο ερώτημα που βασίζεται στο συγκεντρωτικό που ήδη έχεις
Εκει μπορεις να βάλεις το κριτήριο που θέλεις.
Πιστεύω να είναι αυτό που θέλεις
Δες στο παράδειγμα το NewQry

Χρήστος 12-05-11 23:23

Σ' ευχαριστώ που ασχολήθηκες αλλά δεν είναι ακριβώς αυτό που ζητώ. ΔΕΝ θέλω η έκθεση να μου δίνει ΜΟΝΟ τις δικαιολογημένες και τα Κ, Υ, Δ ΑΛΛΑ και το ΣΥΝΟΛΟ!! Άλλωστε το κριτήριο θα μπορούσε να μπει κατευθείαν στο συγκεντρωτικό, ΔΕΝ χρειάζονταν το νέο ερώτημα. Έτσι δεν είναι;
Στις οδηγίες είμαι αναλυτικός. Θα το ψάξουμε, θα βρεθεί η λύση! :)

Dimitris Ch 12-05-11 23:56

Παράθεση:

Αρχική Δημοσίευση από Χρήστος (Μήνυμα 6449)
Σ' ευχαριστώ που ασχολήθηκες αλλά δεν είναι ακριβώς αυτό που ζητώ. ΔΕΝ θέλω η έκθεση να μου δίνει ΜΟΝΟ τις δικαιολογημένες και τα Κ, Υ, Δ ΑΛΛΑ και το ΣΥΝΟΛΟ!! Άλλωστε το κριτήριο θα μπορούσε να μπει κατευθείαν στο συγκεντρωτικό, ΔΕΝ χρειάζονταν το νέο ερώτημα. Έτσι δεν είναι;
Στις οδηγίες είμαι αναλυτικός. Θα το ψάξουμε, θα βρεθεί η λύση! :)

Στο συγκεντρωτικό δεν μπορεί να μπει κριτήριο που αφορά Άθροισμα
Στις σημειώσεις που επισύναψες ζητάς να φαίνεται μόνο η 3η εγγραφή αν κατάλαβα που έχει άθροισμα >=5
Αν στο ερώτημά σου χρησιμόποιησης το νέο ερώτημα ως φίλτρο θα εμφανίζει μόνο την 3η γραμμή. Αυτό δηλαδή που επισημάινεις στο pdf.

Dimitris Ch 13-05-11 00:41

1 Συνημμένο(α)
Αυτό που σου έγραψα πριν είναι πως θα φιλτράρεις τον μαθητή που θέλεις
Από εκεί και πέρα με αυτό το φίλτρο ρυθμίζεις το κυρίως ερώτημα
Με αυτα που κατάλαβα σου έφτιαξα ένα παράδειγμα
Δες τα αποτελεσματα των εκθέσεων αν είναι αυτό που θέλεις

Χρήστος 13-05-11 12:09

Θα το δω πιο προσεκτικά και τα ξαναλέμε Δημήτρη.
Σ' ευχαριστώ. :)

Χρήστος 13-05-11 12:49

Σε πρώτη φάση δουλεύει Δημήτρη. Πρώτη φορά συναντώ τέτοια λύση. Θα την επεξεργαστώ. Είδα οτι συσχετίζεις 2 ερωτήματα. Έχεις την καλοσύνη να μου πεις με ποιά σειρά εξελίσσονται τα γεγονότα απ' την στιγμή που πατώ το κουμπί στην Έκθεση;

Χρήστος 13-05-11 14:14

Προσπάθησε σε παρακαλώ να προσαρμόσεις την απάντησή σου και πάλι στο κουμπί που υποδεικνύω αλλά ΜΗΝ ξεχάσεις οτι με το κλικ του κουμπιού οι εγγραφές φιλτράρονται ανά τμήμα( πεδίο SECTIONID) και Τρίμηνο(πεδίο ΤΡΙΜΗΝΟ). ΔΕΣ στο συμβάν με το κλικ του κουμπιού την έκφραση που χρησιμοποιώ. Το προσπαθώ και εγώ αλλά φαίνεται οτι δεν λειτουργεί το φίλτρο οπότε τους εμφανίζει όλους αναξάρτητα από τρίμηνο και τμήμα.

Dimitris Ch 13-05-11 14:59

To μόνο που χρειάζεται αλλαγή στην έκθεσή σου είναι το ερώτημα που φορτώνει
Θα φτιαξεις τα 2 νέα ερωτήματα (μπορείς να τα κάνεις αντιγραφή από το παράδειγμα) και στην έκθεση θα αντικαταστήσεις το ερώτημα με το νέο (δες το παράδειγμα)
Εχει τις ίδιες στήλες και ονοματολογία με το δικό σου μόνο που φιλτράρεται
Η τεχνική έχει ως εξής και δεν έχει να κάνει με την έκθεση
Κατ' αρχήν δημιουργώ ένα ερώτημα φίλτρο (NewQry). Η μόνη στήλη που χρειάζεται είναι το ID του πεδίου που φιλτράρω (ID Μαθητή στην περίπτωσή μας)
Δεύετρον φτιάχνω ένα ερώτημα ίδιο με το βασικό μόνο που φορτώνω και το ερώτημα φίλτρο και το συνδέω με το ID του μαθητή. Έτσι το νέο ερώτημα από τις συνολικές εγγραφές φέρνει μόνο αυτές που περιλαβάνονται και στο ερώτημα φίλτρο εφόσον συσχετίζονται. Έτσι αν το ερώτημα φίλτρο έχει έναν μαθητή και το κυρίως ερώτημα έχει έναν μαθητή. Η έκθεση δεν χρειάζεται να φιλτράρει κάτι.
Αν και μέσα την έκθεση δεν πρέπει να εμφανίζεις τα αποτελέσματα με τον τρόπο που χρησιμοποιείς.
Πιθανώς σε καθυστερεί κίολας. Αν θέλεις συγκεντρωτικά αποτελέσματα αυτό το ρυθμίζεις στο QRY ή εμφανίζεις αναλυτικά στον τομέας λεπτομέρειες και συγκεντρωτικά στα υποσέλιδο της ομάδας.
Ελπίζω να βοήθησα.
Τα 2 ερωτήματα και την έκθεση μπορείς να τα κάνεις εισαγωγή από το παράδειγμα. Δεν πείραξα κάτι
Ελπίζω να βοήθησα

Χρήστος 13-05-11 19:29

Κάτι δεν πάει καλά!
 
Έχω διαπιστώσει οτι το NewQry εντοπίζει αυτούς για τους οποίους ΔΙΚΑΙΟΛΟΓΗΜΕΝΕΣ>=5 ΚΑΙ για τα 3 τρίμηνα! Και επίσης τοNewqryApousies εμφανίζει διπλοεγγραφές. Τελικά βρήκα λύση βάζοντας στα δυο νέα ερωτήματα ως κριτήριο το επιθυμητό τρίμηνο και όλα είναι μια χαρά. Είσαι ηθικός αυτουργός για τη λύση του προβλήματος. Ευχαριστώ :)

Dimitris Ch 13-05-11 23:19

1 Συνημμένο(α)
Λοιπόν είναι αρκετή περίπλοκη η λογική που χρησιμοποιείς για να καταλάβουμε πως ακριβώς είναι δομημένη η βάση σου. Παρ' όλα αυτά ενσωμάτωσα και το τρίμηνο στην τεχνική που σου έδειξα και νομίζω ότι δουλεύει οκ. Απλά μας μπέρδεψες με το αρχικό σου παράδειγμα που δεν γνωρίζαμε αν το σύνολο των 5 απουσιών αφορά όλα τα δεδομένα οι κάποια από αυτά (τρίμηνο στην περίπτωση σου).
Αυτό που έκανες εσύ είναι μεν σωστό άλλα ειναι η απλή λύση βάζοντας καρφωτά ένα κριτήριο. Τι θα γίνει όμως αν θέλεις στην έκθεσή σου να αλλάξεις το τρίμηνο στο φίλτρο..?....Θα πρέπει να το αλλάξεις και στο ερώτημα.
Μελέτησε το παράδειγμα που σου στέλνω που λειτουργεί για όποιο τρίμηνο δηλώσεις στο φίλτρο της έκθεσης σου

Χρήστος 13-05-11 23:42

Με χαρά μου θα το μελετήσω αύριο πρωι πρωι

Χρήστος 16-05-11 00:59

Δημήτρη, έχω μια ερώτηση.
Αν θέλω στο κουμπί που θα ανοίξει την έκθεση να έχω φίλτρο πέρα του τριμήνου και το αν είναι ενεργός(έχω σχετικό πεδίο με όνομα ΕΝΕΡΓΟΣ τύπου ΝΑΙ/ΟΧΙ) θα πρέπει να κάνω σύνδεση και αυτού του πεδίου όπως έκανες με το πεδίο ΤΡΙΜΗΝΟ; (αναφέρομαι στο νέο ερώτημα όπου συνδύασες τα 2 ερωτήματα).

Ποιά είναι η λογική με την οποία έγινε η σύνδεση των δυο πεδίων (ΤΡΙΜΗΝΟ);

Dimitris Ch 16-05-11 07:55

Καλημέρα
Οχι καμία σχέση. Θα μπει κατ' ευθείαν στην έκθεση
Αυτό που κάναμε έγινε γιατί θέλαμε να φιλτράρουμε το άθροισμα ενός πεδίου (απουσίες) και μάλιστα στο τρίμηνο. Οτιδήποτε άλλο φίλτρο μπαίνει στην έκθεση


Η ώρα είναι 15:26.

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


Search Engine Optimization by vBSEO 3.3.2