Como hacer una búsqueda por fechas en vb6.0

Buenas, espero que me puedan ayudar expertos.
Estoy haciendo un pequeño sistema, y en un form quiero hacer una búsqueda pero quiero buscarlos ponendo dos fechas.
Tengo una base de datos en Mysql y una tabla llamada alumnos, en donde tengo lo siguiente CodAlum, NombreAlum, FechaNac. Y en el formulario tengo 2 Msk una llamada txtFecI y la otra TxtFecF, un botón de comando y una grilla. Ahora al ingresar la fecha de nacimiento en la fechainicial en el txtFecI y la Fecha final TxtFecF quiero que aparezca todo los de la fecha solicitada en la grilla, la gilla se llama listado.
Mi código esta así pero solo me busca los días por ejemplo yo pongo "01/01/1990" para "01/05/2000" todos los que nacienron en esa fecha, pero en la grilla solo me muestra los días en este caso solo los del "01" y no me muestra los de la fecha anterior y me tira de fechas del 2010 y del 2009, 2008 etc...
Private sub cmdMostrar
Dim SQL As String
Dim Buscar As Integer
Listado.Clear
Listado.Rows = 0: Listado.Cols = 5: Listado.FixedCols = 0
Listado.ColWidth(0) = 1050: Listado.ColWidth(1) = 5725
Listado.ColWidth(2) = "1800": Listado.ColWidth(3) = "1800"
SQL = "SELECT CodAlum,NombreAlum,FechaNac FROM ingpacientes WHERE FechaNac BETWEEN '" & TxtFecI & "' and '" & TxtFecF & "'"
rs.Open SQL, db
With rs
If (rs.BOF And rs.EOF) Then
MsgBox "No se encuentra el alumno escrito", vbExclamation, "Busqueda de Alumnos"
End If
Do While rs.EOF = False
Listado.AddItem rs.Fields(0) & vbTab & rs.Fields(1) & vbTab & rs.Fields(2)
rs.MoveNext
Loop
If rs.State = 1 Then rs.Close
End With
end sub
Por favor si me puede ayudar. Gracias

1 Respuesta

Respuesta
1
Prueba con entregar tus fechas a la base de datos en formato:Año-Mes-Día.
Ese es el formato que usa MySql por defecto.
Avísame
Lo voy a intentar
Gracias
Gracias si me funciono, pero ahora estoy con otro problema en los textbox en donde ingreso las fechas de inicial y la fecha final, los ingreso ahora de la siguiente manera "2010/12/23" y quisiera poder ingresarlos así "23/12/2010"
Gracias.
Puedes ingresarlos como quieras. Extrae cada parte (día, mes, año) con alguna función para eso y guarda esos valores en variables respectivas.
Luego toma las variables y convierte al formato año-mes-día, para entregarlos en la consulta.
No mucho te entendí pero lo voy a intentar
En fox por ejemplo:
--------
Local ldFecha as date, lcFechaCadena as string
local lnDia as integer, lnMes as integer, lnAnno as integer
*.* Por ejemplo agarro la fecha actual en formato dd-mm-aaaa
set date dmy
ldFecha=date()
lnDia=day(ldFecha)
lnMes=month(ldFecha)
lnAnno=year(ldFecha)
lcFechaCadena=transform(lnAnno)+"/"+transform(lnMes)+"/"+transform(lnDia)
*********
Aquí, lcFechaCadena es un cadena que tiene la fecha en formato aaaa-mm-dd, diferente a como fue tomada. Esta cadena (y la otra que denota "hasta") es la que debe ser entregada a la Base de Datos MySql.
Básicamente es tomar la fecha introducida por el usuario (dd-mm-aaaa), separar los valores de esta fecha y con ellos "armar" una cadena que resulte en el formato para MySql.
Ya entendí lo voy a intentar y te cuento como me fue
Gracias
Perfecto.
Otra idea que podría ayudar es crear una función o clase que reciba fechas en un formato y devuelva fechas en el formato que deseas. Llamas a la función cada vez que la necesites.
Me avisas.
Feliz Navidad

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas