(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
inceleyip size en yakın zamanda döneceğim
bir harf öğretenin 40 yıl kölesi olurum inşallah Hz Alin'in sozüdür heleki bu zamanda