If Then Else Kullanımı ile Hesap Kontrolü
#1
access-sql-5 
Merhabalar, yapmış olduğum bir projede If Then Else şartlarını ve bu şarta bağlı olarak sorgu çalıştırmayı tabloya kayıt yapmayı düşünüyorum. İkili şartta herhangi bir sorun yaşamıyorum ancak şart 3 lü olunca kod bir türlü çalışmıyor.

1. ödeme tam yapıldığında uyarı mesajı verip (ÖDEMENİZ KAYIT EDİLDİ) tabloya kayıt etsin

2. ödeme eksik yapıldığında uyarı versin (EKSİK ÖDEME YAPTINIZ) kalan bakiyeyi aktarsın 

3. fazla ödeme yapıldığında uyarı versin (FAZLA ÖDEME YAPTINIZ) fazla ödemeyi aktarsın.

yazdığım kodlar şöyle;

If Forms![F_TAHSILAT]![KALAN] = 0 tHEN

Forms![F_TAHSILAT]![ODENDI] = True

Else

If Forms![F_TAHSILAT]![KALAN].Value < o Then
If MsgBox ("Borcun tamamını Ödemediniz. Yine de Devam etmek istiyor musunuz?", 36,,"Prg") =6 Then
Forms![F_TAHSILAT]![ODENDI] = True

Else

If Forms![F_TAHSILAT]![KALAN].Value > o Then

If MsgBox ("Fazla Ödeme Yaptınız. Yine de Devam etmek istiyor musunuz?", 36,,"Prg") =6 Then
Forms![F_TAHSILAT]![ODENDI] = True



  Alıntı
