Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 26-02-11, 13:10
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού 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.
Απάντηση με παράθεση