Aggiornamento listbox da test box

di Anonimizzato12251 il
10 risposte
Buongiorno a tutti
access 2013 64bit
In una maschera ho una casella di testo che serve a filtrare i dati di una list box
su evento "Sumodifica" della test box ho trovato questo codice:

DoCmd.RunCommand acCmdRefresh
SendKeys "{F2}", True

vorrei eliminare il sendkeys e sostituirlo con un requery della listbox, ma se inserisco il codice

Me.Elenco60.Requery
DoCmd.RunCommand acCmdRefresh

fa correttamente il requery della listbox ma mi lascia selezionato il testo inserito nella casella di testo, non potendo così continuare a scrivere

Avete una soluzione?
Grazie mille a tutti
Buona giornata

10 Risposte

  • Me.Elenco60.Requery
    DoCmd.RunCommand acCmdRefresh
    forse il secondo rigo non ti serve.
    Oppure, io non sceglierei l'evento "Su modifica". Prova con "Dopo aggiornamento" per esempio...
  • Puoi spiegare meglio ad esempio che origine Riga ha la ListBox...?
    Questo perchè di norma... su Evento Change o KeyPress della TextBox si legge il contenuto e si costruisce la WHERE condition per filtrare i dati... e di solito servono 2 righe di codice per fare tutto ma non lo vedo nel tuo esempio... quindi ipotizzo che nella ListBox sia già prevista una WHERE riferita alla TextBox... cosa che però io non farei...
  • andrea.corciano ha scritto:


    lascia selezionato il testo inserito nella casella di testo, non potendo così continuare a scrivere
    Perché nella casella di testo non riesci a scrivere? che cosa dovresti scrivere? cosa avevi scritto prima?
  • @Alex ha scritto:


    Puoi spiegare meglio ad esempio che origine Riga ha la ListBox...?
    Questo perchè di norma... su Evento Change o KeyPress della TextBox si legge il contenuto e si costruisce la WHERE condition per filtrare i dati... e di solito servono 2 righe di codice per fare tutto ma non lo vedo nel tuo esempio... quindi ipotizzo che nella ListBox sia già prevista una WHERE riferita alla TextBox... cosa che però io non farei...
    Grazie per la risposta
    la textbox non ha origine riga
    nella listbox c'è una select con condizioni in 4 diversi campi del tipo "Like "*" & [forms]![miaform]![Textbox] & "*"

    Io pensavo di passare la rowsource alla listbox, sull'evento "change", ma mi sto' "incartando" un pò con il codice:

    Dim cerca As String
    cerca = Nz(Me!Textbox.Text, "")
    'Me!listbox.RowSource = "SELECT query_1.* FROM query_1 " & "WHERE [campo1] Like " * " & " & Cerca & " * """

    ma mi restituisce dati non corrispondenti

    Grazie
  • Philcattivocarattere ha scritto:


    andrea.corciano ha scritto:


    lascia selezionato il testo inserito nella casella di testo, non potendo così continuare a scrivere
    Perché nella casella di testo non riesci a scrivere? che cosa dovresti scrivere? cosa avevi scritto prima?
    non riesco nel senso che il testo nella textbox è selezionato, e se digito una lettera si sostituisce a quel testo
  • OsvaldoLaviosa ha scritto:


    Me.Elenco60.Requery
    DoCmd.RunCommand acCmdRefresh
    forse il secondo rigo non ti serve.
    Oppure, io non sceglierei l'evento "Su modifica". Prova con "Dopo aggiornamento" per esempio...
    grazie per la risposta
    "dopo aggiornamento" non posso perchè il risultato della listbox deve cambiare ad ogni singolo carattere inserito nella textbox
  • Test box ??
  • oregon ha scritto:


    Test box ??
    scusatemi ... è un errore di digitazione volevo intendere textbox .... ma alcune dritte le ho ricevute e ci lavoro su ... grazie per avermelo fatto notare!
  • Polemiche a parte..
    per il cliente che aveva fretta ho risolto così:

    Private Sub Testo Change()
    DoCmd.RunCommand acCmdRefresh
    Me.Elenco.Requery
    Me.Testo.SetFocus
    Me.Testo.SelLength = 0
    Me.Testo.SelStart = Nz(Len(Me.Testo), 0)
    End Sub

    e per questo ringrazio "Philcattivocarattere" ....però correi capire meglio come passare la rowsource ...
    Alex che ne dici?

    ci provo e se può interessare a qualcuno la posterò.
    grazie
    buona serata
Devi accedere o registrarti per scrivere nel forum
10 risposte