Access - Calculo de fechas exactas

 
Vista:
sin imagen de perfil

Calculo de fechas exactas

Publicado por Germán Gutiérrez Pineda (7 intervenciones) el 16/10/2013 16:41:08
Buen día,

Nuevamente acudo a sus sabios consejos, esta vez para finalizar un proceso que debe aceptar niños que hayan cumplido los cinco (5) años pero que no hayan completado quince (15) años de edad. Tengo el siguiente código pero aunque me valida algunas de las condiciones está aceptando niños que cumplen años el mismo mes de realizada la encuesta.

1
2
3
4
5
6
7
8
9
10
11
12
13
If Month (FecNac) = Month (FecEnc) then
   if Day (FecEnc) > Day(FecNAc) then
      Edad = DateDiff ("yyyy", FecEnc, FecNac) - 1
   else
      Edad = DateDiff ("yyyy", FecEnc, FecNac)
   end if
   If Month (FecEnc) > Month (FecNac) Then
      Edad = DateDiff ("yyyy", FecEnc, FecNac)
   else
     Edad = DateDiff ("yyyy", FecEnc, FecNac) - 1
   end if
End if
Edad = DateDiff ("yyyy", FecEnc, FecNac)

Son válidos quienes cumplen los cinco años el mismo día de la encuesta Ej. FecEnc 17-09-2013 y FecNac 17-09-2008, pero ya no son aceptables quienes completan los quince años; FecEnc 17-09-2013 FecNac 17-09-1998.

No deberían ser aceptados (es el problema que tengo) quienes no han cumplido los cinco años FecEnc 17-09-2013 y FecNac 18-09-2008 o los que ya cumplieron quince: FecEnc 17-09-2013 y FecNac 16-09-1998 (Quince años un día). Me está generando inconvenientes especialmente con personas que cumplen años el mismo mes de la fecha de la encuesta.

Muchas gracias y nuevamente les agradezco tanta generosidad.
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Calculo de fechas exactas

Publicado por Neckkito (1157 intervenciones) el 17/10/2013 23:43:31
Hola!

Tu consulta parece un problema de lógica... je, je...

Prueba con este código:

...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Edad = DateDiff("yyyy", FecNac, FecEnc)
    If Edad = 5 Then
        Select Case Month(FecNac)
            Case Is > Month(FecEnc)
                Edad = DateDiff("yyyy", FecNac, FecEnc) - 1
            Case Is = Month(FecEnc)
                If Day(FecNac) > Day(FecEnc) Then
                    Edad = DateDiff("yyyy", FecNac, FecEnc) - 1
                End If
        End Select
    End If
    If Edad = 15 Then
        Select Case Month(FecNac)
            Case Is < Month(FecEnc)
                Edad = DateDiff("yyyy", FecNac, FecEnc) + 1
            Case Is = Month(FecEnc)
                If Day(FecNac) <= Day(FecEnc) Then
                    Edad = DateDiff("yyyy", FecNac, FecEnc) + 1
                End If
        End Select
    End If
...

Saludos,


http://neckkito.siliconproject.com.ar
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