https://foro.gambas-es.org/viewtopic.php?f=1&t=63&p=207#p207
-----------------------------------
soplo
Jueves, 24 Septiembre 2009, 22:47

Re: Evitar Letras En Textbox
-----------------------------------
Pues es muy sencillo. 

Imagina un gridview o cualquier otro control que muestra el contenido de una tabla.
Ahora imagina un textbox en el que quieres escribir y que según vayas escribiendo se vaya filtrando. 

Por abreviar pensemos en una conexión activa.

[code linenumbers=false]sub textbox_change
Dim Rs as result

if textbox.text then ---> que haga esto si en el textbox hay algo
   Rs=Cn.exec("select * from tabla where campo like '" & textbox.text & "%' order by lo_que_sea")
else
   Rs=Cn.exec("select * from tabla order by lo_que_sea")
endif

LlenarGrid(Rs) ---> procedimiento que llena el gridview
end sub[/code]

Ese evento tal como está puesto filtra todo aquello que EMPIECE POR lo que has escrito en el textbos. También podemos hacer que en vez de EMPEZAR POR filtre los registros que CONTENGAN lo que has escrito.
[code linenumbers=false]sub textbox_change
Dim Rs as result

if textbox then ---> que haga esto si en el textbox hay algo
   Rs=Cn.exec("select * from tabla where campo like '%" & textbox.text & "%' order by lo_que_sea")
else
   Rs=Cn.exec("select * from tabla order by lo_que_sea")
endif

LlenarGrid(Rs) ---> procedimiento que llena el gridview
end sub
[/code]En este caso según tu vas escribiendo algo en el textbos se van filtrando en el gridview los registros cuyo campo contiene lo que has escrito.

En mysql el % es un comodín para varios caracteres. No se cual es en sqlite quizá sea el mismo o no, pero en cualquier caso se entiende lo que digo.

Otra posibilidad que funciona igual es la propiedad filter del datasource por ejemplo.

[b]Otro caso que te propongo[/b]
El caso anterior no es una buena solución cuando hay muchos registros porque tarda en generar el result (es cuestión de probar), pero lo que si es eficiente es en vez de generar result nuevos buscar en una tabla.

Osea que tu tienes un grid con un montón de datos y tienes un textbox y cuando escribes algo te busca y se posiciona en el primer registro que cumple esa condición. Yo suelo poner un botón adicional que es para buscar siguiente y lo que hace es buscar el siguiente registro que cumpla esa misma condición.

 :mryellow:


