![]() |
Φίλτρο σε ερώτημα διασταύρωσης 2 Συνημμένο(α) Καλημέρα και καλή "σεζόν" σε όλους. Επιστρέφω με ένα ερώτημα: Εάν μπορώ από τον βασικό μου πίνακα "ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ" να φτιάξω ένα ερώτημα διασταύρωσης -με "γραμμή" στοιχεία από [ΚΑΤΗΓΟΡΙΑ] και "στήλη" από [ΔΙΕΥΘΥΝΣΗ] (βλ. "ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ διασταύρωσης")- έτσι ώστε να μου δείνει την δυνατότητα να φιλτράρω τις πληροφορίες με βάση μια χρονική περίοδο από το [ΗΜΕΡΟΜΗΝΙΑ] π.χ. στοιχεία από 1/1/2010 έως 31/1/2010. Ευχαριστώ πολύ Πάνος |
Πάνο καλημέρα! Ο κώδικας SQL που θα σου επιτρέψει να φιλτράρεις τα δεδομένα σου σε ερώτημα διασταύρωσης (με κριτήριο το διάστημα 2 ημερομηνιών) μπορούσε να είναι έτσι: Κώδικας: PARAMETERS [Δώσε ημερομηνία από] DateTime, [Δώσε ημερομηνία μέχρι] DateTime;Κώδικας: PARAMETERS [Δώσε μήνα] Value, [Δώσε έτος] Value;και δοκίμασε. Καλή συνέχεια Φιλικά Τάσος |
Τάσο, Σ' ευχαριστώ για άλλη μία φορά. Τα λέμε Πάνος |
Καλησπέρα στην παρέα Τάσο είδα τη λύση, με το παραμετρικό ερώτημα, που έδωσες στην ερώτηση του Πάνου και σκέφτηκα αν θα μπορούσαμε να ανοίγουμε το ερώτημα διασταύρωσης πατώντας το κουμπί μιας φόρμας (frmOpenQry), στην οποία δύο πλαίσια κειμένου (txtStart, txtEnd) θα προσδιόριζαν το χρονικό διάστημα που μας ενδιαφέρει. Στις δοκιμές που έκανα το κριτήριο: [ΗΜΕΡΟΜΗΝΙΑ] between [Forms]![frmOpenQry]![txtStart] and [Forms]![frmOpenQry]![txtEnd], δε λειτουργούσε (έβγαζε λάθος) . Υπάρχει λύση; Φιλικά/Γιώργος |
Καλημέρα σε όλους! Γιώργο, ένα κοινό ερώτημα επιλογής, μπορεί να επεξεργαστεί κριτήρια όπως [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;Φιλικά Τάσος |
Καλημέρα σε όλους Τάσο ευχαριστώ για την άμεση και διεξοδική ενημέρωση. Είναι μάθημα για μένα και για τα άλλα μέλη. Φιλικά/Γιώργος |
Δημιουργία έκθεσης μετά απο εισαγωγή φίλτρου σε ερώτημα διασταύρωσης 1 Συνημμένο(α) Τάσο, Καλημέρα ξέρεις γιατί από το ερώτημα διασταύρωσης δεν μπορώ να φτιάξω έκθεση; Σε ευχαριστώ εκ των προτέρων. Πάνος |
Καλησπέρα σε όλους! Πάνο, τα πεδία ενός ερωτήματος Διαστάυρωσης δεν είναι αποθηκευμένα με αποτέλεσμα ο οδηγός εκθέσεων να μην βρίσκει πεδία για να σου φτιάξει την έκθεση. Μπορείς να περάσεις τον παρακάτω κώδικα SQL στο ερώτημα σου για να δημιουργήσεις "σταθερά πεδία" που θα σου επιτρέψουν να δημιουργήσεις την έκθεση: Κώδικας: PARAMETERS [Δώσε ημερομηνία από] DateTime, [Δώσε ημερομηνία μέχρι] DateTime;Κώδικας: TRANSFORM Count([ΟΝΟΜΑΣΤΙΚΗ ΚΑΤΑΣΤΑΣΗ].ΜΗΤΡΩΟ) AS ΠλήθοςΤουΜΗΤΡΩΟΚαλή συνέχεια! Τάσος |
Τάσε, είσαι καταπληκτικός Τα λέμε Πάνος |
Καλησπέρα στην παρέα Τάσο δεν ξέρω τη χρησιμότητα της φράσης IN (......) στην πρόταση GROUP. Έχω τη γνώμη ότι είναι περιττή. Φυσικά δεν προκαλεί και λάθος. Φιλικά/Γιώργος |
Καλημέρα σε όλες και όλους, Έχω κατασκευάσει μία έκθεση διασταύρωσης, έτσι όπως έχει συζητηθεί παραπάνω, στο υποσέλιδο της οποίας έχω κάνει αθροίσεις των οριζόντιων πεδίων για κάθε πεδίο ξεχωριστά (πχ. του τύπου, Άθροισμα([πεδίο1]) =2, Άθροισμα([πεδίο2] =4, Άθροισμα([πεδίο3] =6 , Άθροισμα([πεδίο4] =8, Άθροισμα([πεδίο5]) =3 κ.ο.κ . Ως εδώ καλά. Θα ήθελα ωστόσο να έχω, πάλι στο υποσέλιδο της έκθεσης, και δύο επιμέρους συνολικά αθροίσματα τα οποία θα συμπεριλαμβάνουν τα παραπάνω πεδία. Έτσι φτιάχνω ένα πλαίσιο ελέγχου για το πρώτο σύνολο ΑΛΦΑ του τύπου ([AccessTotalsπεδίο1]+[πεδίο2]+ [AccessTotalsπεδίο3] = 12 όπως και ένα σύνολο ΒΗΤΑ του τύπου [AccessTotalsπεδίο4]+ [AccessTotalsπεδίο5] = 11 κ.ο.κ. Ωστόσο τα σύνολα δεν συμπεριφέρονται με σταθερότητα. Άλλες φορές εμφανίζονται και άλλες όχι. Για παράδειγμα όταν δίνω ημερομηνίες για να ανοίξει η έκθεση από πχ. (1/1/2010 έως 31/12/2010) τότε έχω στοιχεία (ίσως γιατί έφτιαξα τα σύνολα όταν η έκθεση είχε τα στοιχεία των συγκεκριμένων ημερομηνιών), σε κάθε άλλη ημερομηνία δεν εμφανίζονται στοιχεία. Μήπως γνωρίζετε για ποιο λόγο γίνεται αυτό; Ελπίζω να έγινα κατανοητός Ευχαριστώ πολύ. Πάνος |
Καλημέρα Πάνο, πιστεύω ότι αν ανέβαζες ένα δείγμα της ΒΔ (πίνακας, ερώτημα, έκθεση, κλπ) θα μπορούσε να εντοπιστεί ευκολότερα το πρόβλημα και να αντιμετωπιστεί. Φιλικά/Γιώργος |
οκ, Γιώργο, θα το φτιάξω και θα το ανεβάσω Σ' ευχαριστώ πολύ Πάνος |
Επιμέρους σύνολα σε έκθεση διασταύρωσης 2 Συνημμένο(α) Παράθεση:
Στο παραδειγματάκι που ανεβάζω αντιμετωπίζω την εξής δυσκολία: 1. Ανοίγω την έκθεση με ημερομηνία από [1/1/2010] έως [31/12/2010]. Εκεί θέλω το Σύνολο των εγγραφών [Σύνολο από αρι. μητρώου], θέλω επίσης και δύο υποσύνολα [Σύν.: ΑΒΓΔ] και [Σύν.: ΕΖ] (Στο παράδειγμα Σύνολο από αρι. μητρώου=9, Σύν.: ΑΒΓΔ =6 και Σύν.: ΕΖ =3). 2. Ως εδώ καλά 3. το πρόβλημα προκύπτει όταν η ημερομηνία που δίνω στο άνοιγμα της έκθεσης είναι διαφορετική από [1/1/2010] έως [31/12/2010]. Σε όποια άλλη ημερομηνία (π.χ.: από 1/1/2010 έως 31/3/2010) τα επιμέρους σύνολα [Σύν.: ΑΒΓΔ] και [Σύν.: ΕΖ] δεν δουλεύουν. Ξέρει κανείς για πιο λόγο γίνεται αυτό και πως διορθώνεται; Ευχαριστώ πολύ Πάνος |
Στο ερωτημα σου διεγραψε το (In) αφησε μονο την ΔΙΕΥΘΥΝΣΗ σαν στηλη με "Ομαδοποιηση Κατα" και "Επικεφαλίδα στήλης". Καλη συνεχεια... |
Τόλη σε ευχαριστώ για άλλη μία φορά, Το προσπαθώ και σε ενημερώνω Τα λέμε Πάνος |
1 Συνημμένο(α) Καλησπέρα Πάνο, το πρόβλημα οφείλεται στις τιμές null. Στα αθροίσματά σου υπάρχουν πλαίσια κειμένου με τιμές null (κενές). Όταν αθροίζουμε τιμές και κάποια είναι null όλο το άθροισμα είναι null (κενό). Για την αντιμετώπιση του προβλήματος χρησιμοποιούμε τη συνάρτηση: nz([txtA];0) που αν το πλαίσιο κειμένου txtA είναι null επιστρέφει τιμή μηδέν (0). Δες τις αλλαγές που έκανα στην έκθεση. Φιλικά/Γιώργος |
Ευχαριστώ πολύ Γιώργο, Θα τα δω αύριο το πρωί, γιατί στο σπίτι δεν έχω access Νομίζω ότι έδωσες τη λύση Για άλλη μια φορά σε ευχαριστώ πολύ, Τα λέμε αύριο Ευχαριστώ πολύ Καλό βράδυ σε όλους Πάνος |
Γιώργο δουλεύει, σε ευχαριστώ και πάλι φίλε, Όσον αφορά την πρόταση του Τόλη, δεν μπόρεσα μέχρι στιγμής να βρω άκρη Τα λέμε Πάνος |
1 Συνημμένο(α) Καλημέρα Στη βάση δεδομένων,, που επισυνάπτεται, παρουσιάζεται η περίπτωση ανοίγματος μιας έκθεσης βασισμένης σε παραμετρικό ερώτημα διασταύρωσης μέσω μιας φόρμας που παρέχει και τις τιμές των παραμέτρων. Τα δεδομένα που χρησιμοποίησα προέρχονται από τη ΒΔ του Πάνου που έκανε και το αρχικό ερώτημα. Πιστεύω ότι έτσι διευκρινίζεται η ιδιαιτερότητα των παραμετρικών ερωτημάτων διασταύρωσης και, κατά κάποιο τρόπο, συμπληρώνεται η σχετική συζήτηση. Οι τιμές των παραμέτρων λαμβάνονται από τα πλαίσια κειμένου txtStart και txtEnd της φόρμας frmParameters και το παραμετρικό ερώτημα qryOpenFromForm σε προβολή SQL ορίζεται ως εξής: Κώδικας: PARAMETERS [Forms]![frmParameters]![txtStart] DateTime, [Forms]![frmParameters]![txtEnd] DateTime; |
Γιώργο, Είναι ότι χρειαζόμουν σε ευχαριστούμε πάρα πολύ Πάνος |
Καλημέρα σε όλους, Γιώργο, μήπως έχεις ανεβάσει λάθος ΒΔ; τα λέμε Πάνος |
1 Συνημμένο(α) Γιώργο, Οκ, έκανα την εφαρμογή του κώδικά σου. Καλημέρα και πάλι Πάνος |
Καλημέρα Φίλε Πάνο έχεις δίκιο. Επειδή είχαν παραπλήσια ονόματα, ανέβασα λάθος ΒΔ. Διόρθωσα το προηγούμενο μήνυμα και επισυνάπτω τη σωστή Γιώργος |
| Η ώρα είναι 01:10. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.