Ανανέωση ιστοσελίδας

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 18-10-16, 11:11
KTL Ο χρήστης KTL δεν είναι συνδεδεμένος
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 30-07-2015
Μηνύματα: 10
Προεπιλογή

Καλημέρα σας,

Έχω προσθέσει ορισμένα πράγματα στη βάση με νέες αναζητήσεις. Όλα δουλεύουν μια χαρά εκτός από κάτι που δεν μπορώ να καταλάβω το γιατί.
Συγκεκριμένα στην εισαγωγή δεδομένων του πίνακα "Κατάστημα" έχει προστεθεί το πεδίο "Δυσκολία_Επισκευής", στο οποίο βάζω τιμές από το 0 έως το 5.
Η "Αναζήτηση" δουλεύει σωστά μόνο στην περίπτωση που στο πεδίο "Δυσκολία_Επισκευής" δεν υπάρχει η τιμή 0.

Θα μπορούσε να γίνει κάτι ώστε η "Αναζήτηση" να δουλεύει σωστά και με τις τιμές 0 του πεδίου "Δυσκολία_Επισκευής";
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Search4.zip (114,4 KB, 5 εμφανίσεις)
Απάντηση με παράθεση
  #12  
Παλιά 18-10-16, 17:24
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

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

Στη συνημμένη ΒΔ:

1) Έκανα κάποιες αλλαγές στη φόρμα [Αναζήτηση].

2) Δημιούργησα το ερώτημα [qrySearch].

Το ερώτημα το ξανασχεδίασα, έτσι ώστε να διευκολύνει την εφαρμογή πολλών κριτηρίων.

3) Πρόσθεσα τη φόρμα [Οδηγίες], στην οποία δίνονται οδηγίες για τον τρόπο διαμόρφωσης των κριτηρίων.

Κάνε δοκιμές μήπως μου ξέφυγε κάτι.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Search5.zip (57,1 KB, 12 εμφανίσεις)
Απάντηση με παράθεση
  #13  
Παλιά 18-10-16, 19:14
KTL Ο χρήστης KTL δεν είναι συνδεδεμένος
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 30-07-2015
Μηνύματα: 10
Προεπιλογή

Καλησπέρα Γιώργο,

Σ' ευχαριστώ πολύ για τον χρόνο σου. Όμως δε θέλω κάτι τέτοιο. Θα δώσω ένα παράδειγμα για να γίνω πιο κατανοητός.
π.χ. Θέλουμε να αναζητήσουμε ένα προϊόν στο κατάστημά μας με τα εξής χαρακτηριστικά:
1. Να έχει μέγεθος "Μ".
2. Αν έχει δύο ελαττώματα "Εμφανή".
3. Αν έχει δύο ελαττώματα "Μπροστά".
4. Το επίπεδο δυσκολίας να είναι "3".

Αν έκανα μια τέτοια αναζήτηση στη βάση που επισύναψα στην προηγούμενη δημοσίευση, δούλευε σωστά.
Αν χρησιμοποιούσα το πιο πάνω παράδειγμα και δεν έβαζα τιμή στο επίπεδο δυσκολίας, τότε η αναζήτηση θα μου εμφάνιζε σωστά τις εγγραφές που τηρούν τα κριτήρια αρκεί το πεδίο "Δυσκολία Επισκευής" να μην είχε την τιμή μηδέν.
Με άλλα λόγια το πρόβλημα είναι ότι δε δουλεύει η αναζήτηση όταν το πεδίο "Δυσκολία Επισκευής" έχει την τιμή 0. Πολύ περίεργο...
Επισυνάπτω ξανά τη βάση με τις εγγραφές του παραδείγματος.

Αυτό ήθελα να διορθώσω και δε μπορώ να τα καταφέρω...
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Search4Edit.zip (130,1 KB, 10 εμφανίσεις)
Απάντηση με παράθεση
  #14  
Παλιά 19-10-16, 10:18
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Βασίλη, δεν έχω χρόνο για να ψάξω το λαβύρινθο!

Ίσως τα παρακάτω να βοηθήσουν να βρεις το λάθος και να διαμορφώσεις σωστά τα κριτήρια αναζήτησης.

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

Για την καταχώρηση των χαρακτηριστικών των ελαττωμάτων χρησιμοποιούνται 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,Θ1,Δ1) να μη υπάρχει στο (Ε2,Θ2,Δ2) και να μη υπάρχει στο (Ε3,Θ3,Δ3)
  • Το (ε,θ,δ) να μη υπάρχει στο (Ε1,Θ1,Δ1) να υπάρχει στο (Ε2,Θ2,Δ2) και να μη υπάρχει στο (Ε3,Θ3,Δ3)
  • Το (ε,θ,δ) να μη υπάρχει στο (Ε1,Θ1,Δ1) να μη υπάρχει στο (Ε2,Θ2,Δ2) και να υπάρχει στο (Ε3,Θ3,Δ3)

Τα κριτήρια θα έχουν τη μορφή

((Ε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) και (Ε3,Θ3,Δ3) και να μη υπάρχει στο (Ε2,Θ2,Δ2)
  • Ή το (ε,θ,δ) να υπάρχει στα (Ε2,Θ2,Δ2) και (Ε3,Θ3,Δ3) και να μη υπάρχει στο (Ε1,Θ1,Δ1)
5) Ν=3. Ισοδυναμεί με το:

Το (ε,θ,δ) να υπάρχει στα (Ε1,Θ1,Δ1), (Ε2,Θ2,Δ2) και (Ε3,Θ3,Δ3)

Θα πρότεινα αντί να έχεις τα πεδία (Ε1, Θ1, Δ1), (Ε2, Θ2, Δ2), (Ε3, Θ3, Δ3) στον πίνακα [Κατάστημα] να δημιουργήσεις ένα νέο πίνακα με πεδία ID (αυτόματης αρίθμησης) ΚατάστημαID (ακέραιος θα συνδέεται με το Αναγνωριστικό του πίνακα Κατάστημα) και Ε, Θ, Δ.
Η ΒΔ θα γίνει πιο ευέλικτη και η εφαρμογή των κριτηρίων θα απλοποιηθεί.

Καλή συνέχεια.
Απάντηση με παράθεση
  #15  
Παλιά 19-10-16, 10:36
KTL Ο χρήστης KTL δεν είναι συνδεδεμένος
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 30-07-2015
Μηνύματα: 10
Προεπιλογή

Καλημέρα Γιώργο,

Μόνο και μόνο που κάθισες και έγραψες τόσο αναλυτικά τόσα πράγματα σε χίλιο-ευχαριστώ!
Θα τα μελετήσω για να δω τι μπορώ να κάνω.

Τελευταία επεξεργασία από το χρήστη KTL : 19-10-16 στις 15:31.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός 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.