İki Tarih Farkını "YIL-AY-GÜN" Veren Fonksiyon (DateDiff_ze_bb)
#13
Sayın Metin,

Aşağıdaki fonksiyonu kullanabilirsiniz.

Visual Basic
  1. Public Function gun(year As Integer, day As Double)
  2. Dim firstDay As Date
  3. firstDay = DateSerial(year, 1, 1)
  4. gun = Format(DateAdd("d", day - 1, firstDay), "Long Date")
  5. End Function



Örnek ekliyorum.

İyi çalışmalar


Eklenti Dosyaları
.rar   gun_tarih.rar (Boyut: 13 KB / İndirilme: 119)



  Alıntı
Bu mesajı beğenenler:
#14
Teşekkür...



  Alıntı
Bu mesajı beğenenler:
#15
Merhaba..

Metin Bey, şimdiye kadarki konu ve cevaplarınızda genel anlamda sorunlarınızı ifade edememe durumu söz konusu.. Ya da biz anlamakta zorlanıyoruz diyelim.. Bundan dolayı da size yardımcı olmak çok zor oluyor.. Doğru önerilerde bulunmak için olmak için sorular soruyoruz ama konularınıza geri bildirimde de bulunmuyorsunuz.. Yanlış anlamayın lütfen ama bu durum size yardımcı olmamızı geçiktiriyor..

Bu sorunuza gelince..:

Yukarıdaki örnekte de bulunan bu fonksiyonu bir modüle kaydediniz..:

Visual Basic
  1. Function fark(ilktarih As Variant, sontarih As Variant) As Variant
  2. Dim trz As Integer
  3. Dim osm As Integer
  4. trz = DateDiff("m", ilktarih, sontarih) + (Day(sontarih) < Day(ilktarih))
  5. If Day(sontarih) < Day(ilktarih) Then
  6. osm = DateDiff("d", ilktarih, DateSerial(Year(ilktarih), Month(ilktarih) _
  7. + 1, 0)) + Day(sontarih)
  8. Else
  9. osm = Day(sontarih) - Day(ilktarih)
  10. End If
  11. fark = LTrim(Str(trz \ 12)) & " Yıl " & LTrim(Str(trz Mod 12)) & " Ay " _
  12. & LTrim(Str(osm)) & " Gün"
  13. End Function



Daha sonra sorgunuzdaki boş bir alana fark([İlkTarihAlanı];[SonTarihAlanı]) şeklinde kullanınız..

Sizin alan isimlerinize göre de sanırım böyle olmalı..

SQL
  1. fark([YönetimOluşmaSonTarihi];[YönetimBitişTarihi])





  Alıntı
Bu mesajı beğenenler:
#16
Taruz hocam veya diğer arkadaşlar taruz hocamın yaptığı farktoplama modülüne 3. bir fark bölümü ekledim fark toplama kısmınıda 3 farkı birden toplayacak şekilde yapılandırmam lazım modülde aşağıdaki gibi düzenleme yaptım ama fark toplama alanına 3.fark alanını giremiyorum girdiğiniz ifadenin söz dizimi gerçersiz diyor kontrol etme imkanınız var mı ?

Function farktopla(a As Variant, b As Variant, c As Variant, d As Variant, e As Variant, f As Variant) As Variant
Dim trza As Integer
Dim osma As Integer
Dim ay As String
Dim gun As String
Dim yil As String
trza = (DateDiff("m", a, b) + (Day(b) < Day(a))) + (DateDiff("m", c, d) + (Day(d) < Day©)) + (DateDiff("m", e, f) + (Day(e) < Day(f)))
If Day(b) < Day(a) Or Day(d) < Day© Or Day(e) < Day(f) Then
osma = ((DateDiff("d", a, DateSerial(Year(a), Month(a) + 1, 0)) + (DateDiff("d", c, DateSerial(Year©, Month© + 1, 0)) + (DateDiff("d", e, DateSerial(Year(e), Month(e) + 1, 0))) + (Day(b)) + Day(d)) + Day(f)))
Else
osma = ((Day(b) + Day(d) + Day(f)) - (Day(a) + Day© + Day(e)))
End If
yil = LTrim(Str(trza \ 12))
ay = LTrim(Str(trza Mod 12))
gun = LTrim(Str(osma))
If gun >= 30 Then
gun = gun - 30
ay = ay + 1
End If
farktopla = yil & " Yıl " & ay & " Ay " & gun & " Gün"
End Function


Dosyayıda ekledim her ihtimale karşı ama yanlışı nerde yapıyorum onu anlamak istiyorum...


Eklenti Dosyaları
.rar   Trz_Tarih_Farklari.rar (Boyut: 21,94 KB / İndirilme: 11)



  Alıntı
Bu mesajı beğenenler:
#17
Sonun da yapmayı başardım tek eksik 3 farklı gün ay yıl toplamını alınan yerde gün sayısı 30 u geçince ay kısmını 1 artırmıyor belli bir noktadan sonra artırıyor ama hangi kurala göre artırıyor anlayamadım artık onada üstadlar bakıp bir yol çaresine bakarlar inşallah.
Dosyayı eke ekliyorum kolay gelsin herkese hayırlı geceler.


Eklenti Dosyaları
.rar   gunayyiltarihtoplam.rar (Boyut: 27,9 KB / İndirilme: 13)



  Alıntı
Bu mesajı beğenenler:
#18
Metin26 denetim kaynagina
=farktopla([ilkTarih];[sonTarih];[ailkTarih];[asonTarih];[bilkTarih];[bsonTarih])
yazabilirsiniz.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-6 64 Bit Versiyonlardaki Deklarasyon Kaynaklı Fonksiyon Hataları Taruz 16 15.875 10-01-2019, 19:35
Son Mesaj: dsezgin
access-sql-3 YazME: MsgBox inputBox için satır atlama ve girintileme (Parametreli fonksiyon) Mehmet Eser 6 7.770 01-05-2012, 13:00
Son Mesaj: aydın3838
  Sabit boşluklu txt yapmak için sifir ve boşluk ekleyen fonksiyon metinse 28 15.534 21-02-2010, 19:01
Son Mesaj: linux2ex

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi