AccessTr.neT
Toplam Değer Belli Bir Sayıdan Fazla İse - 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ığı: Toplam Değer Belli Bir Sayıdan Fazla İse (/konu-toplam-deger-belli-bir-sayidan-fazla-ise.html)

Sayfalar: 1 2


Toplam Değer Belli Bir Sayıdan Fazla İse - karaayhan - 12/06/2021

puantaj kısmında şöyle bir sorunumuz oldu;

kodların bulunduğu sayfada
Private Sub top()
Dim i As Integer
Dim TOPLAM As Integer
For i = 1 To 31
       
        strnum1 = Format(i, "00")
If Me("txt" & strnum1).Enabled = True And Me("txt" & strnum1) <> 0 Then
TOPLAM = TOPLAM + Val(Nz(Me("txt" & strnum1), 0))
End If
Next i
Me.ETOP = TOPLAM / 10
ETOP1
End Sub

burada ETOP değeri en fazla 30 gün olmalı bu değeri aşan durumlarda
fazla çalışmaya(MESAI) yazılmalı ?
bunun için nasıl bir değişiklik yapmalıyız..?


RE: Toplam Değer Belli Bir Sayıdan Fazla İse - berduş - 12/06/2021

aşağıdaki bağlantıda yer alan konuda sorun çözülmüştü yanılmıyorsam
https://accesstr.net/konu-calisilan-gun-fazlasini-mesai-olarak-ekleme.html


RE: Toplam Değer Belli Bir Sayıdan Fazla İse - karaayhan - 13/06/2021

sayın berduş burada sadece etop(günlerde çalışılan saat toplamı) 30 günden fazla olursa
fazla olan saatler her ne olursa olsun mesai ye yazmasını istiyoruz
diyelim ki ay içerisinde 350 saat çalışmış olsun
30 gün ve 50 saat yazmalı
programda ise 35 gün olarak yaziyor
biz en fazla 30 gün ile sinirlamak fazla olursa da mesai olarak yazsin istiyoruz


RE: Toplam Değer Belli Bir Sayıdan Fazla İse - berduş - 13/06/2021

ayrıntılı bir incelemede bulunmadım sadece yazdığınız kod üzerinden düzenleme yaptım
dilerim işinize yarar
Private Sub top()
Dim i As Integer
Dim TOPLAM As Integer
For i = 1 To 31
       
        strnum1 = Format(i, "00")
If Me("txt" & strnum1).Enabled = True And Me("txt" & strnum1) <> 0 Then
TOPLAM = TOPLAM + Val(Nz(Me("txt" & strnum1), 0))
End If
Next i
ETOP1
'hy_____________________________düzenleme
If TOPLAM > 300 Then
    Me.ETOP = 30
    Me.MESAI = TOPLAM - 300
Else
    Me.ETOP = TOPLAM / 10
End If
'hy_____________________________düzenleme bitti

End Sub



RE: Toplam Değer Belli Bir Sayıdan Fazla İse - berduş - 13/06/2021

ama şunu belirteyim daha önceki konunuzda da belirtmiştim kodlamanızın mantığı hatalı, farklı yordamlar bir birine girmiş ve bir kaç defa çağrılıyor, ve bazen bir prosedürün yaptığı değişikliği diğeri sıfırlıyor.
önerim en azından bu formu sıfırdan tasarlamanız, kafanızda neyin ne olduğunu kesinleştirdikten sonra ancak tam olarak yardımcı olabiliriz
mesela yukardaki kod ile istediğiniz sonucu alabilmeniz gerek normalde ama SaatTpl fonksiyonu işi bozuyor ve gün sayısını daha önceki konunuzda belirttiğiniz gibi her 10 saati 1 gün yapacak şekilde değiştiriyor o nedenle de yukardaki koddaki düzenleme anlamsızlaşabiliyor çünkü metin değiştiği için txt...AfterUpdate olayı ile otomatik olarak Form_Current yordamı çağrılıyor ve bu yordam da SaatTpl fonksiyonunu tetiklediği için tekrar "SET [ETOP]=fix([ETOPSAAT]/10), [MESAI]=[ETOPSAAT]-[ETOP]*10 " sorgusu çalışıp [ETOP]=fix([ETOPSAAT]/10 oluyor. dolayısıyla TOP prosedürünü değiştirmek ETOP sonucunu değiştirememiş oluyor


RE: Toplam Değer Belli Bir Sayıdan Fazla İse - karaayhan - 13/06/2021

sayın berduş haklısınız sanırım
zira tam performanslı olarak çalışmıyor denedim..
mantık hatalarını giderip tekrar deneyeceğim
çok teşekkür ederim.
sonucu yazarım bu konu altında