Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/02/2009, 03:11
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Buscar mientras escribo en un text

Cita:
Iniciado por fedefrankk Ver Mensaje
Hola, estoy haciendo una Agende de telefonos y lo que quiero es escribir la primer letra y que salganm todos los nombres que empiezan con esa letra, escribo la segunda letra y que salgan todos los nombres que salgan con esas letras.. lo hice y funciona, los datos me lo muestra en un flexGrid, el tema es que no me borra los datos anteriores buscascados, como se puede hacer? aca les dejo el codigo y una foto de lo buscado..
Hola, supongo que ése código está dentro del evento Change del TextBox.

Algunos comentarios:
El comodín de porcentaje (%) antes y después de la cadena a buscar, dá como resultado todas las palabras que contengan en cualquier parte lo escrito en el TextBox. Para que salgan los nombres que empiecen por esa letra, sólo se pone al final.

Cada vez que ejecutas la consulta tienes que asignar al Grid el número de filas igual al número de registros que devuelve el recordset.

La propiedad Sort del Grid la tienes que sacar del bucle (es mas, yo la pondría donde formateas el Grid).

Utilizar la instrucción "On Error Resume Next" es una mala práctica y puede dar resultados erroneos. Supongo que la pusiste ahí para que no dé error si algún campo es null. Eso lo puedes solventar concatenando el valor del campo con doble comilla.

En fin, yo dejaría el código así:

Código:
x = "Select * from contactos where nombre_apellido like '" & Text2.Text & "%'"
apertura.Open x, Conectar
MSFlexGrid1.Rows = apertura.RecordCount + 1
MSFlexGrid1.Sort = flexSortStringNoCaseAscending
i = 1
Do While Not apertura.EOF
    With MSFlexGrid1
        .TextMatrix(i, 0) = apertura!nombre_apellido
        .TextMatrix(i, 1) = apertura!domicilio
        .TextMatrix(i, 2) = apertura!tel_personal
        ' On Error Resume Next
        .TextMatrix(i, 3) = apertura!tel_comercial & ""
        .TextMatrix(i, 4) = apertura!email & ""
        .TextMatrix(i, 5) = apertura!cel & ""
        .TextMatrix(i, 6) = apertura!comentarios & ""
    End With
    i = i + 1
    apertura.MoveNext
Loop
Un saludo