SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: webflash en Sábado 23 de Mayo de 2009, 06:26
-
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
-
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
-
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