01/09/2019, 22:58
(01/09/2019, 22:53)berduş yazdı: [ -> ]kafamda daha tam oturtamadım yine de sorayımdaire bazında mı olacak yoksa kişi adına göre miSayın hocam daire bazında olacak
(01/09/2019, 22:53)berduş yazdı: [ -> ]kafamda daha tam oturtamadım yine de sorayımdaire bazında mı olacak yoksa kişi adına göre miSayın hocam daire bazında olacak
(02/09/2019, 08:05)berduş yazdı: [ -> ]sayın @metınaycıcek dağıtma kodu ne zaman çalışmalı?Sayın Hocam
form her yüklendiğinde mi, bir butona bastığınızda mı yoksa borç eklediğinizde mi yoksa bir kaç farklı durumda mı?
kaba taslak tamamladım gibi ama daha tam olmadı
Sub FazlaDagit(Optional Kimlik As String = "")
Dim Fazla As New ADODB.Recordset
Dim Borc As New ADODB.Recordset
Dim SqlFazla, SqlBorc, txtKimlik, SqlGuncelle As String
Dim dblBakiye, dblBorc As Double
txtKimlik = IIf(Kimlik = "", "", " AND ((TBLUYEODEMETABLOSU.KIMID)=" & Kimlik & ")")
SqlFazla = " SELECT TBLUYEODEMETABLOSU.sira, TBLUYEODEMETABLOSU.KIMID, TBLUYEODEMETABLOSU.TaksitMik, TBLUYEODEMETABLOSU.OdemeMik " & _
" FROM TBLUYEODEMETABLOSU " & _
" WHERE (((TBLUYEODEMETABLOSU.OdemeMik)>(TBLUYEODEMETABLOSU.TaksitMik))" & txtKimlik & ")"
'SqlFazla : Ödeme alanı>taksit alanından olanları
Fazla.Open SqlFazla, CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'burada açtığın bağlantı
If Fazla.RecordCount <= 0 Then GoTo 10 ' goto 10 ile kapanmadan
Fazla.MoveLast
Fazla.MoveFirst
Do Until Fazla.EOF
dblBakiye = 0
dblBakiye = Fazla.Fields("OdemeMik") - Fazla.Fields("TaksitMik")
SqlBorc = " SELECT TBLUYEODEMETABLOSU.KIMID, TBLUYEODEMETABLOSU.sira, TBLUYEODEMETABLOSU.TaksitMik, TBLUYEODEMETABLOSU.OdemeMik " & _
" FROM TBLUYEODEMETABLOSU " & _
" WHERE (((TBLUYEODEMETABLOSU.OdemeMik) < TBLUYEODEMETABLOSU.TaksitMik) And ((TBLUYEODEMETABLOSU.KIMID) =" & Fazla.Fields("KIMID") & ")) " & _
" ORDER BY TBLUYEODEMETABLOSU.SonOdemeTar"
'SqlBorc :Ödeme alanı>taksit dairelerin , Ödeme alanı<taksit alanından ödenmemiş borçları olan aylar
Borc.Open SqlBorc, CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'burada açtığın bağlantı
If Borc.RecordCount <= 0 Then GoTo 20 ' goto 10 ile kapanmadan
Borc.MoveLast
Borc.MoveFirst
'
Do Until Borc.EOF
If dblBakiye <= 0 Then GoTo 20
dblBorc = 0
dblBorc = Borc.Fields("TaksitMik") - Borc.Fields("OdemeMik") 'ödenmesi gereken
dblx = IIf(dblBakiye >= dblBorc, dblBorc, dblBakiye)
dblBakiye = dblBakiye - dblx
SqlGuncelle = " update TBLUYEODEMETABLOSU set " & _
" OdemeMik=OdemeMik + ccur('" & dblx & "'), " & _
" OdenenTar=cdate(" & CLng(Date) & ")" & " where sira=" & Borc.Fields("sira")
CurrentDb.Execute SqlGuncelle
SqlGuncelle = " update TBLUYEODEMETABLOSU set " & _
" OdemeMik=OdemeMik - ccur('" & dblx & "') " & _
" where sira=" & Fazla.Fields("sira")
CurrentDb.Execute SqlGuncelle
Borc.MoveNext
Loop
20 '
Borc.Close
Set Borc = Nothing
Fazla.MoveNext
Loop
10
Fazla.Close
Set Fazla = Nothing
End Sub
(02/09/2019, 23:44)berduş yazdı: [ -> ]"mdl_devir" modülüne "FazlaDagit()" prosedürünü ekledimSayın Hocam Allah cc razı olsun inşallah
prosedür "TBLUYEODEMETABLOSU" tablosu üzerinden işlem yapmakta
"FazlaDagit()" prosedürünün özelliğ şu
1 - eğer tüm tablo üzerinden işlem yapmasını istiyorsanız sadece
FazlaDagit '<== şeklinde yazmalısınız
2 - eğer sadece belli bir daire ("KIMID" alanına göre ) üzerinden işlem yapacaksanız
FazlaDagit(KIMID)<== yazmalısınız
Kullandığım yerler:
1 - "FRM_ANAMENU" yüklenirken
2 - "katmanlık borçlandırma-Ödeme " veriler değiştiğinde yada yeni kayıt eklendiğinde
dilerim işinize yarar
Kod:Sub FazlaDagit(Optional Kimlik As String = "")
Dim Fazla As New ADODB.Recordset
Dim Borc As New ADODB.Recordset
Dim SqlFazla, SqlBorc, txtKimlik, SqlGuncelle As String
Dim dblBakiye, dblBorc As Double
txtKimlik = IIf(Kimlik = "", "", " AND ((TBLUYEODEMETABLOSU.KIMID)=" & Kimlik & ")")
SqlFazla = " SELECT TBLUYEODEMETABLOSU.sira, TBLUYEODEMETABLOSU.KIMID, TBLUYEODEMETABLOSU.TaksitMik, TBLUYEODEMETABLOSU.OdemeMik " & _
" FROM TBLUYEODEMETABLOSU " & _
" WHERE (((TBLUYEODEMETABLOSU.OdemeMik)>(TBLUYEODEMETABLOSU.TaksitMik))" & txtKimlik & ")"
'SqlFazla : Ödeme alanı>taksit alanından olanları
Fazla.Open SqlFazla, CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'burada açtığın bağlantı
If Fazla.RecordCount <= 0 Then GoTo 10 ' goto 10 ile kapanmadan
Fazla.MoveLast
Fazla.MoveFirst
Do Until Fazla.EOF
dblBakiye = 0
dblBakiye = Fazla.Fields("OdemeMik") - Fazla.Fields("TaksitMik")
SqlBorc = " SELECT TBLUYEODEMETABLOSU.KIMID, TBLUYEODEMETABLOSU.sira, TBLUYEODEMETABLOSU.TaksitMik, TBLUYEODEMETABLOSU.OdemeMik " & _
" FROM TBLUYEODEMETABLOSU " & _
" WHERE (((TBLUYEODEMETABLOSU.OdemeMik) < TBLUYEODEMETABLOSU.TaksitMik) And ((TBLUYEODEMETABLOSU.KIMID) =" & Fazla.Fields("KIMID") & ")) " & _
" ORDER BY TBLUYEODEMETABLOSU.SonOdemeTar"
'SqlBorc :Ödeme alanı>taksit dairelerin , Ödeme alanı<taksit alanından ödenmemiş borçları olan aylar
Borc.Open SqlBorc, CurrentProject.Connection, adOpenKeyset, adLockOptimistic 'burada açtığın bağlantı
If Borc.RecordCount <= 0 Then GoTo 20 ' goto 10 ile kapanmadan
Borc.MoveLast
Borc.MoveFirst
'
Do Until Borc.EOF
If dblBakiye <= 0 Then GoTo 20
dblBorc = 0
dblBorc = Borc.Fields("TaksitMik") - Borc.Fields("OdemeMik") 'ödenmesi gereken
dblx = IIf(dblBakiye >= dblBorc, dblBorc, dblBakiye)
dblBakiye = dblBakiye - dblx
SqlGuncelle = " update TBLUYEODEMETABLOSU set " & _
" OdemeMik=OdemeMik + ccur('" & dblx & "'), " & _
" OdenenTar=cdate(" & CLng(Date) & ")" & " where sira=" & Borc.Fields("sira")
CurrentDb.Execute SqlGuncelle
SqlGuncelle = " update TBLUYEODEMETABLOSU set " & _
" OdemeMik=OdemeMik - ccur('" & dblx & "') " & _
" where sira=" & Fazla.Fields("sira")
CurrentDb.Execute SqlGuncelle
Borc.MoveNext
Loop
20 '
Borc.Close
Set Borc = Nothing
Fazla.MoveNext
Loop
10
Fazla.Close
Set Fazla = Nothing
End Sub