• Viernes 26 de Abril de 2024, 20:24

Autor Tema:  no puedo filtrar fecha tomada de bDatos  (Leído 1892 veces)

webflash

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
no puedo filtrar fecha tomada de bDatos
« en: Sábado 23 de Mayo de 2009, 06:26 »
0
De antemano gracias por leer este mensaje de ayuda.
Hola me gustaría poder mostrar en un MsFlexGrid las fechas de cumpleaños,  mejor dicho las personas que cumplen años en el día. Probé de todo un poco pero no logro dar con el problema.
Hay que darle forma dd/mm sacando el año para que pueda mostrar los que cumplen hoy. No?
Ahora el código de esta forma

Set TablaCumpleaños = MiBase.OpenRecordset("select CliCod, CliNom, CliDir, CliLoca, CliEmail, CliFecha from tClientes ")
i = 1
TablaCumpleaños.MoveFirst
 
   While TablaCumpleaños.EOF = False
       
        flex.TextMatrix(i, 0) = TablaCumpleaños!clicod
        flex.TextMatrix(i, 1) = TablaCumpleaños!clinom
        flex.TextMatrix(i, 2) = TablaCumpleaños!CliDir
        flex.TextMatrix(i, 3) = TablaCumpleaños!CliLoca
        flex.TextMatrix(i, 4) = TablaCumpleaños!CliEmail
        flex.TextMatrix(i, 5) = TablaCumpleaños!CliFecha
         i = i + 1
        flex.AddItem ("")
        TablaCumpleaños.MoveNext
     Wend
 
 Antes trataba de hacer la consulta con where pero cundo realizaba el filtrado daba error.
Codigo:
FechaHoy = Format(Date, "dd/mm")

Set TablaCumpleaños = MiBase.OpenRecordset("select CliCod, CliNom, CliDir, CliLoca, CliTel, CliEmail, CliFecha from tClientes where CliFecha = " & FechaHoy & ";")

Y probé con esta forma de consulta y no sale nada en el msflexgrid.
Set TablaCumpleaños = MiBase.OpenRecordset("select CliCod, CliNom, CliDir, CliLoca, CliEmail, CliFecha from tClientes where " & Format(TablaCliente("CliFecha"), "dd/MM") & " = " & FechaHoy & ";")

Si en la consulta quito todo lo que esta después de where o realizo otro tipo de filtrado, que no sea el de mostrar todas las fechas (días/meses) igual a Date, el msflexgrid muestra todos los registros.

Agradecería si me pudiera guiarme en este tema
Saludos Marcelo

webflash

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: no puedo filtrar fecha tomada de bDatos
« Respuesta #1 en: Domingo 24 de Mayo de 2009, 03:59 »
0
Solucionado
Un Amigo me comento que trabajara con bucles anidados, probé y salio
No se si será la forma mas prolija pero en el MsFlex carga solo los registros que tienen fecha de Nacimiento 23/05

 Do While TablaCliente.EOF = False
    Do While TablaCliente.EOF = False
      FechaCumple = ""
      FechaCumple = Format(TablaCliente("CliFecha"), "dd/MM")
      If FechaHoy = FechaCumple Then
        flex.TextMatrix(i, 0) = TablaCliente!clicod
        flex.TextMatrix(i, 1) = TablaCliente!clinom
        flex.TextMatrix(i, 2) = TablaCliente!CliDir
        flex.TextMatrix(i, 3) = TablaCliente!CliLoca
        flex.TextMatrix(i, 4) = TablaCliente!CliEmail
        flex.TextMatrix(i, 5) = TablaCliente!CliFecha
         i = i + 1
        flex.AddItem ("")
        TablaCliente.MoveNext
        Else
        TablaCliente.MoveNext
        Exit Do
        End If
        Loop
   Loop

Por cualquier consulta estoy a la orden
saludos

webflash

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: no puedo filtrar fecha tomada de bDatos
« Respuesta #2 en: Domingo 24 de Mayo de 2009, 04:31 »
0
Solucionado
Un Amigo me comento que trabajara con bucles anidados, probé y salio
No se si será la forma mas prolija pero en el MsFlex carga solo los registros que tienen fecha de Nacimiento 23/05
Do While TablaCliente.EOF = False
   Do While TablaCliente.EOF = False
...
        If FechaHoy = FechaCumple Then
....
            i = i + 1
            flex.AddItem ("")
            TablaCliente.MoveNext
        Else
            TablaCliente.MoveNext
            Exit Do
        End If
   Loop
Loop
Por cualquier consulta estoy a la orden
saludos