Tratamiento de fechas con # y sin #
Publicado por La Flash (4 intervenciones) el 03/04/2009 02:59:03
Que tal a todos.
Espero esten bien.
Acudo a este foro por que tengo una gran duda y espero me puedan ayudar.
Estoy trabajando con un reporte. Es bastante sencillo, solo me conecto a una base de datos de MS SQL, hago mi consulta y genero el reporte.
Tengo una pequenia interfaz donde pido una fecha de inicio y una fecha final.
Necesito crear un arreglo, el tamanio sera dependiendo del numero de dias que haya entre la fecha de inicio y la fecha final.
Para determinar el numero de dias, uso la funcion DateDiff, pero veo que tiene un comportamiento medio extranio.
Primero hice una prueba con esta funcion, de la siguiente forma:
Sub fechoria()
Dim f1 As Date
Dim f2 As Date
Dim nd As Integer
f1 = #3/30/2009#
f2 = #4/5/2009#
nd = CInt(DateDiff("D", CDate(f1), CDate(f2)) + 1)
MsgBox nd
End Sub
El valor de nd me da 7
Ahora, quiero implementar esto en mi rutina real, y es donde me encuentro en problemas. Mi procedimiento recibe como parametros fecha1 y fecha2 as Date, cuando quiero applicar
nd = CInt(DateDiff("D", CDate(f1), CDate(f2)) + 1), el valor de nd ya no me dio 7 (en el supuesto que los valores de los parametros son los mismos que en mi ejercicio anterior), sino que me dio 36!!!
Yo se lo atribuyo al hecho de que en mi primer ejercicio, encerre los valores de f1 y f2 entre ##, por que son valores constantes, pero en mi procedimiento real, no se como darles ese manejo.
Me pueden ayudar??
Gracias de antemano
Espero esten bien.
Acudo a este foro por que tengo una gran duda y espero me puedan ayudar.
Estoy trabajando con un reporte. Es bastante sencillo, solo me conecto a una base de datos de MS SQL, hago mi consulta y genero el reporte.
Tengo una pequenia interfaz donde pido una fecha de inicio y una fecha final.
Necesito crear un arreglo, el tamanio sera dependiendo del numero de dias que haya entre la fecha de inicio y la fecha final.
Para determinar el numero de dias, uso la funcion DateDiff, pero veo que tiene un comportamiento medio extranio.
Primero hice una prueba con esta funcion, de la siguiente forma:
Sub fechoria()
Dim f1 As Date
Dim f2 As Date
Dim nd As Integer
f1 = #3/30/2009#
f2 = #4/5/2009#
nd = CInt(DateDiff("D", CDate(f1), CDate(f2)) + 1)
MsgBox nd
End Sub
El valor de nd me da 7
Ahora, quiero implementar esto en mi rutina real, y es donde me encuentro en problemas. Mi procedimiento recibe como parametros fecha1 y fecha2 as Date, cuando quiero applicar
nd = CInt(DateDiff("D", CDate(f1), CDate(f2)) + 1), el valor de nd ya no me dio 7 (en el supuesto que los valores de los parametros son los mismos que en mi ejercicio anterior), sino que me dio 36!!!
Yo se lo atribuyo al hecho de que en mi primer ejercicio, encerre los valores de f1 y f2 entre ##, por que son valores constantes, pero en mi procedimiento real, no se como darles ese manejo.
Me pueden ayudar??
Gracias de antemano
Valora esta pregunta


0