La rutina de búsqueda

Esta parte ha sido la que más trabajo me ha dado de realizar, no encontraba información clara y tuve que ir tanteando hasta lograrlo, pero valió la pena.
Agregemos a fmain un botón btnbuscar y un textbox txtbuscar. Este es el nuevo aspecto de fmain.
La ubicación es a gusto de cada uno, lo que si el textbox de búsqueda debe estar al lado del botón buscar. A continuación el código:

PUBLIC SUB btnbuscar_Click()

DIM hresul AS Result
DIM Clave AS String
DIM filtro AS String
tabla.Clear

IF ConectarBase() THEN RETURN

tabla.Columns.Count = 6
tabla.Columns[0].text = “id”
tabla.Columns[0].Width = 20
tabla.Columns[0].Alignment = Align.Center
tabla.Columns[1].text = “Nombre”
tabla.Columns[1].Alignment = Align.Center
tabla.Columns[1].Width = 120
tabla.Columns[2].text = “Apellido”
tabla.Columns[2].Alignment = Align.Center
tabla.Columns[2].Width = 120
tabla.Columns[3].text = “telefono”
tabla.Columns[3].Alignment = Align.Center
tabla.Columns[3].Width = 120
tabla.Columns[4].text = “movil”
tabla.Columns[4].Width = 120
tabla.Columns[4].Alignment = Align.Center
tabla.Columns[5].text = “cumple”
tabla.Columns[5].Width = 120
tabla.Columns[5].Alignment = Align.Center
filtro = Txtbuscar.Text
hresul = hconn.Exec(“Select * from mitabla where nombre like ‘” & filtro & “‘”)

DO WHILE hresul.Available

Clave = hresul[“id”]

tabla.Add(Clave, Clave)

tabla[Clave][1] = hresul[“nombre”]
tabla[Clave][2] = hresul[“apellido”]
tabla[Clave][3] = hresul[“telefono_fijo”]
tabla[Clave][4] = hresul[“telefono_movil”]
tabla[Clave][5] = hresul[“cumple”]

hresul.MoveNext()

LOOP

cerrarconexion()

END

Es prácticamente el mismo código que carga el columview, en realidad es lo que hace , pero a diferencia del evento Form_openutiliza un filtro que condiciona la búsqueda de datos en la siguiente línea:

filtro = Txtbuscar.Text
hresul = hconn.Exec(“Select * from mitabla where nombre like ‘” & filtro & “‘”)

Asignamos a la variable filtro el valor de txt buscar y a su vez filtro lo ponemos como condición de la búsqueda. Nos muestra todos los campos que coincidan con el criterio utilizado. Pero;¿Qué pasa si no hay datos que coincidan?
Vamos a incluir una sentencia if-then -else en nuestra rutina.

filtro = Txtbuscar.Text
hresul = hconn.Exec(“Select * from mitabla where nombre like ‘” & filtro & “‘”)
IF hresul.Available = FALSE THEN

Message.Info(“No hay datos que coincidan con su búsqueda”)
form_open
ELSE

DO WHILE hresul.Available

Clave = hresul[“id”]

tabla.Add(Clave, Clave)

tabla[Clave][1] = hresul[“nombre”]
tabla[Clave][2] = hresul[“apellido”]
tabla[Clave][3] = hresul[“telefono_fijo”]
tabla[Clave][4] = hresul[“telefono_movil”]
tabla[Clave][5] = hresul[“cumple”]

hresul.MoveNext()

LOOP

cerrarconexion()
ENDIF
END

Lo que se agrega está en negrita. vemos si hresul.available es false, si es así mostramos el mensaje de error y con form_open recargamos los datos en el formulario.Si en cambio es true, seguimos con la rutina anterior para mostrar los datos filtrados.
Bien, hasta aquí llegamos en este segundo proyecto. Quizás más adelante agreguemos alguna otra funcionalidad. Saludos.

Anuncios
Esta entrada fue publicada en programación y etiquetada . Guarda el enlace permanente.

Una respuesta a La rutina de búsqueda

  1. Ivanovichenco dijo:

    Bien por tu trabajo. Gracias por tu tiempo dedicado a esta comunidad. Amigo, te pido el favor de poner tu programa del juego del cine en alguna parte para descargar pues el link que dejaste no funciona.
    Gracias.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s