Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Φόρμα Αναζήτησης (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/4288-forma-anazitisis.html)

KTL 20-09-16 10:42

Φόρμα Αναζήτησης
 
1 Συνημμένο(α)
Αγαπητοί φίλοι γεια σας,

Προσπαθώ να φτιάξω μια φόρμα αναζήτησης για μια βάση δεδομένων με αρκετά κριτήρια. Δυστυχώς έχω φτάσει μέχρι ένα σημείο και δεν δουλεύει η φόρμα αναζήτησης.
Θα μπορούσε κάποιος να με βοηθήσει;
Παραθέτω ένα μικρό παράδειγμα μιας απλής βάσης.

Ευχαριστώ.

dimitrisp 20-09-16 17:35

1 Συνημμένο(α)
Βασίλη Καλησπέρα.

Δες το συνημμένο...

Άλλαξα δύο κριτήρια του ερωτήματός σου (στα πεδία: Διαθέσιμο και Ελαττωματικό σε "True or False") και η φόρμα αναζήτησης λειτουργεί κανονικά.

Ελπίζω να σε βοήθησα.

KTL 20-09-16 22:01

Σ' ευχαριστώ πολύ Δημήτρη για τον χρόνο σου.

Άνοιξα το αρχείο που επισυνάπτεις, αλλά δε δουλεύει η αναζήτηση...
Στα πεδία: Διαθέσιμο και Ελαττωματικό που άλλαξες, πως θα παίρνει τώρα τα δεδομένα που εισάγω στη φόρμα αναζήτησης, αφού δε συνδέονται με τα αντίστοιχα πεδία της φόρμας;
Χρησιμοποιώ Access 2016, αν βοηθάει αυτό.

Meteora 21-09-16 16:37

1 Συνημμένο(α)
Καλησπέρα Βασίλη,

Άνοιξε το ερώτημα και κάνε στα υπόλοιπα πεδία, ό,τι έκανα στο πεδίο [μέγεθος].

Καλή συνέχεια ...

Νίκος

kapetang 21-09-16 17:29

1 Συνημμένο(α)
Καλησπέρα

Μια άλλη πρόταση στη συνημμένη ΒΔ.

Πατώντας το κουμπί της φόρμας ανοίγει το ερώτημα qrySearch και εμφανίζει μόνο τις εγγραφές που ικανοποιούν τα κριτήρια.

Στη φόρμα άλλαξα τα κουμπιά επιλογής με CheckBoxes, και τα διαμόρφωσα ώστε να παίρνουν 3 τιμές (True, False, Null).

Τα πεδία της φόρμας που έχουν τιμές Null δε συμμετέχουν στα κριτήρια.

Αυτός είναι και ο λόγος που έδωσα στα CheckBoxes τη δυνατότητα και της Null τιμής, ώστε να έχει τη δυνατότητα ο χρήστης να τα εξαιρεί από την αναζήτηση.

Φιλικά/Γιώργος

KTL 21-09-16 21:13

1 Συνημμένο(α)
Καλησπέρα και στους δυο σας.

Σας ευχαριστώ πολύ για την πολύτιμη βοήθειά σας.
Δήμητρα δοκίμασα την δική σου εκδοχή όπως επίσης και την εκδοχή του Γιώργου.
Όλα καλά όταν εισάγουμε όλα τα δεδομένα στα πεδία.
Όμως όταν αφήσουμε ένα πεδίο χωρίς τιμή (π.χ. το κόστος) και εισάγουμε δεδομένα στα υπόλοιπα πεδία, στην αναζήτηση δεν εμφανίζεται αυτή η εγγραφή...
Κανονικά θα έπρεπε να εμφανιζόταν από την στιγμή που κάνουμε αναζήτηση π.χ. με το μέγεθος "Μ", άσχετα αν δεν έχει τιμή το κόστος διότι στην ουσία αναζητούμε όλα τα μεγέθη "Μ" που υπάρχουν στην βάση.

Θα μπορούσε σε τέτοιου είδους αναζητήσεις να περιλαμβάνει και αυτές τις εγγραφές;

Επισυνάπτω την ΒΔ με την επιπλέον εγγραφή.

kapetang 21-09-16 22:00

1 Συνημμένο(α)
Βασίλη δοκίμασε το συνημμένο

KTL 21-09-16 22:27

Γιώργο είσαι καταπληκτικός!
Δουλεύει τώρα μια χαρά!

Σ' ευχαριστώ πάρα πολύ!

kapetang 21-09-16 22:42

1 Συνημμένο(α)
Βασίλη στο συνημμένο πρόσθεσα ακόμα ένα ερώτημα και το αντίστοιχο κουμπί στη φόρμα.

Νομίζω ότι αυτό σε καλύπτει καλύτερα.

KTL 22-09-16 08:08

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

Όντως το δεύτερο ερώτημα με καλύπτει πλήρως.

Σ' ευχαριστώ πολύ για τον χρόνο σου.

KTL 18-10-16 11:11

1 Συνημμένο(α)
Καλημέρα σας,

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

Θα μπορούσε να γίνει κάτι ώστε η "Αναζήτηση" να δουλεύει σωστά και με τις τιμές 0 του πεδίου "Δυσκολία_Επισκευής";

kapetang 18-10-16 17:24

1 Συνημμένο(α)
Καλησπέρα

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

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

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

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

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

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

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

Φιλικά/Γιώργος

KTL 18-10-16 19:14

1 Συνημμένο(α)
Καλησπέρα Γιώργο,

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

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

Αυτό ήθελα να διορθώσω και δε μπορώ να τα καταφέρω...

kapetang 19-10-16 10:18

Καλημέρα

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

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

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

Για την καταχώρηση των χαρακτηριστικών των ελαττωμάτων χρησιμοποιούνται 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 (ακέραιος θα συνδέεται με το Αναγνωριστικό του πίνακα Κατάστημα) και Ε, Θ, Δ.
Η ΒΔ θα γίνει πιο ευέλικτη και η εφαρμογή των κριτηρίων θα απλοποιηθεί.

Καλή συνέχεια.

KTL 19-10-16 10:36

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

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


Η ώρα είναι 19:41.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2