Guardar fecha calculada en un campo

Estoy haciendo una base de datos. Estoy haciendo un formulario. Y lo que quiero es que dada la fecha de nacimiento de la persona, me calcule la edad. Y que este resultado no solo lo muestre en el formulario, sino que lo guarde en la tabla correspondiente al formulario.
Se que tengo que hacerlo en codígo en VB pero me marca error.
Coloque el sig. Código:
Me![Edad].Value = (Now() - Me.[Nacimiento].Value) / 365.25

2 respuestas

Respuesta
1
El cuadro de texto lo llamas igual que el campo que tienes en la tabla, y en origen del control pones:
=DateDiff("yyyy";Form!Nacimiento.Value;Date())
Si lo quieres poner en un código, tienes que sustituir el ; por,
Me cuentas.
Hola
Muchísimas gracias por responderme. Excelente respuesta.
Coloqué este código:
Edad.Value = DateDiff("yyyy", Form![Fecha de Nacimiento].Value, Date)
Pero me está redondeando las edades. Y quiero que me de la edad con 1 decimal. Que le tengo que agregar a la declaración.
Muchas gracias de antemano
La función Datediff te devuelve:
Con "yyyy" ---> Años
Con "m" ----> Meses
Con "q" ----> Trimestres
Con "w" ----> Semanas
Con "d" -----> Días
Puedes utilizar los meses y dividirlo por 12 o dos días y dividirlo por 365...
Puedes jugar con estas soluciones y coger la que más te convenga.
Me cuentas.
Respuesta
1
Una manera de hacer lo que quieres es editar el campo donde introduces la fecha de nacimiento (yo le he llamado FechaNac) y asignar al evento "Después de actualizar" el siguiente código":
Private Sub FechaNac_AfterUpdate()
    Dim dtmFechaNac, dtmAhora As Date
    Dim añoFechaNac, añoAhora As Integer
    Dim mesFechaNac, mesAhora As Integer
    Dim diaFechaNac, diaAhora As Integer
    Dim intEdad As Integer
        'Comprobamos que la fecha de nacimiento no haya quedado en blanco, porque
'si no nos dará un error
    If IsNull(Me.FechaNac.Value) Then
        MsgBox "No se ha introducido ninguna fecha de nacimiento"
        Exit Sub
    End If
        'Almacenamos los datos de la fecha de nacimiento
    añoFechaNac = Year(Me.FechaNac)
    mesFechaNac = Month(Me.FechaNac)
    diaFechaNac = Day(Me.FechaNac)
        'Almacenamos los datos de la fecha actual
    añoAhora = Year(Date)
    mesAhora = Month(Date)
    diaAhora = Day(Date)
        'Comprobamos las diferencias y calculamos la edad
    If mesFechaNac < mesAhora Then
        intEdad = añoAhora - añoFechaNac - 1
    End If
    If mesFechaNac > mesAhora Then
        intEdad = añoAhora - añoFechaNac
    End If
    If mesFechaNac = mesAhora Then
        If diaFechaNac >= diaAhora Then
            intEdad = añoAhora - añoFechaNac
        Else
            intEdad = añoAhora - añoFechaNac - 1
        End If
    End If
        'Finalmente asignamos el valor calculado al campo Edad
    Me.Edad.Value = intEdad
End Sub
Suerte!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas