Gambas3: Ejemplo de autocompletado usando bases de datos
Os dejo aqui un pequeño ejemplo de como hacer un autocompletado de datos mientras se esta rellenando los textbox de un formulario. Se basa en que cada vez que escribo en el textbox, se produce un evento _keypress(), que añade la letra pulsado (key.text) al textbox.Capturando esa tecla y el contenido del texbox, y pasandola a una consulta de la base de datos, extraido los datos "parecidos" (usando la orden like de SQL), del campo "nombre" de la tabla "personas", y los cargo al listbox.
Código fuente: evento _KeyPress() del textbox
Public Sub TextBoxNombre_KeyPress()
'cada vez que se escriba una letra, carga el contenido del listbox
If IsLetter(Key.text)
cargalisbox(TextBoxNombre.text & Key.Text)
Else
If Key.code = 16777219 Then
'pulsado la tecla de suprimir
cargalisbox(Mid$(TextBoxNombre.text, 1, Len(TextBoxNombre.text) - 1))
Endif
Endif
End
Carga de datos en el listbox:
Public Sub cargalisbox(texto As String)
resultado = BaseDAtos.Consulta(texto)
ListBox1.Clear
While resultado.Available
ListBox1.Add(resultado["nombre"])
resultado.MoveNext
Wend
End
Consulta a la base de dato que devuelve un result:
Public Sub Consulta(letras As String) As Result
Dim $Query As String
Dim nombredetabla As String = "personas"
Dim nombreDeCampo As String = "nombre"
$Query = "SELECT * FROM " & nombredetabla & " WHERE " & nombredecampo & " like '%" & letras &"%'"
$result = $Con.Exec($Query)
If Error Then
Message.Error("Problemas al realizar la consulta")
Else
Return $result
Endif
End
Aqui teneis un video donde explico el procedimiento:
Enlace de descarga del código completo: alojado en google drive
No hay comentarios:
Publicar un comentario