| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#11
| |||
| |||
|
Καλημέρα σας, Έχω προσθέσει ορισμένα πράγματα στη βάση με νέες αναζητήσεις. Όλα δουλεύουν μια χαρά εκτός από κάτι που δεν μπορώ να καταλάβω το γιατί. Συγκεκριμένα στην εισαγωγή δεδομένων του πίνακα "Κατάστημα" έχει προστεθεί το πεδίο "Δυσκολία_Επισκευής", στο οποίο βάζω τιμές από το 0 έως το 5. Η "Αναζήτηση" δουλεύει σωστά μόνο στην περίπτωση που στο πεδίο "Δυσκολία_Επισκευής" δεν υπάρχει η τιμή 0. Θα μπορούσε να γίνει κάτι ώστε η "Αναζήτηση" να δουλεύει σωστά και με τις τιμές 0 του πεδίου "Δυσκολία_Επισκευής"; |
|
#12
| |||
| |||
|
Καλησπέρα Βασίλη, προσθέτοντας συνεχώς κριτήρια το ερώτημα γίνεται πολύπλοκο και δύσκολα διαχειρίσιμο. Στη συνημμένη ΒΔ: 1) Έκανα κάποιες αλλαγές στη φόρμα [Αναζήτηση]. 2) Δημιούργησα το ερώτημα [qrySearch]. Το ερώτημα το ξανασχεδίασα, έτσι ώστε να διευκολύνει την εφαρμογή πολλών κριτηρίων. 3) Πρόσθεσα τη φόρμα [Οδηγίες], στην οποία δίνονται οδηγίες για τον τρόπο διαμόρφωσης των κριτηρίων. Κάνε δοκιμές μήπως μου ξέφυγε κάτι. Φιλικά/Γιώργος |
|
#13
| |||
| |||
|
Καλησπέρα Γιώργο, Σ' ευχαριστώ πολύ για τον χρόνο σου. Όμως δε θέλω κάτι τέτοιο. Θα δώσω ένα παράδειγμα για να γίνω πιο κατανοητός. π.χ. Θέλουμε να αναζητήσουμε ένα προϊόν στο κατάστημά μας με τα εξής χαρακτηριστικά: 1. Να έχει μέγεθος "Μ". 2. Αν έχει δύο ελαττώματα "Εμφανή". 3. Αν έχει δύο ελαττώματα "Μπροστά". 4. Το επίπεδο δυσκολίας να είναι "3". Αν έκανα μια τέτοια αναζήτηση στη βάση που επισύναψα στην προηγούμενη δημοσίευση, δούλευε σωστά. Αν χρησιμοποιούσα το πιο πάνω παράδειγμα και δεν έβαζα τιμή στο επίπεδο δυσκολίας, τότε η αναζήτηση θα μου εμφάνιζε σωστά τις εγγραφές που τηρούν τα κριτήρια αρκεί το πεδίο "Δυσκολία Επισκευής" να μην είχε την τιμή μηδέν. Με άλλα λόγια το πρόβλημα είναι ότι δε δουλεύει η αναζήτηση όταν το πεδίο "Δυσκολία Επισκευής" έχει την τιμή 0. Πολύ περίεργο... Επισυνάπτω ξανά τη βάση με τις εγγραφές του παραδείγματος. Αυτό ήθελα να διορθώσω και δε μπορώ να τα καταφέρω... |
|
#14
| |||
| |||
|
Καλημέρα Βασίλη, δεν έχω χρόνο για να ψάξω το λαβύρινθο! Ίσως τα παρακάτω να βοηθήσουν να βρεις το λάθος και να διαμορφώσεις σωστά τα κριτήρια αναζήτησης. Παρακάτω, αντί για τα πλήρη ονόματα των πεδίων που αναφέρονται στην περιγραφή των ελαττωμάτων, θα χρησιμοποιήσω τα αρχικά τους. Για την καταχώρηση των χαρακτηριστικών των ελαττωμάτων χρησιμοποιούνται 3 τριάδες πεδίων (Ε1, Θ1, Δ1), (Ε2, Θ2, Δ2), (Ε3, Θ3, Δ3). Συνεπώς μπορούν να καταχωρηθούν από μηδέν (όλα τα πεδία κενά) μέχρι 3 ελαττώματα. Οι συνδυασμοί των τιμών της 3άδας (Ε1, Θ1, Δ1), είναι 2*3*6 + 1 (όλα τα πεδία κενά)=37. Στον παραπάνω υπολογισμό θεώρησα ότι όλα τα πεδία έχουν τιμή (εφόσον καταχωρείται ελάττωμα περιγράφεται πλήρως) ή όλα είναι κενά (δεν καταχωρείται ελάττωμα). Τα ίδια ισχύουν και για τους συνδυασμούς των τιμών των 3άδων (Ε2, Θ2, Δ2) και (Ε3, Θ3, Δ3). Ένα ελάττωμα (ε, θ, δ) = (έχει εμφάνιση ε, βρίσκεται στη θέση θ, έχει δυσκολία επισκευής δ), μπορεί, σε μία εγγραφή του πίνακα, να εμφανίζεται 0 ή 1 ή 2, ή 3 φορές. Όπως είναι διαμορφωμένη η φόρμα αναζήτησης, μπορούμε να αναζητήσουμε τις εγγραφές του πίνακα, που παρουσιάζουν το ελάττωμα (ε, θ, δ) Ν φορές (Ν=0, 1, 2, 3). Τα κριτήρια στο ερώτημα θα πρέπει να διαμορφωθούν ανάλογα και με την τιμή του Ν. 1) Ν είναι κενό. Ισοδυναμεί με το: Δε θα εφαρμοστούν κριτήρια στα πεδία ελαττωμάτων. 2) Ν=0. Ισοδυναμεί με το: Το (ε,θ,δ) να μη υπάρχει, στο (Ε1,Θ1,Δ1) και στο (Ε2,Θ2,Δ2) και στο (Ε3,Θ3,Δ3) Τα κριτήρια θα έχουν τη μορφή (isNull(E1) OR E1<>ε OR isNull(Θ1) OR Θ1<>θ OR isNull(Δ1) OR Δ1<>δ) AND (isNull(E2) OR E2<>ε OR isNull(Θ2) OR Θ2<>θ OR isNull(Δ2) OR Δ2<>δ) AND (isNull(E3) OR E3<>ε OR isNull(Θ3) OR Θ3<>θ OR isNull(Δ3) OR Δ3<>δ) 3) Αν Ν=1. Ισοδυναμεί με το:
Τα κριτήρια θα έχουν τη μορφή ((Ε1=ε AND Θ1=θ AND Δ1=δ) AND (isNull(Ε2) OR Ε2<>ε OR isNull(Θ2) OR Θ2<>θ OR isNull(Δ2) OR Δ2<>δ) AND ( isNull(Ε3) OR Ε3<>ε OR isNull(Θ3) OR Θ3<>θ OR isNull(Δ3) OR Δ3<>δ)) OR ((isNull(Ε1) OR Ε1<>ε OR isNull(Θ1) OR Θ1<>θ OR isNull(Δ1) OR Δ1<>δ) AND (Ε2=ε AND Θ2=θ AND Δ2=δ) AND (isNull(Ε3) OR Ε3<>ε OR isNull(Θ3) OR Θ3<>θ OR isNull(Δ3) OR Δ3<>δ)) OR ((isNull(Ε1) OR Ε1<>εOR isNull(Θ1) OR Θ1<>θ OR isNull(Δ1) OR Δ1<>δ) AND (isNull(Ε2) OR Ε2<>εOR isNull(Θ2) OR Θ2<>θ OR isNull(Δ2) OR Δ2<>δ) AND (Ε3=ε AND Θ3=θ AND Δ3=δ)) 4) N=2 Ισοδυναμεί με το:
Το (ε,θ,δ) να υπάρχει στα (Ε1,Θ1,Δ1), (Ε2,Θ2,Δ2) και (Ε3,Θ3,Δ3) Θα πρότεινα αντί να έχεις τα πεδία (Ε1, Θ1, Δ1), (Ε2, Θ2, Δ2), (Ε3, Θ3, Δ3) στον πίνακα [Κατάστημα] να δημιουργήσεις ένα νέο πίνακα με πεδία ID (αυτόματης αρίθμησης) ΚατάστημαID (ακέραιος θα συνδέεται με το Αναγνωριστικό του πίνακα Κατάστημα) και Ε, Θ, Δ. Η ΒΔ θα γίνει πιο ευέλικτη και η εφαρμογή των κριτηρίων θα απλοποιηθεί. Καλή συνέχεια. |
|
#15
| |||
| |||
|
Καλημέρα Γιώργο, Μόνο και μόνο που κάθισες και έγραψες τόσο αναλυτικά τόσα πράγματα σε χίλιο-ευχαριστώ! Θα τα μελετήσω για να δω τι μπορώ να κάνω. Τελευταία επεξεργασία από το χρήστη KTL : 19-10-16 στις 15:31. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Πρόβλημα Σε Κώδικα για φόρμα Αναζήτησης | Dimitriss | Access - Ερωτήσεις / Απαντήσεις | 1 | 20-12-16 16:39 |
| Δημιουργία φόρμας αναζήτησης | Dimitriss | Access - Ερωτήσεις / Απαντήσεις | 10 | 15-12-15 18:51 |
| [VBA] Πρόβλημα Αναζήτησης | xristos | Excel - Ερωτήσεις / Απαντήσεις | 0 | 09-07-15 13:33 |
| Φίλτρο Αναζήτησης σε Φόρμα | Free_Ghost | Access - Ερωτήσεις / Απαντήσεις | 3 | 29-07-12 09:48 |
| Ερώτημα αναζήτησης | kirillos | Access - Ερωτήσεις / Απαντήσεις | 4 | 07-09-11 18:53 |
Η ώρα είναι 15:56.


Αλλαγή σε γραμμικό τρόπο

