busqueda progresiva
Necesito realizar una busqueda progresiva desde un text.
lo que quiero es especificamente que cuando escriba una letra en el text,
en seguida me actualice una lista de todos los temas que inicien con esa letra.... como los temas de ayuda.
lo que quiero es especificamente que cuando escriba una letra en el text,
en seguida me actualice una lista de todos los temas que inicien con esa letra.... como los temas de ayuda.
El evento keypress es el que necesitas para recoger la tecla que te han pulsado, dentro de este evento vas concatenando las teclas en una variable local, por lo que ya lo tienes en una cadena y pasas este cadena a la rutina que te busca, si es una orden SQL para una base de dato una la orden LIKE.
Espero haberte ayudado.
Espero haberte ayudado.
Te envío una posibilidad que me enviaron para ir autocompletando un combo, no se si te sirva.
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_SHOWDROPDOWN = &H14F
Private Const CB_GETDROPPEDSTATE = &H157
Private Const CB_FINDSTRING = &H14C
Private Sub Combo1_Change()
Dim lenOldText As String
lenOldText = Len(Combo1.Text)
Combo1.ListIndex = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal Combo1.Text)
Combo1.SelStart = lenOldText
Combo1.SelLength = Len(Combo1.Text)
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 13 Then
If SendMessage(Combo1.hwnd, CB_GETDROPPEDSTATE, 0, 0) = False Then
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, 0
Combo1.Text = ""
End If
If KeyAscii = 8 Then Combo1.Text = ""
End If
End Sub
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_SHOWDROPDOWN = &H14F
Private Const CB_GETDROPPEDSTATE = &H157
Private Const CB_FINDSTRING = &H14C
Private Sub Combo1_Change()
Dim lenOldText As String
lenOldText = Len(Combo1.Text)
Combo1.ListIndex = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal Combo1.Text)
Combo1.SelStart = lenOldText
Combo1.SelLength = Len(Combo1.Text)
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 13 Then
If SendMessage(Combo1.hwnd, CB_GETDROPPEDSTATE, 0, 0) = False Then
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, 0
Combo1.Text = ""
End If
If KeyAscii = 8 Then Combo1.Text = ""
End If
End Sub
