Popolare combobox con evento keyup

di il
6 risposte

Popolare combobox con evento keyup

Buonasera. Sono alle prese con la necessità di dover popolare una combobox " al volo" utilizzando un evento keyup da casella di testo.
il codice che ho creato è il seguente:
Private Sub txtente_rich_Keyup(KeyCode As Integer, Shift As Integer)

Dim str1 As String
Dim str As String
Dim lg As Integer

lg = Len(str1)

If KeyCode = 8 Then

    If lg = 0 Then GoTo 100
    If lg = 1 Then str1 = "": GoTo 100
    str1 = Left$(str1, lg - 1): GoTo 100
    
End If
100
str1 = str1 & Chr$(KeyCode)

str = "SELECT Denominazione_Ente FROM Ente_Richiedente WHERE Denominazione_Ente = " & str1

Form_SM_ente.cboente_rich.RowSource = str
Form_SM_ente.Requery
End Sub
Appena digito la prima lettere mi compare la finestra in cui si chiede di immettere il valore parametro.
Dopo che immetto uno dei valori contenuto nella tabella esegue il popolamento come dovrebbe.
Dove potrebbe essere l'inghippo?
Grazie.

6 Risposte

  • Re: Popolare combobox con evento keyup

    Inghippo? Quel codice non ha senso. La stringa str1 è sempre vuota all'inizio... ma che volevi fare esattamente?
  • Re: Popolare combobox con evento keyup

    Perchè vuota? Non si riempie la prima volta del primo carattere keycode che inserisco e così via? Quale sarebbe il modo corretto di riscrive il codice?
    Voglio semplicemente inserire delle stringhe attraverso la pressione di tasti e passarli alla SELECT per cercare delle parole all'interno del campo Denominazione_Ente, permettendo alla combo di restituire, in tempo reale,un valore appena trovato. Allo stesso modo appena cancello un testo non presente in tabella la combobox si svuota.
  • Re: Popolare combobox con evento keyup

    E cosi via ... no. La seconda volta la stringa torna vuota perché è una variabile locale.
  • Re: Popolare combobox con evento keyup

    Infatti hai ragione cosi via no. Cosa mi consigli?
  • Re: Popolare combobox con evento keyup

    Leggi la proprieta TEXT della combo... e componibla where con il LIKE usando il Jolly terminatore concatenato al valore della proprietà TEXT...
    
    Dim strWHR As String
    strWHR="'" & Me!nomecontrollo.text & "*'"

    Quella stringa contiene la WHERE CONDITION per filtrare i dati... quindi applica la al RowSource della combo... Non serve il requery dopo.
  • Re: Popolare combobox con evento keyup

    Ok. Ora funziona come volevo.
    Grazie.
Devi accedere o registrarti per scrivere nel forum
6 risposte