sayın demiral
teşekkür ederim
ben yaptım.
ben sadece ne için istediğimi açıklamak istemiştim.
sizin açıklamanızla yaptığımda sadece hafta olarak hesaplasa da işime yaradı.
hafta +gün olarak olmuyor sanırım değil mi.
konu benim için yeterli olmuştur.
taşıyabilirsiniz.
Diff2dates Sorusu
O da olur. Toplarsınız günleri bölersiniz 7'ye. Tam sayı hafta, küsurat gün olur. Formüle de gerek yok.
İnadına, ille de Accesstr.net...
sayın mehmetdemiral ben örneğinizi kullanıyorum örnekte 'dmy' şeklinde formülü verince atıyorum 28 gün 5 ay 2 yıl diyor çok güzel fakat matamatiksel işlemlerde kullanamıyorum 28 metin1 5 metin2 2 metin3 gibi farklı metinlere sadece rakam olarak yazdıramazmıyım. yardımcı olursanız sevinirim.
Son Düzenleme: 25/08/2009, 16:01, Düzenleyen: EROLAKSAKAL.
Onun için ekteki örneği kullanabilirsiniz.
Kod:
Public Function YilAyGunFarki(Interval As String, Date1 As Date, Date2 As Date) As Integer
'Diff2Dates fonksiyonundan cevrilerek yazilmistir.
'
'Bu fonksiyon 2 tarih arasındaki Yıl,Ay veya gün farklarını hesaplar.
'
'1.Parametrede Gün için "g", Ay için "a", Yıl için "y" belirtilerek hangi dönemin farkının istendiği belirtilmelidir.
'2. ve 3. Parametrelerde tarihler belirtilir
'
'? YilAyGunFarki("g", #10/09/1971#, #29/09/2008#) = 19
'? YilAyGunFarki("a", #10/09/1971#, #29/09/2008#) = 9
'? YilAyGunFarki("y", #10/09/1971#, #29/09/2008#) = 36
On Error GoTo Hata_YilAyGunFarki
Dim dtTemp As Date
Dim lngDiffYears As Long
Dim lngDiffMonths As Long
Dim lngDiffDays As Long
'Parametrelerin dogrulugu kontrol ediliyor
If Not (Interval = "g" Or Interval = "a" Or Interval = "y") Then Exit Function
If Not (IsDate(Date1)) Then Exit Function
If Not (IsDate(Date2)) Then Exit Function
'Tarih1 Tarih2 den küçükse yerleri değiştiriliyor
If Date1 > Date2 Then
dtTemp = Date1
Date1 = Date2
Date2 = dtTemp
End If
'Yıl, Ay ve Gün farkları bulunuyor
YilAyGunFarki = 0
lngDiffYears = Abs(DateDiff("yyyy", Date1, Date2)) - IIf(Format$(Date1, "mmdd") <= Format$(Date2, "mmdd"), 0, 1)
Date1 = DateAdd("yyyy", lngDiffYears, Date1)
lngDiffMonths = Abs(DateDiff("m", Date1, Date2)) - IIf(Format$(Date1, "dd") <= Format$(Date2, "dd"), 0, 1)
Date1 = DateAdd("m", lngDiffMonths, Date1)
lngDiffDays = Abs(DateDiff("d", Date1, Date2))
Date1 = DateAdd("d", lngDiffDays, Date1)
'Parametreye istenen göre sonuç gönderiliyor
Select Case Interval
Case "y"
YilAyGunFarki = lngDiffYears
Case "a"
YilAyGunFarki = lngDiffMonths
Case "g"
YilAyGunFarki = lngDiffDays
End Select
Sonu_Hata_YilAyGunFarki:
Exit Function
Hata_YilAyGunFarki:
Resume Sonu_Hata_YilAyGunFarki
End Function
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Konfüçyüs
=YilAyGunFarki("a";[ISE_GIRIS_TARIH];(IIf([CIKIS_TAR] Is Null;Date();[CIKIS_TARIH]));Doğru) formulde çıkış değeri olmadığı zaman hata veriyor hata vermemesi için bende yukarıdaki formülü yazdım fakat çalışmıyor daha doğrusu kodu kabul etmedi neden anlamadım datadiff2 de çalışıyor
Formüldeki ";Doğru" yazısı fazlalık gibi duruyor, bir de aşağıdaki gibi deneyin
Kod:
=YilAyGunFarki("a";[ISE_GIRIS_TARIH];(IIf([CIKIS_TAR] Is Null;Date();[CIKIS_TARIH])))
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Konfüçyüs
Konuyu Okuyanlar: 2 Ziyaretçi