Sayın Hocalarım
yüklemiş olduğum acces de
katmalik borçlandırma -ödeme form açıldığında
odeme yap etiket kutusun karşısındaki kutucuğa 1000 tl yazım ödenen tarihide tıkladığımda taksitleri ödüyor.o ödediği esnada not kutucuğunun altındaki metin kutusuna alt satırdaki yazmış olduğum işlemi bir türlü beceremedim;
sizlerden ricam ödediği esnada o satırdaki not kutucuğunun altındaki metin kutusuna şu tarihinde 1000 tl ödeme yapıldı taksit miktarı 500 tl ödendi,altındaki satıra geçip 1000 tl ödeme yapıldı taksit miktarı 500 tl nin 250 tl sini ödendi veya kalanpara dan ödeme yapıldıysa aynı şekilde yazması mümkün müdür.
saygılarımla
Metin Kutusu
Metin bey öncelikle şunu belirteyim sorularınıza eklediğiniz çalışmalarınızda mümkünse sadece son kullanıcıyı ilgilendiren -eğer sorunuz doğrudan onlarla ilgili değilse-;
access penceresini saklama/
şifreleme/
formun kalıcı olması/
tasarım modunda açılmanın engellenmesi/
masaüstüne kısayol ekleme gibi özellikleri devre dışı bırakarak, kodlarını pasifleştirerek ekleyebilirseniz soruyu çözmeye çalışan kişiler için çok daha ve verimli olur. bu özellikler/kodlar boşa zaman israfı oluyor, bazen dalgınlığımıza geliyor yazdığımız bütün kod Access tamamen kapandığı için boşa gidiyor ve bıkkınlık yaratabiliyor ki daha az önce başıma geldi bütün emeğim boşa gitti
access penceresini saklama/
şifreleme/
formun kalıcı olması/
tasarım modunda açılmanın engellenmesi/
masaüstüne kısayol ekleme gibi özellikleri devre dışı bırakarak, kodlarını pasifleştirerek ekleyebilirseniz soruyu çözmeye çalışan kişiler için çok daha ve verimli olur. bu özellikler/kodlar boşa zaman israfı oluyor, bazen dalgınlığımıza geliyor yazdığımız bütün kod Access tamamen kapandığı için boşa gidiyor ve bıkkınlık yaratabiliyor ki daha az önce başıma geldi bütün emeğim boşa gitti
@berduş'un cevabına ek olarak, "katmalik borçlandırma -ödeme form açıldığında" şeklinde belirtmişsiniz. Ancak uygulamanızda böyle bir form yok. Formları tek tek açıp incelemek zaman kaybı oluyor ve bazen farklı forma kod yazılıyor. Lütfen formların isimlerini de belirtiniz.
"FazlaDagit()" fonksiyonu değiştirildi , en alttaki kod işinize yarayabilir
Dim SqlFazla, SqlBorc, txtKimlik, SqlGuncelle, txtNot As String '<-- "txtNot" eklendi
txtNot = CStr(Date) & " tarihinde verilen " & txtVerilen & " TL""den " & dblx & " TL ödendi " ' '<-- Bu satır eklendi
" OdenenTar=cdate(" & CLng(Date) & "), " & _ '<-- Bu satır değişti
" Not='" & txtNot & _ '<-- Bu satır eklendi
Dim SqlFazla, SqlBorc, txtKimlik, SqlGuncelle, txtNot As String '<-- "txtNot" eklendi
txtNot = CStr(Date) & " tarihinde verilen " & txtVerilen & " TL""den " & dblx & " TL ödendi " ' '<-- Bu satır eklendi
" OdenenTar=cdate(" & CLng(Date) & "), " & _ '<-- Bu satır değişti
" Not='" & txtNot & _ '<-- Bu satır eklendi
Sub FazlaDagit(Optional Kimlik As String = "")
Dim Fazla As New ADODB.Recordset
Dim BORC As New ADODB.Recordset
Dim SqlFazla, SqlBorc, txtKimlik, SqlGuncelle, txtNot As String '<-- "txtNot" eklendi
Dim dblBakiye, dblBorc As Double
txtKimlik = IIf(Kimlik = "", "", " AND ((TBLUYEGENELBIL.KIMID)=" & Kimlik & ")")
SqlFazla = " SELECT TBLUYEGENELBIL.KIMID, TBLUYEGENELBIL.KalanPara" & _
" FROM TBLUYEGENELBIL " & _
" WHERE (((TBLUYEGENELBIL.KalanPara)>0)" & txtKimlik & ")"
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("KalanPara")
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"
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
txtNot = CStr(Date) & " tarihinde verilen " & txtVerilen & " TL""den " & dblx & " TL ödendi "
SqlGuncelle = " update TBLUYEODEMETABLOSU set " & _
" OdemeMik=OdemeMik + ccur('" & dblx & "'), " & _
" OdenenTar=cdate(" & CLng(Date) & "), " & _
" Not='" & txtNot & _
"' where sira=" & BORC.Fields("sira")
CurrentDb.Execute SqlGuncelle
SqlGuncelle = " update TBLUYEGENELBIL set " & _
" KalanPara=KalanPara - ccur('" & dblx & "') " & _
" where KIMID=" & Fazla.Fields("KIMID")
CurrentDb.Execute SqlGuncelle
BORC.MoveNext
Loop
20 '
BORC.Close
Set BORC = Nothing
Fazla.MoveNext
Loop
10
Fazla.Close
Set Fazla = Nothing
End Sub
(12/09/2019, 11:41)berduş yazdı: Metin bey öncelikle şunu belirteyim sorularınıza eklediğiniz çalışmalarınızda mümkünse sadece son kullanıcıyı ilgilendiren -eğer sorunuz doğrudan onlarla ilgili değilse-;Sayın berduş hocam
access penceresini saklama/
şifreleme/
formun kalıcı olması/
tasarım modunda açılmanın engellenmesi/
masaüstüne kısayol ekleme gibi özellikleri devre dışı bırakarak, kodlarını pasifleştirerek ekleyebilirseniz soruyu çözmeye çalışan kişiler için çok daha ve verimli olur. bu özellikler/kodlar boşa zaman israfı oluyor, bazen dalgınlığımıza geliyor yazdığımız bütün kod Access tamamen kapandığı için boşa gidiyor ve bıkkınlık yaratabiliyor ki daha az önce başıma geldi bütün emeğim boşa gitti
başta geç cevap verdiğim için özür dilerim
dediklerinize inşallah bundan sonra dikkat edecem
kusuruma bakmayın
saygılarımla
@metınaycıcek bey hem sizden hem de @ozanakkaya hocamdan çok özür dilerim, yanlışlıkla mesajınızı sildim
Konuyu Okuyanlar: 1 Ziyaretçi