Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ŞCØRPIØN-X3 en 1 Abril 2011, 00:40 am



Título: Problemas al buscar en un datagrid [SOLUCIONADO]
Publicado por: ŞCØRPIØN-X3 en 1 Abril 2011, 00:40 am
Wenas a todos :D, tengo un problemita al buscar un nombre en un datagrid, les explico, en el datagrid hay muchos nombres y le puse un textbox(text1) para que busque mientras escribo. El codigo que uso es el siguiente:

Código:
Private Sub Text1_Change()
On Error Resume Next
    Dim cBuscar As String
    If Text1.Text = "" Then Exit Sub
    cBuscar = "Cliente like '" & Text1.Text & "*'"
    rs2.MoveFirst
    rs2.Find (cBuscar)
    End If
End Sub

bueno el problema que tengo con este code es que si busco una palabra, no puedo pasar al siguiente valor que tenga esa palabra, es decir busco por ejemplo a "Martin", cuando lo encuentra no se como hacer para que busque otro mas que cumpla con las condiciones.
 Si tengo a uno que esta agregado como "Martinez" y yo quiero buscar a "Martin", pongo "Martin" en el buscador y me encuentra a "Martin ez" y no se como hacer para que busque otras opciones.  :(
  Otra cosa que necesito es que si se puede hacer que cuando busque un nombre lo busque en todo el "valor" mejor. Por ejemplo si hay una persona agregada como "Martinez Juan" y yo busco a "Juan" que igual lo encuentre sin importar el orden, no siempre el orden es Apellido / Nombre, es depende como lo agregen xD

Aclaración: un code que busque palabras exactas no me sirve porque las personas estan agregadas por nombre / apellido y cuando busco a esa persona no pongo el nombre y el apellido sino que busco por el nombre o por el apellido.

Perdon por mi explicación, no es muy buena  :-[ ojala que entiendan.

Gracias de antemano :D, Espero su respuesta. Saludos


Título: Re: Problemas al buscar en un datagrid
Publicado por: seba123neo en 1 Abril 2011, 01:10 am
es por la forma que usas el LIKE, debes encerrarlo en %% para que te busque en cualquier parte de la palabra, algo asi:

Código
  1. cBuscar = "Cliente LIKE '%" & Text1.Text & "%'"

aparte no deberias usar Find, sino Filter, ya que Find solo encuentra el primer registro, y Filter te filtra el Recordset entero segun el filtro, aparte permite multiples busquedas con AND o con OR, y el Find solo permite una condicion.

saludos.


Título: Re: Problemas al buscar en un datagrid
Publicado por: ŞCØRPIØN-X3 en 1 Abril 2011, 02:16 am
muchas gracias por responder  ;D, acabo de probar para que encuentre en cualquier parte de la palabra y funciona muy bien :D. Pero todavia me queda una duda al usar filter me mostrara solo los que tengan esa palabra y no los demas no es asi?, de ser asi no abra otra forma de buscar para que me muestre uno por uno que tengan esa palabra y no solo el primero?. Muchisimas gracias de nuevo  ;D


Título: Re: Problemas al buscar en un datagrid
Publicado por: seba123neo en 1 Abril 2011, 04:59 am
mira tenes 2 formas.

1 - usar el Find, pero como te dije este solo acepta una sola condicion a la vez y aparte solo busca el primero que coincida, y para buscar otro que coincida con esa condicion tenes que buscar de nuevo, ya que la busqueda es para adelante.

aca tenes un ejemplo usando Find:

Buscar en un DataGrid (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/326-buscar-en-un-datagrid.htm)

2 - Usar el Filter (la que recomiendo), aparte de aceptar multiples condicones en la busqueda, te va mostrando en la grilla los que van coincidiendo, ya que este no busca solo el primero, sino que busca en todo el recordset. aca tenes un ejemplo terriblemente facil.

Filtrar datos en un DataGrid (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/175-filtrar-datagrid-con-ado.htm)

cualquier duda postea..

saludos.


Título: Re: Problemas al buscar en un datagrid
Publicado por: ŞCØRPIØN-X3 en 1 Abril 2011, 20:34 pm
muchisimas gracias ahora lo pruebo, lo del filter si lo se hacer pero lo uqe pasa es que me los muestra en una grilla en blanco todos los que coinciden y no me muestra las demas entradas que no coinciden. Ahora lo preubo y te digo, muchas gracias  ;D


Título: Re: Problemas al buscar en un datagrid
Publicado por: ŞCØRPIØN-X3 en 1 Abril 2011, 21:17 pm
Ya lo probe anda muy bien, use el find numas, lo modifique un poco y quedo :D muchas gracias de nuevo


Título: Re: Problemas al buscar en un datagrid [SOLUCIONADO]
Publicado por: R@mi en 4 Abril 2011, 17:11 pm
yo, lo que ice fue: busca, si detecta que el usuario ya busco una vez pongo rst.movenext y busco el siguiente ;)