Boa Tarde, a Todos.
Tenho a seguinte função:
Public Function AnoMesDia(dtData1 As Date) As String
If IsNull(dtData1) Then
AnoMesDia = 0
Exit Function
Else
On Error GoTo AnoMesDia_Err
Dim sTmp As String
Dim nDMA As Long
Dim NewDate As Date
Dim sSngPlural As String
Dim dtData2 As Date
dtData2 = Now
' Bloco Ano ---------------------
' Calcula número inteiro de anos
nDMA = DateDiff("yyyy", dtData1, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 ano
If DateAdd("yyyy", nDMA, dtData1) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " , "
If nDMA > 1 Then sSngPlural = " , "
sTmp = nDMA & sSngPlural
' Bloco Mês ---------------------
' Nova data de referência
NewDate = DateAdd("yyyy", nDMA, dtData1)
nDMA = DateDiff("m", NewDate, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 mês
If DateAdd("m", nDMA, NewDate) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " , "
If nDMA > 1 Then sSngPlural = " , "
sTmp = sTmp & nDMA & sSngPlural
' Bloco Dia ---------------------
NewDate = DateAdd("m", nDMA, NewDate)
nDMA = DateDiff("d", NewDate, dtData2)
sSngPlural = "."
If nDMA > 1 Then sSngPlural = "."
sTmp = sTmp & nDMA & sSngPlural
' Valor final da função
AnoMesDia = sTmp
AnoMesDia_Fim:
Exit Function
AnoMesDia_Err:
MsgBox Err.Description
Resume AnoMesDia_Fim
End If
End Function
Só que tá havendo o seguinte problema:
Tenho duas caixas de texto
1ª) Data Entrada
2ª) Tempo de Casa
Digito a data 03/01/2011 e ele me retorna -112/11/27. Alguém saberia me dizer aonde está o erro.
Agradecido
Adilson
Tenho a seguinte função:
Public Function AnoMesDia(dtData1 As Date) As String
If IsNull(dtData1) Then
AnoMesDia = 0
Exit Function
Else
On Error GoTo AnoMesDia_Err
Dim sTmp As String
Dim nDMA As Long
Dim NewDate As Date
Dim sSngPlural As String
Dim dtData2 As Date
dtData2 = Now
' Bloco Ano ---------------------
' Calcula número inteiro de anos
nDMA = DateDiff("yyyy", dtData1, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 ano
If DateAdd("yyyy", nDMA, dtData1) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " , "
If nDMA > 1 Then sSngPlural = " , "
sTmp = nDMA & sSngPlural
' Bloco Mês ---------------------
' Nova data de referência
NewDate = DateAdd("yyyy", nDMA, dtData1)
nDMA = DateDiff("m", NewDate, dtData2)
' Se Data1+nDMA>Data2, subtrai 1 mês
If DateAdd("m", nDMA, NewDate) > dtData2 Then
nDMA = nDMA - 1
End If
sSngPlural = " , "
If nDMA > 1 Then sSngPlural = " , "
sTmp = sTmp & nDMA & sSngPlural
' Bloco Dia ---------------------
NewDate = DateAdd("m", nDMA, NewDate)
nDMA = DateDiff("d", NewDate, dtData2)
sSngPlural = "."
If nDMA > 1 Then sSngPlural = "."
sTmp = sTmp & nDMA & sSngPlural
' Valor final da função
AnoMesDia = sTmp
AnoMesDia_Fim:
Exit Function
AnoMesDia_Err:
MsgBox Err.Description
Resume AnoMesDia_Fim
End If
End Function
Só que tá havendo o seguinte problema:
Tenho duas caixas de texto
1ª) Data Entrada
2ª) Tempo de Casa
Digito a data 03/01/2011 e ele me retorna -112/11/27. Alguém saberia me dizer aonde está o erro.
Agradecido
Adilson