Bu mesajı beğenenler:
#2
Visual Basic
  1. Private Sub Odeme_AfterUpdate()
  2. Me.KALAN = Me.Toplam - Me.Odeme
  3. If Forms![F_TAHSILAT]![KALAN] = 0 Then
  4.    If MsgBox("Borcun tamamini Ödediniz. Yine de Devam etmek istiyor musunuz?", vbCritical, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = True
  5. ElseIf Forms![F_TAHSILAT]![KALAN].Value < 0 Then
  6.    If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Fazla Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbCritical, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = True
  7. ElseIf Forms![F_TAHSILAT]![KALAN].Value > 0 Then
  8.    If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Eksik Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbCritical, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = True
  9. End If
  10. End Sub



Ornek VT olmadigindan tahmini alan adlari ile prosedur olusturuldu.
If ..... ElseIf.....end Sub gibi degerlendirilmelidir.

TARUZ Üstadın onerisine gore

Visual Basic
  1. Private Sub Odeme_AfterUpdate()
  2. Me.KALAN = Me.Toplam - Me.Odeme
  3. Select Case Forms![F_TAHSILAT]![KALAN]
  4. Case 0
  5. MsgBox "Borcun tamamini Ödediniz."
  6. Forms![F_TAHSILAT]![ODENDI] = True
  7. Case <0
  8. If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Eksik Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbCritical, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = true else Forms![F_TAHSILAT]![ODENDI] = false
  9. Case Else
  10. If MsgBox(Forms![F_TAHSILAT]![KALAN] & " TL Fazla Ödeme Yaptiniz. Yine de Devam etmek istiyor musunuz?", vbCritical, "Prg") = 6 Then Forms![F_TAHSILAT]![ODENDI] = True else Forms![F_TAHSILAT]![ODENDI] = false
  11. End Select





  Alıntı
Bu mesajı beğenenler: Taruz
#3
İlaveten select case karar yapısı da kullanılabilir.. Hatta karmaşık şartlar için daha da efektif olduğunu söyleyebilirim..

Basit anlatımı için inceleyebilirsiniz..:

https://www.access-sql.com/Konu-SELECT-C...rar-Yapisi



  Alıntı
Bu mesajı beğenenler:
#4
Sayın üstatlar, bir süre şehir dışında olduğum için çözüm önerilerinizi deneyemedim. bugün yaptığım denemelerde ise bir türlü başarılı olamadım.
kodlarım şöyle;
Visual Basic
  1. KALAN = ODENEN - TOPLAM
  2. If Forms![F_TAHSILAT]![KALAN] = 0 Then
  3.    If MsgBox("Borcun Tamamını Ödediniz. Ödeme Kayıtlara Aktarıldı..", vbInformation, "Site Gelir / Gider Takip Programı") Then
  4.    Forms![F_TAHSILAT]![ODENDI] = True
  5.    DoCmd.Close acForm, "F_TAHSILAT"
  6.    Forms!F_ALACAK.Refresh
  7.    Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
  8.    Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
  9.  
  10. End
  11.    
  12.    
  13.    
  14. If Forms![F_TAHSILAT]![KALAN] < 0 Then
  15.    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
  16.    DoCmd.Close acForm, "F_TAHSILAT"
  17.    Forms!F_ALACAK.Refresh
  18.    Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
  19.    Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
  20.    
  21.    Else
  22.    DoCmd.Close
  23. End If
  24.  
  25. ElseIf Forms![F_TAHSILAT]![KALAN].Value > 0 Then
  26.    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
  27.    DoCmd.SetWarnings 0 '/////////////////////
  28.    DoCmd.OpenQuery "S_KALANBAKIYE" '///////////////////////
  29.    DoCmd.SetWarnings -1 '//////////////////
  30.  
  31.    Forms![F_TAHSILAT]![ODENDI] = True
  32.    MsgBox "Kalan Bakiye Aktarıldı.", vbOKOnly, "Site Gelir / Gider Takip Programı" '////////////
  33.    DoCmd.Close acForm, "F_TAHSILAT"
  34.    Forms!F_ALACAK.Refresh
  35.    Forms!F_ALACAK.Metin86 = Nz(DSum("TUTAR", "S_ALACAK"), 0)
  36.    Forms!F_ALACAK.sayac.Caption = DCount("TUTAR", "S_ALACAK")
  37.    
  38.    Else
  39.    DoCmd.Close
  40.    
  41. End If
  42. End If
  43. End If


1. Tam ödeme yapılınca kod çalışıyor. (sıkıntı yok)

2. Eksik ödeme yapınca kod çalışıp uyarı mesajı verecek
    - evet seçildiğinde  S_KALANBAKIYE sorgusunu çalıştıracak,
    - hayır seçildiğinde F_TAHSILAT formunda düzeltme yapmaya izin verecek.

3. fazla ödeme yapınca kod çalışıp uyarı mesajı verecek
    - evet seçildiğinde işleme devam edilecek ödemeyi kaydedecek.
    - hayır seçildiğinde F_TAHSILAT formunda düzeltme yapmaya izin verecek.

yardımlarınızı bekliyorum.


Eklenti Dosyaları
.rar   Site Gelir-Gider takip programı.rar (Boyut: 602,77 KB / İndirilme: 70)



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Dcount Kullanımı. Satir 22 693 15-03-2024, 17:09
Son Mesaj: Satir
  Access Projesi Için Onedrive Kullanımı ccollezium 2 146 14-02-2024, 16:53
Son Mesaj: ccollezium
  [FORM] form klasör içinde dosya kontrolü obaysal42 4 2.181 29-12-2023, 10:24
Son Mesaj: burhanb
  [SORGU] ııf Ve ıs Not Null Birlkite Kullanımı Samih KARSLI 11 318 05-12-2023, 12:14
Son Mesaj: halily
  Autoexec Kullanımı ates2014 8 212 12-11-2023, 17:42
Son Mesaj: BeyTor
access-sql-9 Text Kutusundaki Rakamı Alt Formda Bulan Hesap Sutunun Tüm Satırlarına Nasıl Eklenir bilservisci 7 273 29-08-2023, 22:19
Son Mesaj: bilservisci
  Boş Alan Kontrolü (taruz) : Rapor Butonu prtkl 5 272 31-05-2023, 22:48
Son Mesaj: hnakis
  Sql Satırında Değişken Kullanımı Hakkında Yardım programmer67 3 179 26-04-2023, 12:02
Son Mesaj: halily

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi