Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Κριτήρια ερωτήματος
Γεια σας Στην παρακάτω συνημμένη δειγματική βάση υπάρχει ο πίνακας [tblA] και η το ερώτημα qryA, το οποίο εμφανίζει συγκενρωτικά αποτελέσματα του πίνακα, κατά ημερομηνία. Όταν στο πεδίο "IMEROMINIA" του ερωτήματος βάζω ως κριτήριο το "Date()", προκειμένου το ερώτημα να μου εμφανίζει μόνον αποτελέσματα της τρέχουσας ημέρας, τότε: α) Αν υπάρχει εγγραφή την τρέχουσα ημέρα εμφανίζεται κανονικά το αποτέλεσμα. β) Αν δεν υπάρχει εγγραφή δεν εμφανίζεται τίποτα. Θα ήθελα τη βοήθειά σας, αν γίνεται, όταν την τρέχουσα ημέρα δεν υπάρχει καμιά εγγραφή να εμφανίζει το ερώτημα το αποτέλεσμα: Ημερομηνία = Date και POSO = 0 Σας ευχαριστώ εκ των προτέρων |
#2
| |||
| |||
Καλημέρα Δημήτρη δες, στη συνημμένη ΒΔ, το ερώτημα qryA2. Όταν δεν υπάρχουν εγγραφές, που να ικανοποιούν τα κριτήρια, το φυσιολογικό είναι το ερώτημα να είναι κενό. Δεν καταλαβαίνω γιατί θέλεις να εμφανίζει την εγγραφή: [Ημερομηνία = Date και POSO = 0]. Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη kapetang : 21-10-16 στις 22:54. Αιτία: Αλλαγή συνημμένου |
#3
| |||
| |||
Γειά σας. Γιώργο, καταρχάς σε υπερευχαριστώ για την απάντησή σου. Πράγματι, είναι ορθή η αποψή σου ότι, "όταν δεν υπάρχουν εγγραφές, που να ικανοποιούν τα κριτήρια, το φυσιολογικό είναι το ερώτημα να είναι κενό". Παρόλα αυτά, είχα το ακόλουθο πρόβλημα και δε μπορούσα να το επιλύσω: Στη βάση μου εχω δημιουργήσει ένα ερώτημα επιλογής "qryABCD" αποτελούμενο από τέσσερα άλλα ερωτήματα επιλογής (qryA, qryB,qryC,qryD) τα οποία αντλούν στοιχεία από δύο μη συνδεδεμένους πίνακες. Με βάση το ως άνω ερώτημα "qryABCD" δημιούργησα μια φόρμα όπου εμφανίζονται τα ανάλογα στοιχεία που επέλεξα. Τώρα, όταν το ερώτημα "qryA" της ως άνω συνημμένης δειγματικής βάσης δεν είχε εγγραφή την τρέχουσα ημέρα (που ζητούσα), τότε το "qryABCD" δεν εμφάνιζε καμία εγγραφή, από κανένα ερώτημα, ανεξαρτήτως αν τα υπόλοιπα ερωτήματα ήταν πλήρη εγγραφών!!!. Βρέθηκα, λοιπόν, σε αδιέξοδο και θεώρησα (με τις στοχειώδεις γνώσεις που διαθέτω και ύστερα από διάφορες δοκιμές) ότι, αν το ερώτημα "qryA" δεν έχει εγγραφή πρέπει το πεδίο "POSO" να παίρνει, με κάποιο τρόπο, την τιμή (0). Έτσι, εμφανίζονταν όλες οι εγγραφές!!!. Υπάρχει άλλη μέθοδος; Ενδεχομένως να είναι ανορθόδοξος ο τρόπος σκέψης μου για την επίλυση του ζητούμενου. Όμως, δεν θα πρέπει να παραβλεφθεί το γεγονός ότι έχω στοιχειώδεις γνώσεις πάνω στο αντικείμενο και για τούτο ζητώ την κατανόησή σας... |
#4
| |||
| |||
Δημήτρη, ίσως βοηθήσει. Στη ΒΔ το ερώτημα qryA3 στηρίζεται στη σύνδεση του ερωτήματος qryA2, που έχει μία εγγραφή, με το qryA, που είναι κενό. Αν κάνεις διπλό κλικ στη γραμμή σύνδεσης των ερωτημάτων θα εμφανιστεί ένα πλαίσιο διαλόγου, όπου μπορούμε να επιλέξουμε τις ιδιότητες σύνδεσης. Τελευταία επεξεργασία από το χρήστη kapetang : 21-10-16 στις 22:56. Αιτία: Αλλαγή συνημμένου |
#5
| |||
| |||
Καλησπέρα. Γιώργο, θα σε παρακαλούσα, αν έχεις χρόνο, μιά μικρή βοήθεια ακόμη προκειμένου να κάνω τις δοκιμές μου συνολικά: Η συνημμένη βάση είναι η ίδια με την πρώτη, με τη διαφορά ότι έχω προσθέσει άλλο ένα πεδίο, το [SD], στον πίνακα [tblA]. Θέτοντας γι`αυτό το πεδίο κριτήριο στο ερώτημα [qryA], πως θα διαμορφώσουμε την SQL του ερωτήματοs [qryA2], ώστε να έχουμε το ζητούμενο; Ευχαριστώ για όλα... |
#6
| |||
| |||
Δημήτρη, δες το συνημμένο. Στο ερώτημα ένωσης qryA, έχει προστεθεί μία εικονική εγγραφή [0, Date(), Null]. Το συγκεντρωτικό ερώτημα qryA2 βασίζεται στο qryA. Η λύση που πρότεινα στις προηγούμενες ΒΔ δεν είναι σωστή. Δίνει σωστό αποτέλεσμα μόνο όταν το ερώτημα qryA δεν επιστρέφει εγγραφές. Όταν το qryA επιστρέφει εγγραφές, στο qryA2, θα προστεθεί και η μη αναγκαία εγγραφή [0, Date()]. Αν χρειάζεσαι και τις προηγούμενες περιπτώσεις θα πρέπει να τις προσαρμόσεις, σύμφωνα με την παρούσα. |
#7
| |||
| |||
Γεια σας Γιώργο με μια πρώτη ματιά που έριξα, βλέπω οτι το ερώτημα επιστρέφει για την 21/10/2016 (σήμερα) ποσό 260€,ενώ κανονικά δεν θα έπρεπε, αφού θέτουμε ως κριτήριο στο πεδίο SD το IsNull. Ή κάνω λάθος; |
#8
| |||
| |||
Άκυρον Γιώργο, λάθος έχω κάνει... Κάνω τις δικιμές μου και επανέρχομαι. Χίλια ευχαριστώ, νάσαι καλά...... |
#9
| |||
| |||
Γεια σας. Γιώργο, επανέρχομαι μετά από τις δοκιμές που έκανα στη βάση μου και παραθέτω τα ακόλουθα: α) Προσάρμοσα στη βάση μου την τελευταία πρότασή σου και λειτούργησε άψογα. Το δε πρόβλημα της μη εμφάνισης στοιχείων των λοιπών ερωτημάτων (που ανάρτησα στο ως άνω μήνυμά μου χθες, 18:09) εξαλείφθηκε. β) Ωστόσο, με προβλημάτισε και έδωσα ιδιαίτερη βαρύτητα στην ορθή άποψή σου ότι, "όταν δεν υπάρχουν εγγραφές, που να ικανοποιούν τα κριτήρια, το φυσιολογικό είναι το ερώτημα να είναι κενό". γ) Γι`Αυτό, ύστερα από διάφορες δοκιμές κατέληξα στο εξής: Άλλαξα τα ερωτήματα έτσι ώστε να μη δίνουν συγκεντρωτικά αποτελέσματα.Τα κριτήρια που υπήρχαν σ`αυτά τα άφησα όπως ήταν. Κατόπιν, προκειμένου να έχω σύνολα έβαλα π.χ. σε ένα πεδίο του ερωτήματος SUME: Άθροισμα(([POSOEX])). (Βλέπε συνημμένη βάση και σύγκρινε τα ερώτηματα Α1 και Α2) Τελικά, δουλεύοντας κατ` αυτόν τον απλό τρόπο είχα και τα σύνολα που ζητούσα μέσω των ερωτημάτων αλλά το σημαντικότερο: όταν ένα ερώτημα δεν είχε δεδομένα (Null) τα υπόλοιπα ερωτήματα εμφάνιζαν κανονικά τα στοιχεία τους στη Φόρμα!!!. Συμπερασματικά, θα έλεγα ότι, ξεκίνησα με λάθος τρόπο για να επιτύχω το ζητούμενο και το χειρότερο είναι ότι δεν έθεσα ορθά και άμεσα το αρχικό ερώτημα στο Forum. Πάντως σε κάθε περίπτωση σ` ευχαριστώ για μια ακόμη φορά για την πολύπλευρη βοήθειά σου. Αν είναι σαφή τα παραπάνω περιγραφόμενα και, βεβαίως, αν έχεις χρόνο, θα ήθελα την άποψή σου ( ή την άποψη απο οποιοδήποτε μέλος του Forum) για την ορθότητα της σκέψης μου προς επίτευξη του επιδιωκόμενου σκοπού. Καλή συνέχεια... |
#10
| |||
| |||
Καλημέρα Θεωρητικά τα ερωτήματα qryA1 και qryA2 είναι διαφορετικά. Το qryA1: 1) Προσδιορίζει όλες τις εγγραφές που ικανοποιούν τα κριτήρια. 2) Για τις εγγραφές αυτές, προσδιορίζει το άθροισμα των τιμών του πεδίου [POSO]. 3) Επιστρέψει μία εγγραφή (ή καμία) με το παραπάνω άθροισμα. Το qryA2 (έβαλα στο πεδίο [POSO] αντί Group By ->Sum). 1)Με βάση τις τιμές των πεδίων [IMEROMINIA] και [POSO], χωρίζει τις εγγραφές σε ομάδες. 2) Για κάθε ομάδα υπολογίζει το άθροισμα των τιμών του πεδίου [POSO] και ουσιαστικά, για κάθε ομάδα, δημιουργεί μία αντιπροσωπευτική εγγραφή. 3) Στις παραπάνω αντιπροσωπευτικές εγγραφές εφαρμόζει τα κριτήρια και επιστρέφει μία (περισσότερες ή καμία). Τελικά τα αποτελέσματα των ερωτημάτων, μπορεί να είναι ίδια ή διαφορετικά, ανάλογα με τα κριτήρια. Στη συγκεκριμένη περίπτωση είναι ίδια. Η φόρμα Form1, με τη βοήθεια της συνάρτησης DSum(), εμφανίζει το ίδιο αποτέλεσμα με τα ερωτήματα. Φιλικά/Γιώργος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Συναρτήσεις ] Iff σύνταξη στα κριτήρια!! | docker | Access - Ερωτήσεις / Απαντήσεις | 6 | 11-10-15 13:28 |
Κριτήρια σε ερώτημα. | sarrpan | Access - Ερωτήσεις / Απαντήσεις | 6 | 30-03-15 19:33 |
Κριτήρια ερωτήματος . | bill72 | Access - Ερωτήσεις / Απαντήσεις | 2 | 07-11-11 14:24 |
[Συναρτήσεις] Aναζήτηση με πολλά κριτήρια | manolis | Excel - Ερωτήσεις / Απαντήσεις | 8 | 12-10-11 23:01 |
Κριτήρια ερωτήματος απο φόρμα | bill72 | Access - Ερωτήσεις / Απαντήσεις | 3 | 03-08-11 09:44 |
Η ώρα είναι 08:37.