[SORGU] Diff2Dates fonkyonunu çalıştırmak için ne yapmak gerekiyor?
#1
access-sql-9 
Access bu fonkyonu nasıl tanımlayabilıyım?
Yada
Ekteki Dosyadan Gösterir mısınız?


Eklenti Dosyaları
.rar   Yeni Microsoft Office Access Uygulaması.rar (Boyut: 9,24 KB / İndirilme: 75)



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba,

access içerisinde hazır olarak diff2dates diye bir fonksiyon yok. Tarih farkını almak için DateDiff(«aralık»; «tarih1»; «tarih2») fonksiyonunu kullanmanızı öneririm.

Kullanımı için ayrıntılı bilgiyi aşağıdaki konudan alabilirsiniz.

http://www.access-sql.com/Konu-DateDiff-Fonksiyonu
"Gönül deniz, dil kıyıdır. Denizde ne varsa kıyıya o vurur"



  Alıntı
Bu mesajı beğenenler:
#3
Teşekkurler ama Diff2Dates Fonksyonu Kullanamaz mıyım ben



  Alıntı
Bu mesajı beğenenler:
#4

Aşağıdaki kodu bir modüle kopyalayıp kaydedin.
Sonrasında Diff2Dates("dhns";[Tarih1];[Tarih2]) şeklinde kullanabilirsiniz.

Visual Basic
  1. Public Function Diff2Dates(Interval As String, Date1 As Date, Date2 As Date, _
  2. Optional ShowZero As Boolean = False) As Variant
  3.  
  4. On Error GoTo Err_Diff2Dates
  5.  
  6. Dim booCalcYears As Boolean
  7. Dim booCalcMonths As Boolean
  8. Dim booCalcDays As Boolean
  9. Dim booCalcHours As Boolean
  10. Dim booCalcMinutes As Boolean
  11. Dim booCalcSeconds As Boolean
  12. Dim booSwapped As Boolean
  13. Dim dtTemp As Date
  14. Dim intCounter As Integer
  15. Dim lngDiffYears As Long
  16. Dim lngDiffMonths As Long
  17. Dim lngDiffDays As Long
  18. Dim lngDiffHours As Long
  19. Dim lngDiffMinutes As Long
  20. Dim lngDiffSeconds As Long
  21. Dim varTemp As Variant
  22.  
  23. Const INTERVALS As String = "dmyhns"
  24.  
  25. Interval = LCase$(Interval)
  26. For intCounter = 1 To Len(Interval)
  27. If InStr(1, INTERVALS, Mid$(Interval, intCounter, 1)) = 0 Then
  28. Exit Function
  29. End If
  30. Next intCounter
  31.  
  32. 'Check that valid dates have been entered
  33. If Not (IsDate(Date1)) Then Exit Function
  34. If Not (IsDate(Date2)) Then Exit Function
  35.  
  36. 'If necessary, swap the dates, to ensure that
  37. 'Date1 is lower than Date2
  38. If Date1 > Date2 Then
  39. dtTemp = Date1
  40. Date1 = Date2
  41. Date2 = dtTemp
  42. booSwapped = True
  43. End If
  44.  
  45. Diff2Dates = Null
  46. varTemp = Null
  47.  
  48. 'What intervals are supplied
  49. booCalcYears = (InStr(1, Interval, "y") > 0)
  50. booCalcMonths = (InStr(1, Interval, "m") > 0)
  51. booCalcDays = (InStr(1, Interval, "d") > 0)
  52. booCalcHours = (InStr(1, Interval, "h") > 0)
  53. booCalcMinutes = (InStr(1, Interval, "n") > 0)
  54. booCalcSeconds = (InStr(1, Interval, "s") > 0)
  55.  
  56. 'Get the cumulative differences
  57. If booCalcYears Then
  58. lngDiffYears = Abs(DateDiff("yyyy", Date1, Date2)) - _
  59. IIf(Format$(Date1, "mmddhhnnss") <= Format$(Date2, "mmddhhnnss"), 0, 1)
  60. Date1 = DateAdd("yyyy", lngDiffYears, Date1)
  61. End If
  62.  
  63. If booCalcMonths Then
  64. lngDiffMonths = Abs(DateDiff("m", Date1, Date2)) - _
  65. IIf(Format$(Date1, "ddhhnnss") <= Format$(Date2, "ddhhnnss"), 0, 1)
  66. Date1 = DateAdd("m", lngDiffMonths, Date1)
  67. End If
  68.  
  69. If booCalcDays Then
  70. lngDiffDays = Abs(DateDiff("d", Date1, Date2)) - _
  71. IIf(Format$(Date1, "hhnnss") <= Format$(Date2, "hhnnss"), 0, 1)
  72. Date1 = DateAdd("d", lngDiffDays, Date1)
  73. End If
  74.  
  75. If booCalcHours Then
  76. lngDiffHours = Abs(DateDiff("h", Date1, Date2)) - _
  77. IIf(Format$(Date1, "nnss") <= Format$(Date2, "nnss"), 0, 1)
  78. Date1 = DateAdd("h", lngDiffHours, Date1)
  79. End If
  80.  
  81. If booCalcMinutes Then
  82. lngDiffMinutes = Abs(DateDiff("n", Date1, Date2)) - _
  83. IIf(Format$(Date1, "ss") <= Format$(Date2, "ss"), 0, 1)
  84. Date1 = DateAdd("n", lngDiffMinutes, Date1)
  85. End If
  86.  
  87. If booCalcSeconds Then
  88. lngDiffSeconds = Abs(DateDiff("s", Date1, Date2))
  89. Date1 = DateAdd("s", lngDiffSeconds, Date1)
  90. End If
  91.  
  92. If booCalcYears And (lngDiffYears > 0 Or ShowZero) Then
  93. varTemp = lngDiffYears & IIf(lngDiffYears <> 1, " yıl", " yıl")
  94. End If
  95.  
  96. If booCalcMonths And (lngDiffMonths > 0 Or ShowZero) Then
  97. If booCalcMonths Then
  98. varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
  99. lngDiffMonths & IIf(lngDiffMonths <> 1, " ay", " ay")
  100. End If
  101. End If
  102.  
  103. If booCalcDays And (lngDiffDays > 0 Or ShowZero) Then
  104. If booCalcDays Then
  105. varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
  106. lngDiffDays & IIf(lngDiffDays <> 1, " gün", " gün")
  107. End If
  108. End If
  109.  
  110. If booCalcHours And (lngDiffHours > 0 Or ShowZero) Then
  111. If booCalcHours Then
  112. varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
  113. lngDiffHours & IIf(lngDiffHours <> 1, " sa", " sa")
  114. End If
  115. End If
  116.  
  117. If booCalcMinutes And (lngDiffMinutes > 0 Or ShowZero) Then
  118. If booCalcMinutes Then
  119. varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
  120. lngDiffMinutes & IIf(lngDiffMinutes <> 1, " dk", " dk")
  121. End If
  122. End If
  123.  
  124. If booCalcSeconds And (lngDiffSeconds > 0 Or ShowZero) Then
  125. If booCalcSeconds Then
  126. varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
  127. lngDiffSeconds & IIf(lngDiffSeconds <> 1, " sn", " sn")
  128. End If
  129. End If
  130.  
  131. If booSwapped Then
  132. varTemp = "-" & varTemp
  133. End If
  134.  
  135. Diff2Dates = Trim$(varTemp)
  136.  
  137. End_Diff2Dates:
  138. Exit Function
  139.  
  140. Err_Diff2Dates:
  141. Resume End_Diff2Dates
  142.  
  143. End Function


"Gönül deniz, dil kıyıdır. Denizde ne varsa kıyıya o vurur"



  Alıntı
Bu mesajı beğenenler:
#5
Tamam Kardeşim Çok Saol İyi Günler
Tam İstediğim şey



  Alıntı
Bu mesajı beğenenler:
#6
Merhaba Hocam acemi bir access kullanıcısıyım.

Kendi çalıştığım yere özel bir Personel Takip programı yapmayı düşünüyorum ancak şurada takılı kaldım.

=DateDiff fonksiyonunu kullanıp bir personelin toplam ne kadar süre çalıştığını bulmak istiyorum. sitenizdeki örneklerden giriş ve çıkış tarihi yazılı iken bu süreyi bulabiliyorum. aAncak personel çıkıncaya kadar çıkış tarihini yazmak istemiyorum. Bundan dolayı çıkış tarihinin boş kalması gerekiyor.

Ancak çıkış tarihi boş olduğunda bugünün tarihini alsın ve bugün itibari ile süresini versin işte burada takılıyorum.

Yardımcı olurmusunuz.

Örnek
Giriş Tarihi : 01.01.2014 Çıkış Tarihi : 01.01.2015 Sonuç : 1 Yıl 0 Ay 0 Gün

yapmak istediğim
Giriş Tarihi : 01.01.2014 Çıkış Tarihi : Boş (bunun yerine bugünün tarihini alsın ve) Sonuç : 1 Yıl 2 Ay 10 Gün
Bugünün tarihi (10.02.2015)



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Ana Form Ve Alt Formdaki Checkbox'lı Alanlardaki Verileri Buton Ile Null Yapmak. M_Kemal_Askeri 4 493 01-05-2026, 16:30
Son Mesaj: M_Kemal_Askeri
  Access Ile Web Den Veri Almak Ve Güncelleme Yapmak. karamurat42 0 435 08-10-2024, 15:42
Son Mesaj: karamurat42
  Toplu .csv, .xlsx, .xls, .xml Dosya Aktarımı Yapmak adnnfrm 2 708 22-06-2023, 19:04
Son Mesaj: dsezgin
  Uzun ürün Isimlerinde Arama Yapmak ankaram 4 686 13-12-2022, 11:29
Son Mesaj: ankaram
  Buton Ile Kısayol Program çalıştırmak zorrosx5 2 644 10-05-2022, 02:58
Son Mesaj: zorrosx5
  [FORM] Alt Formdaki Verileri Butonla True False Yapmak footprinting 2 600 28-01-2022, 13:24
Son Mesaj: footprinting
  [FORM] Ifade Yanlış Yazılmış Veya çalıştırmak Için çok Karmaşık.....hatası rerdem1903 1 600 27-12-2021, 19:15
Son Mesaj: onur_can
  Access Datadasındaki Verilere Göre Excel Vba Userform Da Tablo Yapmak ofbayoglu61 2 942 02-11-2021, 23:08
Son Mesaj: ofbayoglu61

Foruma Git:


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