Skip to main content

AccessTr.neT


Diff2dates Sorusu

Diff2dates Sorusu

Çözüldü #7
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.
Cevapla
Çözüldü #8
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. Img-grin
İnadına, ille de Accesstr.net...
Cevapla
Çözüldü #9
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.
Cevapla
Çözüldü #10
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

.rar FarkHesabi.rar (Dosya Boyutu: 17,08 KB | İndirme Sayısı: 22)
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #11
=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
Cevapla
Çözüldü #12
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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task