Skip to main content

AccessTr.neT


Süre İçin Ortalama Hesaplatma

Süre İçin Ortalama Hesaplatma

Çözüldü #1
Cümleten Hayırlı bayramlar.
 Bir soru ile yine karşınızdayım.  Eklediğim örnek içerisinde istatistik formunda sürelerin ve km bölümlerinin aritmetik ortalamasını almak istiyorum diğer yerleri yaptım ancak bu konu hakkında hiç bir fikrim yok yardımlarınıza ihtiyacım var nasıl yapmalıyım. Süre ile ilgili formda hiç bir bilgi bulamadım.
.rar YANGIN RAPOR1.rar (Dosya Boyutu: 1,17 MB | İndirme Sayısı: 3)
Cevapla
#2
ortalamayı alırken boş olan kayıtlar 0 mı sayılacak yoksa işleme alınmayacak mı?
diyelim 5 kayıt var
1.si 5dk
2. boş
3. 4dk ise
ortalama (0+4+5)/3 mü olacak yoksa sadece 2 kayıtta değer olduğu için (4+5)/2 mi olacak?
Cevapla
#3
(25/05/2020 22:38)berduş Adlı Kullanıcıdan Alıntı: ortalamayı alırken boş olan kayıtlar 0 mı sayılacak yoksa işleme alınmayacak mı?
diyelim 5 kayıt var
1.si 5dk
2. boş
3. 4dk ise
ortalama (0+4+5)/3 mü olacak yoksa sadece 2 kayıtta değer olduğu için (4+5)/2 mi olacak?
Öncelikle cevabınız için teşekkür ederim. Boş olanları işleme aldırmayacağım. Ama ayrıyetten hepsinin saydırılacağı kodu da buradan paylaşırsanız sevinirim. Nasıl yapıldığını öğrenmek adına
Son Düzenleme: 25/05/2020, 22:59, Düzenleyen: itfaiyeci_26.
Cevapla
#4
Uygun bir zamanda ilgilenmeye çalışırım, bu arada ya ilgili alanda hiç veri yoksa ne yapilacak? Boş mu bırakılacak?
Cevapla
#5
(25/05/2020 23:36)berduş Adlı Kullanıcıdan Alıntı: Uygun bir zamanda ilgilenmeye çalışırım, bu arada ya ilgili alanda hiç veri yoksa ne yapilacak? Boş mu bırakılacak?
İstatistik bölümündeki listenin sadece çıkış sürelerinin ve kilometrelerin ortalamasını almasını istiyorum şimdilik bazı veriler yok ama ileride muhakkak veri olacaktır. hiç veri yoksa boş kalacak.
Son Düzenleme: 25/05/2020, 23:46, Düzenleyen: itfaiyeci_26.
Cevapla
#6
aşağıdaki alt yordam işinize yarayabilir. çalışmasını istediğiniz olaya eklemeniz yeterli.
bence en uygun yer hesapla alt yordamına eklemenizdir ama hata vermemesi için form_open/Form_Açıldığında olayından hesap yordamını silmenizdir. zaten form_yüklenirken/load olayında hesapla fonksiyonu var tekrar form_open/açıldığında olayına eklemenize gerek yok
eğer alanlar boş olsa bile ortalamayı kriterlere uyan tüm kayıtlar üzerinden yapmak istiyorsanız sadece kriterlerde yer alan
and not isnull([arac_cikis_sure]) ve and not isnull([mesafe]) alanlarını çıkarmanız yeterli
sadece değer olan kayıtlar için d

Visual Basic Code
Sub HesaplaOrt()
Dim tplCksSure, KytCksSure, tplCksMsf, KytCksMsf As Double
'hy süre ortalaması 'sadece değer olan kayıtlar için
tplCksSure = DSum("Val(Nz([arac_cikis_sure],0))", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                  " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                  " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                  " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*'")
                  
KytCksSure = DCount("*", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                    " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                    " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                    " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*'")
If KytCksSure <> 0 Then Me.Metin1 = tplCksSure / KytCksSure

'hy mesafe ortalaması sadece değer olan kayıtlar için
tplCksMsf = DSum("Val(Nz([mesafe],0))", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                  " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                  " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                  " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*'")
                  
KytCksMsf = DCount("*", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                    " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                    " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                    " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*'")
If KytCksMsf <> 0 Then Me.Metin85 = tplCksMsf / KytCksMsf
End Sub

kriterlere uyan dolu boş tüm kayıtlar için

Visual Basic Code
Sub HesaplaOrtTum()
Dim tplCksSure, KytCksSure, tplCksMsf, KytCksMsf As Double
'hy süre ortalaması tüm kayıtlar için
tplCksSure = DSum("Val(Nz([arac_cikis_sure],0))", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                  " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                  " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                  " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*' and not isnull([arac_cikis_sure])")
                  
KytCksSure = DCount("*", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                    " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                    " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                    " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*' and not isnull([arac_cikis_sure])")
If KytCksSure <> 0 Then Me.Metin1 = tplCksSure / KytCksSure

'hy mesafe ortalaması tüm kayıtlar için
tplCksMsf = DSum("Val(Nz([mesafe],0))", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                  " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                  " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                  " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*' and not isnull([mesafe])")
                  
KytCksMsf = DCount("*", "[yangin Sorgu]", "gurup_adi like '*" & Me.BİRİMKutusuGecici & "*'" & _
                    " and [vardiya] like '*" & Me.MADDE3KutusuGecici & "*'" & _
                    " and [olay_turu] like '*" & Me.MADDE1KutusuGecici & "*'" & _
                    " and [olay_cins] like '*" & Me.MADDE2KutusuGecici & "*' and not isnull([mesafe])")
If KytCksMsf <> 0 Then Me.Metin85 = tplCksMsf / KytCksMsf
End Sub

Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da