>Como puedo restar dos fechas de tal manera que me de como resultado los
>anios y meses tranascurridos es decir asi: 24 anios 3 meses.
Se me ocurre que podrías hacer una función de este estilo:
Function DifFechAM (ByVal strFecIni As String, ByVal strFecFin As String)
As String
Dim NumMes As Integer, NumAño As Integer, aux As String
Dim datFecIni As Variant, datFecFin As Variant
'comprobamos que las fechas sean válidas
If Not IsDate(strFecIni) Then
DifFechAM = "Fecha inicio errónea"
Exit Function
End If
If Not IsDate(strFecFin) Then
DifFechAM = "Fecha fin errónea"
Exit Function
End If
datFecIni = DateValue(strFecIni)
datFecFin = DateValue(strFecFin)
'para que la diferencia siempre sea positiva
If datFecIni > datFecFin Then
NumMes = DateDiff("m", datFecFin, datFecIni)
Else
NumMes = DateDiff("m", datFecIni, datFecFin)
End If
NumAño = CInt(NumMes / 12)
NumMes = NumMes - (12 * NumAño)
aux = ""
If NumAño <> 0 Then
aux = CStr(NumAño) + " año"
If NumAño > 1 Then aux = aux + "s"
aux = aux + " "
End If
If NumMes <> 0 Then
aux = aux & NumMes & " mes"
If NumMes > 1 Then aux = aux + "es"
End If
DifFechAM = Trim$(aux)
End Function
>PD: Hay alguna forma de validar que una estrada en un box sean solo
>numeros?
En el evento KeyPress del textbox pon :
KeyAscii = SoloNumerico(KeyAscii)
Y la función sería :
Function SoloNumerico (tecla As Integer) As Integer
If tecla > 32 And (tecla < Asc("0") Or tecla > Asc("9")) Then
Beep
SoloNumerico = 0
Exit Function
End If
SoloNumerico = tecla
End Function
No es perfecto pero puede servir.
Un saludo.
_________________________________________________
José Rubí de la Vega
E-mail : jrubi@arrakis.es
WWW : http://www.arrakis.es/~jrubi
Podrás encontrar información sobre VB, la lista
VB-ESP y un resumen de los mensajes de la misma