Necesito saber como calcular en que año nació una persona presionando un botón

Respuesta de
a
Usuario
Mi consulta es la siguiente. Resulta que necesito saber como calcular en que año nació una persona, (año-mes-día) presionando un botón, que esta información me la envíe a un text, es decir si yo ingreso la edad actual por ejemplo 15 años.
Avatar
Experto
tumundo2004,

Crea un formulario con dos TextBox (text1 para edad y text2 para fecha). Agregale dos botones, y utiliza el siguiente código:

Private Sub Command1_Click()

Dim edad As Integer

edad = CInt(Text1.Text)

Text2.Text = CStr(DateAdd("yyyy", edad * -1, Now()))

End Sub

Private Sub Command2_Click()

Dim fecha As Date

fecha = CDate(Text2.Text)

Text1.Text = CStr(DateDiff("yyyy", fecha, Now()))

End Sub

El primero le resto la edad (años) a la fecha de hoy, para saber cuando nació. El segundo saca la diferencia entre la fecha de nacimiento y hoy, para saber cuantos años tiene.

Cualquier duda, avisame.

Saludos.
Pablo.
Usuario
¿Gracias por tu respuesta pero sabes?, al indicar la edad en años me da una fecha al día que tiene el sistema, por ejemplo ingrese 33 y me dio como resultado 17-05-1972, esta bien si esa persona nació ese día, ya que lo hace con la fecha delsistema, pero yo necesito que si esa persona no nació el día y mes que tiene el sistema, es decir si nació en el año 1972 pero no en mayo, es decir yo necesito calcular la fecha de nacimiento de una persona por que no haya nacido en un mes y día que indique el sistema, no se si se entiende je je, en todo caso si me puedes seguir ayudando te lo agradecería muchísimo...
Usuario
Ademas yo tengo un código que calcula laedad dela persona (años meses y días)ingresando su fecha de nacimiento, pero yo necesito lo inverso es decir ingreso cuantos años tiene y el mes en que nació y me debería mostrar su fecha de nacimiento... de antemano gracias, este es mi cidigo:
Public Function DiferenciaFechas(ByVal dtmFecha1 As Date, ByVal dtmFecha2 As Date) As String
Dim FecMay, Fecpaso As Date
Dim FecMen As Date
Dim intAnos As Integer
Dim intMeses As Integer
Dim intDias, SwMayor As Integer
On Error Resume Next

FecMay = dtmFecha2
FecMen = dtmFecha1

'Averiguar cuántos años
intAnos = DateDiff("yyyy", FecMen, FecMay)
Fecpaso = DateSerial(Year(FecMay), Month(FecMen), Day(FecMen))
If Fecpaso > FecMay Then
intAnos = intAnos - 1
FecMay = DateAdd("yyyy", 1, FecMay)
End If

intMeses = DateDiff("m", Fecpaso, FecMay)
If Day(Fecpaso) > Day(FecMay) Then
intMeses = intMeses - 1
End If
Fecpaso = DateSerial(Year(FecMay), Month(FecMay), Day(FecMen))

'Cambiar el año de la fecha menor al mismo que la fecha mayor

If Fecpaso > FecMay Then Fecpaso = DateAdd("m", -1, Fecpaso)

intDias = DateDiff("d", Fecpaso, FecMay)
'Averiguar cuántos días

Ledadcronoligica = intAnos
Lblmeses = intMeses

'ajuste_edad = intAnos
DiferenciaFechas = intAnos & " Años " & intMeses & " Meses y " & intDias & " Días"
meses = intMeses

End Function