AccessTr.neT
Süre İçin Ortalama Hesaplatma - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Süre İçin Ortalama Hesaplatma (/konu-sure-icin-ortalama-hesaplatma.html)

Sayfalar: 1 2


Süre İçin Ortalama Hesaplatma - itfaiyeci_26 - 25/05/2020

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.


RE: Süre İçin Ortalama Hesaplatma - berduş - 25/05/2020

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?


RE: Süre İçin Ortalama Hesaplatma - itfaiyeci_26 - 25/05/2020

(25/05/2020, 22:38)berduş yazdı: 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


RE: Süre İçin Ortalama Hesaplatma - berduş - 25/05/2020

Uygun bir zamanda ilgilenmeye çalışırım, bu arada ya ilgili alanda hiç veri yoksa ne yapilacak? Boş mu bırakılacak?


RE: Süre İçin Ortalama Hesaplatma - itfaiyeci_26 - 25/05/2020

(25/05/2020, 23:36)berduş yazdı: 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.


RE: Süre İçin Ortalama Hesaplatma - berduş - 26/05/2020

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
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
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