Visual Basic - Filtro de Fechas

Life is soft - evento anual de software empresarial
   
Vista:

Filtro de Fechas

Publicado por Andrea (1 intervención) el 04/06/2011 01:46:41
Buenas Noches Amigos,

En VB tengo un MSFLEXGRID llamado grilla, 2 DTPicker un es fecha inicio y el otro fecha final, y ademas un boton llamado btnVer. Mi problema es que de 10 registros que tengo solo me esta filtrando uno. Agradezco quien me pueda ayudar. El siguiente es mi Codigo:

Private Sub btnVer_Click()

f = 1

tot = 0

totg = 0

If dtpFechaInicio.Value > Date Or dtpFechaFin.Value > Date Then

MsgBox "Las Fechas de los Rangos no pueden ser mayores a la fecha actual", vbInformation, "an"

Else

If dtpFechaInicio.Value <= dtpFechaFin.Value Then

grilla.Clear

grilla.TextMatrix(0, 0) = "No. Factura"

grilla.TextMatrix(0, 1) = "Fecha"

grilla.TextMatrix(0, 2) = "Codigo"

grilla.TextMatrix(0, 3) = "Cliente"

adomov.Refresh

adomov.Recordset.Filter = "fecha >= #'" & dtpFechaInicio & "# and fecha <= #'" & dtpFechaFin & "#"



grilla.Rows = adomov.Recordset.RecordCount + 1

If Not adomov.Recordset.EOF And Not adomov.Recordset.BOF Then

adomov.Recordset.MoveFirst



grilla.TextMatrix(f, 0) = adomov.Recordset!nrofactura

grilla.TextMatrix(f, 1) = adomov.Recordset!Fecha

grilla.TextMatrix(f, 2) = adomov.Recordset!codigo

grilla.TextMatrix(f, 3) = adomov.Recordset!vendido_a


Else

MsgBox "No hay Datos para mostrar", vbInformation, "an"

End If

Else

MsgBox "La Fecha de Inicio deber ser menor o igual que la Fecha de Finalización", vbInformation, "an"

End If

End If

End Sub

Private Sub Form_Load()

grilla.TextMatrix(0, 0) = "No. Factura"

grilla.TextMatrix(0, 1) = "Fecha"

grilla.TextMatrix(0, 2) = "Codigo"

grilla.TextMatrix(0, 3) = "Cliente"



dtpFechaInicio.Value = Date

dtpFechaFin.Value = Date

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Filtro de Fechas

Publicado por Paolo Santos (74 intervenciones) el 04/06/2011 17:46:25
bueno, espero ayudarte dando unas posibles soluciones, en primer lugar veo un error de colocar parte del string de filtrado entre apostrofes (') asi que en lugar de esto:

adomov.Recordset.Filter = "fecha >= #'" & dtpFechaInicio & "# and fecha <= #'" & dtpFechaFin & "#"

deberia de quedarte asi:

adomov.Recordset.Filter = "fecha >= #" & dtpFechaInicio & "# and fecha <= #" & dtpFechaFin & "#"

despues de esto le propongo otras 3 posibles soluciones:

"fecha in #" & dtpFechaInicio & "# to #" & dtpFechaFin & "#"

"fecha >= #" & format$(dtpFechaInicio,"dd/mm/yyyy") & "# and fecha <= #" & format$(dtpFechaFin,"dd/mm/yyyy") & "#"

"fecha in #" & format$(dtpFechaInicio,"dd/mm/yyyy") & "# to #" & format$(dtpFechaFin,"dd/mm/yyyy") & "#"

espero que mas de alguna sea la solucion a tu problema, de hayar la solucion te suplicamos nos indiques cual fue, de lo contrario algun otro experto te podra ayudar.

saludos.....



------------------------------------------------------------------------------------------------------------------------------------
Recuerda: agradecer no cuesta nada, pero al menos, favor de informar si esto fue la solución, para que otros programadores tenga seguridad de la posible solucion, para aplicarlos
con mayor seguridad a sus proyectos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtro de Fechas

Publicado por apacheco (63 intervenciones) el 15/06/2011 15:05:30
Yo suelo utilizar si hay 2 fechas como parece ser obligatorio

adomov.Recordset.Filter = "fecha BETWEEN CDate(%" & Format(dtpFechaInicio,"dd/mm/yyyy") & "%) AND CDate(%" & dtpFechaFin & "%) "

Sustituye % por la comilla simple. o he puesto para que se pueda ver
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar