Arıza Süresi Belirleme Formül Hatası
Tarih
09/12/2011 02:48
Konu Sahibi
lol4504
Yorumlar
5
Okunma
4135
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



lol4504
Aktif Üye
Kullanici Avatari
Aktif Üye
35
27/11/2011
0
Edirne
Ofis 2007
04/09/2012,22:46
Çözüldü 
Merhabalar.

http://www.accesstr.net/konu-sorgu-forml...tarma.html çalışmamızda raporlama ve sorguların bağlantısını benremix hocamın yardımları ile hallettik.

Hazırladığımız forumlarda arıza başlangıç tarihi ve arıza başlangıç saatinden arıza bitiş tarihi ve arıza bitiş saatini çıkardığımızda sonuç doğru çıkmıyor

(06.12.2011 10:40) - (06.12.2011 10:50) = 11:20
10 Dakika çıkması gerekir iken sonuç bu çıkmakta. kullandığım formül aşağıdadır. Düzenlemesine yardımcı olacak arkadaşlara şimdiden teşekkür ediyorum...

=Format(DateDiff("h";[Arıza Bildirim Tarihi]+[Arıza Bildirim Saati];[Arıza Bitiş Tarihi]+[Arıza Bitiş Saati]);"00") & ":" & Format(DateDiff("n";[Arıza Bildirim Tarihi]+[Arıza Bildirim Saati];[Arıza Bitiş Tarihi]+[Arıza Bitiş Saati]) Mod 60;"00")

Ek Dosyalar
Makine ArızaTakip.zip
[628.83 KB]

Ek Dosyalar
Durum İki Tarih Arası Arıza Kayıt Raporu.zip
[43.18 KB]

Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.022
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Bugün,08:03
Çözüldü 
tabloda arıza bitiş tarihleri "06/12/2011 08:00:00" şeklinde kaydedildiği için formül çalışmıyor olabilir.
Arıza süresi metin kutusunun denetim kaynağına

SQL Code
=Diff2Dates("dhn",(Format([Arıza Bildirim Tarihi],"dd/mm/yyyy")) & " " & [Arıza Bildirim Saati],(Format([Arıza Bitiş Tarihi],"dd/mm/yyyy")) & " " & [Arıza Bitiş Saati],Doğru)

yaz, aşağıdaki kodu modül olarak kaydet

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
Option Compare Database
Public Function Diff2Dates(Interval As String, Date1 As Date, Date2 As Date, _
Optional ShowZero As Boolean = False) As Variant

On Error GoTo Err_Diff2Dates

   Dim booCalcYears As Boolean
   Dim booCalcMonths As Boolean
   Dim booCalcDays As Boolean
   Dim booCalcHours As Boolean
   Dim booCalcMinutes As Boolean
   Dim booCalcSeconds As Boolean
   Dim booSwapped As Boolean
   Dim dtTemp As Date
   Dim intCounter As Integer
   Dim lngDiffYears As Long
   Dim lngDiffMonths As Long
   Dim lngDiffDays As Long
   Dim lngDiffHours As Long
   Dim lngDiffMinutes As Long
   Dim lngDiffSeconds As Long
   Dim varTemp As Variant

   Const INTERVALS As String = "dmyhns"

   Interval = LCase$(Interval)
   For intCounter = 1 To Len(Interval)
      If InStr(1, INTERVALS, Mid$(Interval, intCounter, 1)) = 0 Then
         Exit Function
      End If
   Next intCounter

'Check that valid dates have been entered
   If Not (IsDate(Date1)) Then Exit Function
   If Not (IsDate(Date2)) Then Exit Function

'If necessary, swap the dates, to ensure that
'Date1 is lower than Date2
   If Date1 > Date2 Then
      dtTemp = Date1
      Date1 = Date2
      Date2 = dtTemp
      booSwapped = True
   End If

   Diff2Dates = Null
   varTemp = Null

'What intervals are supplied
   booCalcYears = (InStr(1, Interval, "y") > 0)
   booCalcMonths = (InStr(1, Interval, "m") > 0)
   booCalcDays = (InStr(1, Interval, "d") > 0)
   booCalcHours = (InStr(1, Interval, "h") > 0)
   booCalcMinutes = (InStr(1, Interval, "n") > 0)
   booCalcSeconds = (InStr(1, Interval, "s") > 0)

'Get the cumulative differences
   If booCalcYears Then
      lngDiffYears = Abs(DateDiff("yyyy", Date1, Date2)) - _
              IIf(Format$(Date1, "mmddhhnnss") <= Format$(Date2, "mmddhhnnss"), 0, 1)
      Date1 = DateAdd("yyyy", lngDiffYears, Date1)
   End If

   If booCalcMonths Then
      lngDiffMonths = Abs(DateDiff("m", Date1, Date2)) - _
              IIf(Format$(Date1, "ddhhnnss") <= Format$(Date2, "ddhhnnss"), 0, 1)
      Date1 = DateAdd("m", lngDiffMonths, Date1)
   End If

   If booCalcDays Then
      lngDiffDays = Abs(DateDiff("d", Date1, Date2)) - _
              IIf(Format$(Date1, "hhnnss") <= Format$(Date2, "hhnnss"), 0, 1)
      Date1 = DateAdd("d", lngDiffDays, Date1)
   End If

   If booCalcHours Then
      lngDiffHours = Abs(DateDiff("h", Date1, Date2)) - _
              IIf(Format$(Date1, "nnss") <= Format$(Date2, "nnss"), 0, 1)
      Date1 = DateAdd("h", lngDiffHours, Date1)
   End If

   If booCalcMinutes Then
      lngDiffMinutes = Abs(DateDiff("n", Date1, Date2)) - _
              IIf(Format$(Date1, "ss") <= Format$(Date2, "ss"), 0, 1)
      Date1 = DateAdd("n", lngDiffMinutes, Date1)
   End If

   If booCalcSeconds Then
      lngDiffSeconds = Abs(DateDiff("s", Date1, Date2))
      Date1 = DateAdd("s", lngDiffSeconds, Date1)
   End If

   If booCalcYears And (lngDiffYears > 0 Or ShowZero) Then
      varTemp = lngDiffYears & IIf(lngDiffYears <> 1, " yıl", " yıl")
   End If

   If booCalcMonths And (lngDiffMonths > 0 Or ShowZero) Then
      If booCalcMonths Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffMonths & IIf(lngDiffMonths <> 1, " ay", " ay")
      End If
   End If

   If booCalcDays And (lngDiffDays > 0 Or ShowZero) Then
      If booCalcDays Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffDays & IIf(lngDiffDays <> 1, " gün", " gün")
      End If
   End If

   If booCalcHours And (lngDiffHours > 0 Or ShowZero) Then
      If booCalcHours Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffHours & IIf(lngDiffHours <> 1, " saat", " saat")
      End If
   End If

   If booCalcMinutes And (lngDiffMinutes > 0 Or ShowZero) Then
      If booCalcMinutes Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffMinutes & IIf(lngDiffMinutes <> 1, " dakika", " dakika")
      End If
   End If

   If booCalcSeconds And (lngDiffSeconds > 0 Or ShowZero) Then
      If booCalcSeconds Then
         varTemp = varTemp & IIf(IsNull(varTemp), Null, " ") & _
                   lngDiffSeconds & IIf(lngDiffSeconds <> 1, " seconds", " second")
      End If
   End If

   If booSwapped Then
      varTemp = "-" & varTemp
   End If

   Diff2Dates = Trim$(varTemp)

End_Diff2Dates:
   Exit Function

Err_Diff2Dates:
   Resume End_Diff2Dates

End Function
'************** Code End *****************


resim

Cevapla


lol4504
Aktif Üye
Kullanici Avatari
Aktif Üye
35
27/11/2011
0
Edirne
Ofis 2007
04/09/2012,22:46
Çözüldü 
sledgeab hocam yardımlarınız için çok teşekkür ediyorum. Modülü oluşturup kodu yerine koydum. Rapor aldığımda doğru çıkıyor. Fakat sizin verdiğiniz resimdeki gibi Arıza Kayıt Formu'nda bunu çıkartamadım. Arıza bitiş tarihi sütununda çıkan saat ibarelerini kaldırdım. fakat bazı arıza kayıtlarında 1 saat fazla bir değer çıkartıyor. ( Örnek = Hata No 5902 )Dosyayı ekte yolluyorum. Bakıp nerede hata yaptığımı söyleyebilir misiniz? Düzenlemenin son halini siz uygulayabilir iseniz çok mutlu olacağım. İyi geceler.

Ek Dosyalar
Makine ArızaTakip_A.zip
[647.88 KB]
Cevapla


fatihgns
Üye
Kullanici Avatari
Üye
34
7
23/07/2011
6
Kocaeli
Ofis 2007
14/07/2013,14:32
Çözüldü 
Merhaba,

@sledgeab dediği gibi ArızaData tablosunda "Arıza Bitiş Tarihi" biçimi sadece tarih(dd.mm.yy) olmasına rağmen tarihle beraber saat bilgiside içeriyor.

Bunu daha ayrıntılı görmek için ArızaData tablosunda "Arıza Bildirim Tarihi" ve "Arıza Bitiş Tarihi" biçiminini
(dd.mm.yy hh:nn) olarak değiştirip kaydedin.
Tabloyu açtığınızda örneğin 15.kaydın aşağıdaki değerleri aldığını görürsün.
"Arıza Bildirim Tarihi" 21.09.2010 00:00
"Arıza Bitiş Tarihi" 21.09.2010 04:40

Sonuç olarak bütün kayıtlardan tarih kısmının yanındaki saatleri 00:00 yapman gerekiyor.
Ancak bu şekilde yazdığın formül düzgün çalışacaktır.

Formu tasarım görünümde açtıktan sonra Toplam Arıza Süresi kutusunun içerisine formülünüzü yazarsanız,
form'da istediğiniz süre gelecektir.

Projenizi anlattığım şekilde düzenledim. Tarihteki fazlalık saatleride sildim. Son hali ektedir:
Ek Dosyalar
Makine ArızaTakip_fatihgns.zip
[301.07 KB]
Cevapla


lol4504
Aktif Üye
Kullanici Avatari
Aktif Üye
35
27/11/2011
0
Edirne
Ofis 2007
04/09/2012,22:46
Çözüldü 
Çok teşekkür ediyorum arkadaşım eline emeğine sağlık. Bu Arıza Takip programına başladığım andan itibaren sorularıma cevap veren tüm arkadaşlarıma teşekkür ediyorum. Allah hepinizden razı olsun. İyi geceler...
Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.022
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Bugün,08:03
Çözüldü 
(11/12/2011, 02:02)lol4504 Adlı Kullanıcıdan Alıntı: sledgeab hocam yardımlarınız için çok teşekkür ediyorum. Modülü oluşturup kodu yerine koydum. Rapor aldığımda doğru çıkıyor. Fakat sizin verdiğiniz resimdeki gibi Arıza Kayıt Formu'nda bunu çıkartamadım. Arıza bitiş tarihi sütununda çıkan saat ibarelerini kaldırdım. fakat bazı arıza kayıtlarında 1 saat fazla bir değer çıkartıyor. ( Örnek = Hata No 5902 )Dosyayı ekte yolluyorum. Bakıp nerede hata yaptığımı söyleyebilir misiniz? Düzenlemenin son halini siz uygulayabilir iseniz çok mutlu olacağım. İyi geceler.
Arıza Süresi metin kutusunun denetim kaynağına

SQL Code
=Diff2Dates("dhn",(Format([Arıza Bildirim Tarihi],"dd/mm/yyyy")) & " " & [Arıza Bildirim Saati],(Format([Arıza Bitiş Tarihi],"dd/mm/yyyy")) & " " & [Arıza Bitiş Saati],Doğru)

kodunu yazmamışsın, Raporda ise sizin 1. mesajda hatalı olarak belirttiğiniz kod duruyor.

Konu taşınmıştır.


Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  method or data hatası murat dikme 7 93 02/12/2016, 19:04 murat dikme
  Sms Göndermede Port Hatası kadirdursun 4 178 28/11/2016, 14:23 atoz112
  iş planı için termin tarihi belirleme brsknm 4 183 26/11/2016, 01:10 brsknm
  Excelden Veri Aktarımı Hatası Xleash 6 131 25/11/2016, 10:52 Xleash
  Güncelleştirme Sorgusu Çalıştırınca Kayıt Kilit Hatası Hakkında shalala 2 51 23/11/2016, 00:39 shalala


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya