2016-04-02 8 views
0

Kullanıcıların bir okul projesi için yaşlarını doğrulamaya çalışıyorum ve Yıl (Now()) öğesinin gerçekten geçerli yılı döndürmesiyle ilgili sıkıntılarım var.Basit! Neden msgBox'ım cari sene dönmüyor?

Private Sub cmdOldEnough_Click() 

Dim strCalculateAge As String 
Dim dtToday As Date 

strCalculateAge = Right(inpAge, 4) 
dtToday = Year(Now()) 

MsgBox dtToday 

End Sub 

Geçerli kod, 07/08/1905 tarihini döndürür. Çok teşekkürler!

+1

çünkü' 1' olmaktan 'dan tarih değişken sayımları 31-2-1899' ve '2’dir — 1-1-1900' vb. Bu yüzden '2016' geri dönecek. – newguy

+3

Değişim 'Dim dtToday As Date' olarak 'Dim dtToday As Long' @newguy zaten size açıklama vermiştir :) –

+0

Bir kişinin yaşını gerçekten hesaplayamayacağınızı unutmayın, sadece bir yıl ... – Comintern

cevap

1

Bir Date gerekmez, ihtiyacınız olan bir Long: Bir tarih değişkene cari yıl nedenle olsun 2016` `geçiyoruz

Sub marine() 
    Dim dtToday As Long 

    dtToday = Year(Now()) 

    MsgBox dtToday 
End Sub 
+0

@SiddharthRout Yorumları görmeden önce cevabıma başladım ............ Cevabımı sileceğim. –

+0

Hayır Dont :) Şimdi bırakın –

+1

'Sub marine' hahah LOL. – newguy