AccessTr.neT

Tam Versiyon: Hesaplama
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4
sayın berduş; ödediği fazla para kaydedilecek ve yine T_GELIR tablosuna kayıt edilecek. Fazla para takibi ise F_DAIRE_INCELEME formundan yapılacak.
Bunlar zaten var ve hazır.
sadece 3. kod : fazla ödeme yaptınız uyarısı, zaten eksik ödeme ve tam ödeme yapınca tabloya kayıt yapıp listeden kalkıyor. istemiş olduğum kodu bir çalıştırabilsem onu da uyarlayabilirim diye düşünüyorum.
3 durumlu if için aşağıdaki mantık geçerli
kendi isteğinize göre diğer kodları eklersiniz
    If Forms![F_TAHSILAT]![KALAN] = 0 Then
        MsgBox ("Tam")
        'Tam ödeme yapıldıysa yazılacak kodlar
    ElseIf Forms![F_TAHSILAT]![KALAN].Value < 0 Then
        MsgBox ("Eksik")
        'Eksik ödeme yapıldıysa yazılacak kodlar
    Else
        MsgBox ("Fazla")
        'Fazla ödeme yapıldıysa yazılacak kodlar
    End If

Public Function BosKontrol_3(frm As Form) 'TAHSILAT FORMUNDAKİ ÖDEMEYİ GERÇEKLEŞTİR KODU
Forms(formadi).TimerInterval = 0
formadi = frm.Name
BosAra

'Boş alan varsa detaylı olarak mesaja veriyor..
If trz > 0 Then

a = Right(a, Len(a) - 2)
MsgBox "Boş bırakmamanız gereken " & trz & " alan var ..:" _
    & Chr(13) & Chr(13) & "Bu Alanları Doldurun!", vbCritical, "Site Gelir / Gider Takip Programı"


'Boş olan ilk alanın ismini bulur ve odaklanıyor..
    If trz = 1 Then
        b = a
        Else
 
        b = Left(a, InStr(1, a, ",") - 1)
    End If
   
Forms(formadi).Controls(b).SetFocus
Forms(formadi).TimerInterval = 500
'Forms(formadi).kontrolBtn.Caption = trz & " Boş Alan Var."

Else
Forms(formadi).TimerInterval = 0
SekmeAyar
'İSTENEN İŞLEM KODU BURAYA YAZILACAK
    If Forms![F_TAHSILAT]![KALAN] = 0 Then
        MsgBox ("Tam")
        'Tam ödeme yapıldıysa yazılacak kodlar
    ElseIf Forms![F_TAHSILAT]![KALAN].Value < 0 Then
        MsgBox ("Eksik")
        'Eksik ödeme yapıldıysa yazılacak kodlar
    Else
        MsgBox ("Fazla")
        'Fazla ödeme yapıldıysa yazılacak kodlar
    End If

DoCmd.Close acForm, "F_TAHSILAT"
Forms!F_ALACAK.Refresh
Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
End If
End Function
İlginiz için teşekkür ederim en kısa sürede deneyip sonucu bildireceğim.
iyi günler.
sayın berduş, çözümünüzü bir süreliğine şehir dışına çıktığımdan dolayı deneyememiştim. Biraz önce denedim maalesef tam ödeme yapınca kodlar çalışıyor, eksik veya fazla ödeme yapınca kodlar çalışmıyor. Yazdığım kod aşağıdaki gibidir. 

Yapmak istediğim;
Eksik veya fazla ödeme yapınca uyarı mesajı işleme devam etmek isteyip istemediğimizi sorsun, evet seçtiğimizde ise tablodaki [ODENDI]=TRUE olsun. Hayırı seçtiğimizde ise F_TAHSILAT formuna düzeltme işlemi için geri dönsün.

Kod:
KALAN = ODENEN - TOPLAM
If Forms![F_TAHSILAT]![KALAN] = 0 Then
    If MsgBox("Borcun Tamamını Ödediniz. Ödeme Kayıtlara Aktarıldı..", vbInformation, "Site Gelir / Gider Takip Programı") Then
    Forms![F_TAHSILAT]![ODENDI] = True
    DoCmd.Close acForm, "F_TAHSILAT"
    Forms!F_ALACAK.Refresh
    Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
    Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")

 
   
ElseIf Forms![F_TAHSILAT]![KALAN] < 0 Then
    If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Fazla Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbYesNo, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = True
    DoCmd.Close acForm, "F_TAHSILAT"
    Forms!F_ALACAK.Refresh
    Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
    Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
   
   

Else
    'Forms![F_TAHSILAT]![KALAN].Value > 0 Then
    If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Eksik Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbYesNo, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = True
    DoCmd.SetWarnings 0 '/////////////////////
    DoCmd.OpenQuery "S_KALANBAKIYE" '///////////////////////
    DoCmd.SetWarnings -1 '//////////////////

    Forms![F_TAHSILAT]![ODENDI] = True
    MsgBox "Kalan Bakiye Aktarıldı.", vbOKOnly, "Site Gelir / Gider Takip Programı" '////////////
    DoCmd.Close acForm, "F_TAHSILAT"
    Forms!F_ALACAK.Refresh
    Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
    Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
End If
dilerim işinize yarar
Kod:
KALAN = ODENEN - TOPLAM

If Forms![F_TAHSILAT]![KALAN] = 0 Then
    If MsgBox("Borcun Tamamını Ödediniz. Ödeme Kayıtlara Aktarıldı..", vbInformation, "Site Gelir / Gider Takip Programı") Then
        Forms![F_TAHSILAT]![ODENDI] = True
        DoCmd.Close acForm, "F_TAHSILAT"
        Forms!F_ALACAK.Refresh
        Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
        Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
    End If
ElseIf Forms![F_TAHSILAT]![KALAN] < 0 Then
    If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Fazla Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbYesNo, "Prg") = 6 Then
        Forms![F_TAHSILAT]![ODENDI] = True
        DoCmd.Close acForm, "F_TAHSILAT"
        Forms!F_ALACAK.Refresh
        Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
        Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
    End If
Else
    If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Eksik Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbYesNo, "Prg") = 6 Then
        Forms![F_TAHSILAT]![ODENDI] = True
        DoCmd.SetWarnings 0 '/////////////////////
        DoCmd.OpenQuery "S_KALANBAKIYE" '///////////////////////
        DoCmd.SetWarnings -1 '//////////////////
    
        Forms![F_TAHSILAT]![ODENDI] = True
        MsgBox "Kalan Bakiye Aktarıldı.", vbOKOnly, "Site Gelir / Gider Takip Programı" '////////////
        DoCmd.Close acForm, "F_TAHSILAT"
        Forms!F_ALACAK.Refresh
        Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
        Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
    End If
End If
Maalesef olmadı, iki seçenekli olunca çalışıyor, ancak üçüncü seçenek devreye girince kod bir türlü istediğim gibi çalışmıyor. Fazla ödemek isteyenlere fazla ödeme kabul etmiyoruz demekten başka çare kalmadı.  Driving
Sayfalar: 1 2 3 4