Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ερωτήματα ] Κριτήρια ερωτήματος

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 20-10-16, 19:34
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή Κριτήρια ερωτήματος

Γεια σας


Στην παρακάτω συνημμένη δειγματική βάση υπάρχει ο πίνακας [tblA]
και η το ερώτημα qryA, το οποίο εμφανίζει συγκενρωτικά αποτελέσματα του πίνακα,
κατά ημερομηνία.

Όταν στο πεδίο "IMEROMINIA" του ερωτήματος βάζω ως κριτήριο το "Date()",
προκειμένου το ερώτημα να μου εμφανίζει μόνον αποτελέσματα της τρέχουσας ημέρας, τότε:

α) Αν υπάρχει εγγραφή την τρέχουσα ημέρα εμφανίζεται κανονικά το αποτέλεσμα.
β) Αν δεν υπάρχει εγγραφή δεν εμφανίζεται τίποτα.

Θα ήθελα τη βοήθειά σας, αν γίνεται, όταν την τρέχουσα ημέρα δεν υπάρχει καμιά
εγγραφή να εμφανίζει το ερώτημα το αποτέλεσμα:
Ημερομηνία = Date και POSO = 0


Σας ευχαριστώ εκ των προτέρων
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate.accdb (380,0 KB, 11 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 21-10-16, 10:23
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Δημήτρη δες, στη συνημμένη ΒΔ, το ερώτημα qryA2.

Όταν δεν υπάρχουν εγγραφές, που να ικανοποιούν τα κριτήρια, το φυσιολογικό είναι το ερώτημα να είναι κενό.

Δεν καταλαβαίνω γιατί θέλεις να εμφανίζει την εγγραφή: [Ημερομηνία = Date και POSO = 0].

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate2 .accdb (492,0 KB, 12 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 21-10-16 στις 21:54. Αιτία: Αλλαγή συνημμένου
Απάντηση με παράθεση
  #3  
Παλιά 21-10-16, 17:09
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γειά σας.

Γιώργο, καταρχάς σε υπερευχαριστώ για την απάντησή σου.

Πράγματι, είναι ορθή η αποψή σου ότι, "όταν δεν υπάρχουν εγγραφές, που να ικανοποιούν τα κριτήρια, το φυσιολογικό είναι το ερώτημα να είναι κενό".

Παρόλα αυτά, είχα το ακόλουθο πρόβλημα και δε μπορούσα να το επιλύσω:
Στη βάση μου εχω δημιουργήσει ένα ερώτημα επιλογής "qryABCD" αποτελούμενο από τέσσερα άλλα ερωτήματα επιλογής (qryA, qryB,qryC,qryD) τα οποία αντλούν στοιχεία από δύο μη συνδεδεμένους πίνακες.

Με βάση το ως άνω ερώτημα "qryABCD" δημιούργησα μια φόρμα όπου εμφανίζονται τα ανάλογα στοιχεία που επέλεξα.
Τώρα, όταν το ερώτημα "qryA" της ως άνω συνημμένης δειγματικής βάσης δεν είχε εγγραφή
την τρέχουσα ημέρα (που ζητούσα), τότε το "qryABCD" δεν εμφάνιζε καμία εγγραφή, από κανένα ερώτημα, ανεξαρτήτως αν τα
υπόλοιπα ερωτήματα ήταν πλήρη εγγραφών!!!.

Βρέθηκα, λοιπόν, σε αδιέξοδο και θεώρησα (με τις στοχειώδεις γνώσεις που διαθέτω και ύστερα από διάφορες δοκιμές) ότι, αν το ερώτημα "qryA" δεν έχει εγγραφή πρέπει το πεδίο "POSO" να παίρνει, με κάποιο τρόπο, την τιμή (0). Έτσι, εμφανίζονταν όλες οι εγγραφές!!!.
Υπάρχει άλλη μέθοδος;

Ενδεχομένως να είναι ανορθόδοξος ο τρόπος σκέψης μου για την επίλυση του ζητούμενου.
Όμως, δεν θα πρέπει να παραβλεφθεί το γεγονός ότι έχω στοιχειώδεις γνώσεις πάνω στο αντικείμενο και για τούτο ζητώ την κατανόησή σας...
Απάντηση με παράθεση
  #4  
Παλιά 21-10-16, 18:00
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Δημήτρη, ίσως βοηθήσει.

Στη ΒΔ το ερώτημα qryA3 στηρίζεται στη σύνδεση του ερωτήματος qryA2, που έχει μία εγγραφή, με το qryA, που είναι κενό.

Αν κάνεις διπλό κλικ στη γραμμή σύνδεσης των ερωτημάτων θα εμφανιστεί ένα πλαίσιο διαλόγου, όπου μπορούμε να επιλέξουμε τις ιδιότητες σύνδεσης.
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate3.accdb (632,0 KB, 13 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 21-10-16 στις 21:56. Αιτία: Αλλαγή συνημμένου
Απάντηση με παράθεση
  #5  
Παλιά 21-10-16, 20:53
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλησπέρα.

Γιώργο, θα σε παρακαλούσα, αν έχεις χρόνο, μιά μικρή βοήθεια ακόμη
προκειμένου να κάνω τις δοκιμές μου συνολικά:

Η συνημμένη βάση είναι η ίδια με την πρώτη, με τη διαφορά ότι έχω προσθέσει
άλλο ένα πεδίο, το [SD], στον πίνακα [tblA].

Θέτοντας γι`αυτό το πεδίο κριτήριο στο ερώτημα [qryA],
πως θα διαμορφώσουμε την SQL του ερωτήματοs [qryA2], ώστε να έχουμε
το ζητούμενο;


Ευχαριστώ για όλα...
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate4.accdb (408,0 KB, 2 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 21-10-16, 21:43
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Δημήτρη, δες το συνημμένο.

Στο ερώτημα ένωσης qryA, έχει προστεθεί μία εικονική εγγραφή [0, Date(), Null].

Το συγκεντρωτικό ερώτημα qryA2 βασίζεται στο qryA.

Η λύση που πρότεινα στις προηγούμενες ΒΔ δεν είναι σωστή.

Δίνει σωστό αποτέλεσμα μόνο όταν το ερώτημα qryA δεν επιστρέφει εγγραφές.

Όταν το qryA επιστρέφει εγγραφές, στο qryA2, θα προστεθεί και η μη αναγκαία εγγραφή [0, Date()].

Αν χρειάζεσαι και τις προηγούμενες περιπτώσεις θα πρέπει να τις προσαρμόσεις, σύμφωνα με την παρούσα.
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate5.accdb (500,0 KB, 9 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 21-10-16, 22:04
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γεια σας

Γιώργο με μια πρώτη ματιά που έριξα, βλέπω οτι το ερώτημα επιστρέφει
για την 21/10/2016 (σήμερα) ποσό 260€,ενώ κανονικά δεν θα έπρεπε, αφού θέτουμε ως κριτήριο στο πεδίο SD το IsNull.

Ή κάνω λάθος;
Απάντηση με παράθεση
  #8  
Παλιά 21-10-16, 22:17
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Άκυρον Γιώργο, λάθος έχω κάνει...

Κάνω τις δικιμές μου και επανέρχομαι.

Χίλια ευχαριστώ, νάσαι καλά......
Απάντηση με παράθεση
  #9  
Παλιά 22-10-16, 21:19
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Γεια σας.

Γιώργο, επανέρχομαι μετά από τις δοκιμές που έκανα στη βάση μου και παραθέτω τα ακόλουθα:

α) Προσάρμοσα στη βάση μου την τελευταία πρότασή σου και λειτούργησε άψογα.
Το δε πρόβλημα της μη εμφάνισης στοιχείων των λοιπών ερωτημάτων (που ανάρτησα στο ως άνω μήνυμά μου χθες, 18:09) εξαλείφθηκε.

β) Ωστόσο, με προβλημάτισε και έδωσα ιδιαίτερη βαρύτητα στην ορθή άποψή σου
ότι, "όταν δεν υπάρχουν εγγραφές, που να ικανοποιούν τα κριτήρια, το φυσιολογικό είναι το ερώτημα να είναι κενό".

γ) Γι`Αυτό, ύστερα από διάφορες δοκιμές κατέληξα στο εξής:

Άλλαξα τα ερωτήματα έτσι ώστε να μη δίνουν συγκεντρωτικά αποτελέσματα.Τα κριτήρια που υπήρχαν σ`αυτά τα άφησα όπως ήταν.
Κατόπιν, προκειμένου να έχω σύνολα έβαλα π.χ. σε ένα πεδίο του ερωτήματος SUME: Άθροισμα(([POSOEX])).
(Βλέπε συνημμένη βάση και σύγκρινε τα ερώτηματα Α1 και Α2)

Τελικά, δουλεύοντας κατ` αυτόν τον απλό τρόπο είχα και τα σύνολα που ζητούσα μέσω των ερωτημάτων αλλά το σημαντικότερο:
όταν ένα ερώτημα δεν είχε δεδομένα (Null) τα υπόλοιπα ερωτήματα εμφάνιζαν κανονικά τα στοιχεία τους στη Φόρμα!!!.

Συμπερασματικά, θα έλεγα ότι, ξεκίνησα με λάθος τρόπο για να επιτύχω το ζητούμενο και το χειρότερο είναι ότι δεν έθεσα ορθά και άμεσα το αρχικό ερώτημα στο Forum.

Πάντως σε κάθε περίπτωση σ` ευχαριστώ για μια ακόμη φορά για την πολύπλευρη βοήθειά σου.

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

Καλή συνέχεια...
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate6.accdb (408,0 KB, 7 εμφανίσεις)
Απάντηση με παράθεση
  #10  
Παλιά 23-10-16, 09:20
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Θεωρητικά τα ερωτήματα qryA1 και qryA2 είναι διαφορετικά.

Το qryA1:


1) Προσδιορίζει όλες τις εγγραφές που ικανοποιούν τα κριτήρια.

2) Για τις εγγραφές αυτές, προσδιορίζει το άθροισμα των τιμών του πεδίου [POSO].

3) Επιστρέψει μία εγγραφή (ή καμία) με το παραπάνω άθροισμα.

Το qryA2 (έβαλα στο πεδίο [POSO] αντί Group By ->Sum).

1)Με βάση τις τιμές των πεδίων [IMEROMINIA] και [POSO], χωρίζει τις εγγραφές σε ομάδες.

2) Για κάθε ομάδα υπολογίζει το άθροισμα των τιμών του πεδίου [POSO] και ουσιαστικά, για κάθε ομάδα, δημιουργεί μία αντιπροσωπευτική εγγραφή.

3) Στις παραπάνω αντιπροσωπευτικές εγγραφές εφαρμόζει τα κριτήρια και επιστρέφει μία (περισσότερες ή καμία).

Τελικά τα αποτελέσματα των ερωτημάτων, μπορεί να είναι ίδια ή διαφορετικά, ανάλογα με τα κριτήρια.

Στη συγκεκριμένη περίπτωση είναι ίδια.

Η φόρμα Form1, με τη βοήθεια της συνάρτησης DSum(), εμφανίζει το ίδιο αποτέλεσμα με τα ερωτήματα.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb DbQueryDate7.accdb (628,0 KB, 23 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Συναρτήσεις ] Iff σύνταξη στα κριτήρια!! docker Access - Ερωτήσεις / Απαντήσεις 6 11-10-15 12:28
Κριτήρια σε ερώτημα. sarrpan Access - Ερωτήσεις / Απαντήσεις 6 30-03-15 18:33
Κριτήρια ερωτήματος . bill72 Access - Ερωτήσεις / Απαντήσεις 2 07-11-11 13:24
[Συναρτήσεις] Aναζήτηση με πολλά κριτήρια manolis Excel - Ερωτήσεις / Απαντήσεις 8 12-10-11 22:01
Κριτήρια ερωτήματος απο φόρμα bill72 Access - Ερωτήσεις / Απαντήσεις 3 03-08-11 08:44


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