Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    VB6 - Aggiorna troppo veloce!

    Ciao a tutti, per l'ennesim volta ho bisogno di aiuto.
    Sulla mia bella datagrid ho inserito sopra un campo text di ricerca automatica, che cerca in automatico nella grid, senza dover premere il bottone
    Ho quindi creato un timer a 500 millisecondi strutturato cosi
    se campo ricerca è vuoto allora la query per la grid è
    -
    select * from clienti
    altrimenti
    select from clienti where cognome LIKE ricerca.text
    -
    La ricerca funziona in modo magnifico, ma a causa dell'alta frequenza di aggiornamento non riesco a muovere le freccie della datagrid per scorrere il testo
    Aggiorna cosi velocemente che subito riporta la grid al testo iniziale, in pratica non posso scorrerla
    Sapete delle buone idee per ovviare questo errore?

  2. #2
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    io collegherei il tuo codice (la tua query) all'evento change del text e non ad un timer..
    così facendo esegue una ricerca solo quando il text cambia e non sempre e comunque.
    ricorda che i timer sono molto pesanti da gestire.. usane con parsimonia!
    Ciao
    Andrea

  3. #3
    Forse... mi sembra di aver capito che il timer è sempre attivo. Quindi continuerà comunque ogni mezzo secondo ad aggiornarti il datagrid e di conseguenza a spostare il cursore. Se fosse così, dovresti stabilire un criterio per disabilitare il timer.
    Anzichè utilizzare il timer, potresti utilizzare textbox_Change. Quando modifichi il campo da cercare fai partire una nuova query.


  4. #4
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    beh..
    e che avevo scritto io?
    mah..
    :master:

    ciao
    Ciao
    Andrea

  5. #5
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Con il sistema che suggerite, però, se cerca una stringa da 10 chr,
    partiranno 10 select nel tempo che lui digita la stringa (sempre che
    la textbox non perda il focus ad ogni aggoirnamento della DBGrid).

    Un'idea sarebbe quella di aspettare la digitazione di un carattere
    particolare per lanciare la select, magari l'invio, sempre,
    ovviamente nel Change.

    Ciao,
    Ciao, Brainjar

  6. #6
    Oups, hai ragione, perde il focus, non si riesce nemmeno a scrivere!

    PS: Gugu, guarda l'ora delle risposte... non credi che l'abbiamo scritte + o - contemporaneamente? No problem...

  7. #7
    Grazie del consiglio, proverò il text change!
    l'evento come si scrive?
    private sub text1_change?

  8. #8
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Se fai doppio click sulla textbox ti si apre la finestra di
    progettazione sul TextBox1_Change automaticamente.

    Ciao,
    Ciao, Brainjar

  9. #9
    Ottimo, stasera provo a casa e vi dico

  10. #10
    Tutto ok il comando funziona alla perfezione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.