Access - Fecha VB 6.3

 
Vista:

Fecha VB 6.3

Publicado por Alejandro (4 intervenciones) el 28/10/2005 20:02:54
Hola Gente, tengo un problema con unas fechas en VB.

El tema es que estoy usando las funciones Year y Month, para extraer una fecha año mes y me doy cuenta que el access entiende las fechas con formato dd/mm/aaaa (fecha corta) y el VB entiende d.m.aa. La parte del código que estoy usando es:

... AñoMesNominas = Year(rstNominas!Fecha) & Month(rstNominas!Fecha)
AñoMesActual = Year(Date) & Month(Date)

If (Origen <> "Empleados") And (AñoMesNominas > AñoMesActual) Then
Exit Do ...

La traducción de esto es:

... 20053 = 20/03/2005 & 20/03/2005
200510 = 28/10/2005 & 28/10/2005 ...

El VB lo que haces es, quitar el 0 que debería ir delante del mes cuando tiene un solo dígito. Necesito comparar estos dos valores que intervienen en otros procesos.

Si alguien tiene la respuesta le estaré muy agradecido.
Saludos.
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

RE:Fecha VB 6.3

Publicado por Enrique (1299 intervenciones) el 28/10/2005 21:12:18
Hola:
Prueba usando la función Format en lugar de Year y Mont y además creo que deberías respetar el orden Mes / Año. Más o menos así:

MesAñoNominas = Format(rstNominas!Fecha, "mm/yyyy")
MesAñoActual = Format(Date, "mm/yyyy")

Y luego los comparas:
If (Origen <> "Empleados") And (MesAñoNominas > MesAñoActual) Then

Posiblemente tengas que cambiar la línea del If ...Then por esta otra, aunque no estoy muy seguro porque ahora no puedo probarlo:

If (Origen <> "Empleados") And (Format(MesAñoNominas, "mm/yyyy") > Format(MesAñoActual, "mm/yyyy")) Then

pero prueba primero con la anterior y reservate esta por si acaso.

Un saludo
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

RE:Fecha VB 6.3

Publicado por Alejandro (4 intervenciones) el 28/10/2005 22:05:42
Gracias Enrique,

Despues de postear la pregunta, seguí investigando (ojo hace un tiempo que estoy con esto), y se me ocurrión provar con la función dateserial que vi en algún ejemplo de otro problema y la cosa quedó así

AñoMesNominas = DateSerial(Year(rstNominas!Fecha), Month(rstNominas!Fecha), Day(rstNominas!Fecha))
AñoMesActual = DateSerial(Year(Date), Month(Date), Day(rstNominas!Fecha))

If (Origen <> "Empleados") And (AñoMesNominas > AñoMesActual) Then
Exit Do

Donde

10/03/2005 = 10/03/2005
28/03/2005 = 28/03/2005

Aparentemente funciona bien. Si no ya provaré tu solución.

Igual muchas gracias por la solución y la rapidéz.
Saludos.
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