Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Φίλτρο σε ερώτημα διασταύρωσης
Καλημέρα και καλή "σεζόν" σε όλους. Επιστρέφω με ένα ερώτημα: Εάν μπορώ από τον βασικό μου πίνακα "ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ" να φτιάξω ένα ερώτημα διασταύρωσης -με "γραμμή" στοιχεία από [ΚΑΤΗΓΟΡΙΑ] και "στήλη" από [ΔΙΕΥΘΥΝΣΗ] (βλ. "ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ διασταύρωσης")- έτσι ώστε να μου δείνει την δυνατότητα να φιλτράρω τις πληροφορίες με βάση μια χρονική περίοδο από το [ΗΜΕΡΟΜΗΝΙΑ] π.χ. στοιχεία από 1/1/2010 έως 31/1/2010. Ευχαριστώ πολύ Πάνος |
#2
| ||||
| ||||
Πάνο καλημέρα! Ο κώδικας SQL που θα σου επιτρέψει να φιλτράρεις τα δεδομένα σου σε ερώτημα διασταύρωσης (με κριτήριο το διάστημα 2 ημερομηνιών) μπορούσε να είναι έτσι: Κώδικας: PARAMETERS [Δώσε ημερομηνία από] DateTime, [Δώσε ημερομηνία μέχρι] DateTime; TRANSFORM Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS ΠλήθοςΤουΜΗΤΡΩΟ SELECT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS [Σύνολο από ΜΗΤΡΩΟ] FROM [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ] WHERE ((([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΗΜΕΡΟΜΗΝΙΑ) Between [Δώσε ημερομηνία από] And [Δώσε ημερομηνία μέχρι])) GROUP BY [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ PIVOT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ; Κώδικας: PARAMETERS [Δώσε μήνα] Value, [Δώσε έτος] Value; TRANSFORM Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS ΠλήθοςΤουΜΗΤΡΩΟ SELECT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS [Σύνολο από ΜΗΤΡΩΟ] FROM [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ] WHERE (((Month([ΗΜΕΡΟΜΗΝΙΑ]))=[Δώσε μήνα]) AND ((Year([ΗΜΕΡΟΜΗΝΙΑ]))=[Δώσε έτος])) GROUP BY [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ PIVOT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ; και δοκίμασε. Καλή συνέχεια Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#3
| |||
| |||
Τάσο, Σ' ευχαριστώ για άλλη μία φορά. Τα λέμε Πάνος |
#4
| |||
| |||
Καλησπέρα στην παρέα Τάσο είδα τη λύση, με το παραμετρικό ερώτημα, που έδωσες στην ερώτηση του Πάνου και σκέφτηκα αν θα μπορούσαμε να ανοίγουμε το ερώτημα διασταύρωσης πατώντας το κουμπί μιας φόρμας (frmOpenQry), στην οποία δύο πλαίσια κειμένου (txtStart, txtEnd) θα προσδιόριζαν το χρονικό διάστημα που μας ενδιαφέρει. Στις δοκιμές που έκανα το κριτήριο: [ΗΜΕΡΟΜΗΝΙΑ] between [Forms]![frmOpenQry]![txtStart] and [Forms]![frmOpenQry]![txtEnd], δε λειτουργούσε (έβγαζε λάθος) . Υπάρχει λύση; Φιλικά/Γιώργος |
#5
| ||||
| ||||
Καλημέρα σε όλους! Γιώργο, ένα κοινό ερώτημα επιλογής, μπορεί να επεξεργαστεί κριτήρια όπως [Forms]![frmOpenQry]![txtStart] και δε χρειάζεται παραμέτρους όπως: PARAMETERS [Δώσε ημερομηνία από] DateTime, [Δώσε ημερομηνία μέχρι] DateTime; Αντιθέτως, ένα ερώτημα διασταύρωσης, και ιδιαίτερα στο παράδειγμα μας, λόγω της φύσης του (δυναμική προσθήκη πεδίων) δεν δέχεται παραμέτρους από άλλη πηγή εκτός από αυτές που θα δώσει ο χρήστης όταν του ζητηθεί πριν την εκτέλεση του. Αυτό που μπορούμε να κάνουμε είναι Αντί για :PARAMETERS [Δώσε ημερομηνία από] DateTime, [Δώσε ημερομηνία μέχρι] να περάσουμε: PARAMETERS [Forms]![frmOpenQry]![txtStart] DateTime, [Forms]![frmOpenQry]![txtEnd] DateTime; και στα κριτήρια του ερωτήματος: ....WHERE ((([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΗΜΕΡΟΜΗΝΙΑ) Between [Forms]![frmOpenQry]![txtStart] And [Forms]![frmOpenQry]![txtEnd])) Με άλλα λόγια αυτό ο παρακάτω κώδικας SQL επιτρέπει την δυναμική παραμετροποίηση σε ερωτήματα τύπου διασταύρωσης: Κώδικας: PARAMETERS [Forms]![frmOpenQry]![txtStart] DateTime, [Forms]![frmOpenQry]![txtEnd] DateTime; TRANSFORM Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS ΠλήθοςΤουΜΗΤΡΩΟ SELECT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS [Σύνολο από ΜΗΤΡΩΟ] FROM [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ] WHERE ((([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΗΜΕΡΟΜΗΝΙΑ) Between [Forms]![frmOpenQry]![txtStart] And [Forms]![frmOpenQry]![txtEnd])) GROUP BY [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ PIVOT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ; Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#6
| |||
| |||
Καλημέρα σε όλους Τάσο ευχαριστώ για την άμεση και διεξοδική ενημέρωση. Είναι μάθημα για μένα και για τα άλλα μέλη. Φιλικά/Γιώργος |
#7
| |||
| |||
Δημιουργία έκθεσης μετά απο εισαγωγή φίλτρου σε ερώτημα διασταύρωσης
Τάσο, Καλημέρα ξέρεις γιατί από το ερώτημα διασταύρωσης δεν μπορώ να φτιάξω έκθεση; Σε ευχαριστώ εκ των προτέρων. Πάνος |
#8
| ||||
| ||||
Καλησπέρα σε όλους! Πάνο, τα πεδία ενός ερωτήματος Διαστάυρωσης δεν είναι αποθηκευμένα με αποτέλεσμα ο οδηγός εκθέσεων να μην βρίσκει πεδία για να σου φτιάξει την έκθεση. Μπορείς να περάσεις τον παρακάτω κώδικα SQL στο ερώτημα σου για να δημιουργήσεις "σταθερά πεδία" που θα σου επιτρέψουν να δημιουργήσεις την έκθεση: Κώδικας: PARAMETERS [Δώσε ημερομηνία από] DateTime, [Δώσε ημερομηνία μέχρι] DateTime; TRANSFORM Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS ΠλήθοςΤουΜΗΤΡΩΟ SELECT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS [Σύνολο από ΜΗΤΡΩΟ] FROM [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ] WHERE ((([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΗΜΕΡΟΜΗΝΙΑ) Between [Δώσε ημερομηνία από] And [Δώσε ημερομηνία μέχρι])) GROUP BY [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ In ("ΑΛΦΑ","ΒΗΤΑ","ΓΑΜΑ","ΔΕΛΤΑ","ΕΨΙΛΟΝ") PIVOT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ In ("ΑΛΦΑ","ΒΗΤΑ","ΓΑΜΑ","ΔΕΛΤΑ","ΕΨΙΛΟΝ"); Κώδικας: TRANSFORM Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS ΠλήθοςΤουΜΗΤΡΩΟ SELECT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS [Σύνολο από ΜΗΤΡΩΟ] FROM [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ] WHERE ((([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΗΜΕΡΟΜΗΝΙΑ) Between [Δώσε ημερομηνία από] And [Δώσε ημερομηνία μέχρι])) GROUP BY [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΚΑΤΗΓΟΡΙΑ, [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ In ("ΑΛΦΑ","ΒΗΤΑ","ΓΑΜΑ","ΔΕΛΤΑ","ΕΨΙΛΟΝ") PIVOT [ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΔΙΕΥΘΥΝΣΗ In ("ΑΛΦΑ","ΒΗΤΑ","ΓΑΜΑ","ΔΕΛΤΑ","ΕΨΙΛΟΝ"); Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#9
| |||
| |||
Τάσε, είσαι καταπληκτικός Τα λέμε Πάνος |
#10
| |||
| |||
Καλησπέρα στην παρέα Τάσο δεν ξέρω τη χρησιμότητα της φράσης IN (......) στην πρόταση GROUP. Έχω τη γνώμη ότι είναι περιττή. Φυσικά δεν προκαλεί και λάθος. Φιλικά/Γιώργος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Ερώτημα με φίλτρο ανά λέξη | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 4 | 26-05-15 20:00 |
[ Ερωτήματα ] Φίλτρο σε ερώτημα | nasos23 | Access - Ερωτήσεις / Απαντήσεις | 5 | 14-12-13 16:58 |
[Γενικά] Φίλτρο | xristos | Excel - Ερωτήσεις / Απαντήσεις | 5 | 15-09-12 17:30 |
Φίλτρο | Χρήστος | Access - Ερωτήσεις / Απαντήσεις | 2 | 06-05-11 13:48 |
[ Ερωτήματα ] Eρώτημα διασταύρωσης | manos77 | Access - Ερωτήσεις / Απαντήσεις | 3 | 09-08-10 23:21 |
Η ώρα είναι 08:10.