
26-02-11, 13:10
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Καλημέρα Γρηγόρη!
Η λογική που έχω εφαρμόσει στο παράδειγμα μου είναι να μην μπορεί ο χρήστης να συνεχίσει
να πληκτρολογεί στο πεδίο της αναζήτησης (δεν θα έχει νόημα) όταν με το ηδη πληκτρολογημένο περιεχόμενο δεν
βρεθούν εγγραφές δηλ. όταν το αποτέλεσμα είναι 0 εγγραφές.
Για παράδειγμα:
Έστω ότι πληκτρολογείς τη λέξη "παπα".
Η αναζήτηση ελέγχει πρώτα με τη συνάρτηση DCount() αν στο ερώτημα (to Recordset της φόρμας() υπάρχουν εγγραφές που περιέχουν τη λέξη "παπα"
και αν η τιμή της DCount() είναι μεγαλύτερη από 0 τότε συνεχίζει στην εφαρμογή φίλτρου.
Διαφορετικά, αν η τιμή της DCount() είναι 0 τότε σου περνάει την αμέσως παλαιότερη τιμή του πεδίου
και δεν συνεχίζει στην εφαρμογή φίλτρου αφού δεν θα επιστρέψει κάποιες εγγραφές.
Αυτός ο έλεγχος γίνεται κάθε φορά που πληκτρολογείς ένα χαρακτήρα στην αναζήτηση.
Με απλά λόγια: Αν πληκτρολογήσεις ένα επιπλέον χαρακτήρα στο πεδίο αναζήτησης που θα δεν θα προκαλέσει την επιστροφή έστω και μιας εγγραφής, ο χαρακτήρας αυτός αφαιρείται. Θα σου πρότεινα επίσης να ελέγξεις αν έχεις κάνει τις κατάλληλες προσαρμογές στον κώδικα και στο ερώτημα.
Δεν έχει να κάνει με το πλήθος των εγγραφών.
Εμπειρικά να αναφέρω ότι ακόμα και σε 50.000 εγγραφές, η ταχύτητα αναζήτησης τρομερά γρήγορη.
Φιλικά
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 26-02-11 στις 13:29.
|