Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



jueves, 12 de febrero de 2015

Gambas3: Ejemplo de autocompletado usando bases de datos


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

Saludos

Julio