Sayın Hocalarım,
Ekteki çalışmamda Odemebilgileri formunda odemetutarı alanına girilen veri 0 da olsa Kaydetme msj. alabiliyorum ve Msj.hayır dediğimde Kasaya kaydetmiyor,ancak odemebilgileri1 alt formuna yazıyor.
Uygulanan Msj.kodu aşağıdadır.
Kod:
Private Sub ODEMETUTARI_Exit(Cancel As Integer)
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
End If
End Sub
Bu Kaydetme msj.ına Odemetutarı alanı 0 ise ve Kaydetme Msj.Hayır dediğimde Odemebilgileri1 alt formuna yazmaması yani işlemi iptal veya bir şekilde yok saymasını nasıl gerçekleştirebilirim.
Saygılarımla.
Private Sub ODEMETUTARI_Exit(Cancel As Integer)
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
If IsNull(Me.ODEMETUTARI) Or Me.ODEMETUTARI = "" Or Me.ODEMETUTARI = 0 Then
MsgBox " Dikkat...Tutar Yazmadan kayıt edemezsiniz...!"
Me.ODEMETARIHI.SetFocus
Me.ODEMETUTARI.SetFocus
'Exit Sub
Else
End If
Else
End If
End Sub
Sayın Celoyce Hocam,
Cevabınız vede ilginiz için çok teşekkür ederim,Ancak sanırım msj.da tam anlatamadım ben,bu nedenle
kusuruma bakmayın.
Olay şu hocam,İşlem Kaydedilsinmi msj. Hayır dendiğinde yapılan işlemi iptal etmesi gerekiyor,yani Ödeme bilgileri1 formuna aktarmayacağı gibi Odemebilgileri formunda bulunan alanlarıda iptal etmesi
gerekiyor.
Saygılarımla.
Kod hatalı, metin kutusunun güncelleştirme sonrasında olayına tablolara veri aktaran kod eklemişsiniz. Uyarı penceresini metin kutusunun çıkıldığında olayına yazmışsınız ve hayır için hiçbir koşul belirtilmemiş.
F_ODEMEBILGILERI isimli formdaki ODEMETUTARI metin kutusunun güncelleştirme sonrasında olayına ve çıkıldığında olayına yazılan kodları sil.
ODEMETUTARI metin kutusunun güncelleştirme sonrasında olayına aşağıdaki kodu ekle
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
VeriAktar
Else
Me.ODEMETARIHI = ""
Me.acl_ODEMETURU = ""
Me.acl_ODEMEYONTEMI = ""
Me.ODEMETUTARI = ""
Exit Sub
End If
Daha sonra
Vba sayfasında en alta aşağıdaki kodu ekle
Sub VeriAktar()
Dim db As Database
Dim rs, rs2, rs3 As DAO.Recordset
Dim strSQL, strSQL2, strSQL3 As String
Set db = CurrentDb()
strSQL = "SELECT * FROM T_ODEMEBİLGİLERİ"
strSQL2 = "SELECT * FROM T_KASA"
strSQL3 = "SELECT TOP 1 ISLEMTARIHI AS tarihkontrol, T_KASA.* FROM T_KASA WHERE (((ISLEMTARIHI)=Date()) AND (([GELIRCESIDI]) Is Null));"
Set rs = db.OpenRecordset(strSQL)
rs.AddNew
rs!ISLEMNO = Me.Parent.ISLEMNO
rs!ODEMETARIHI = Now()
rs!ODEMETURU = Me.acl_ODEMETURU
rs!ODEMEYONTEMI = Me.acl_ODEMEYONTEMI
rs!ODEMETUTARI = Me.ODEMETUTARI
rs.Update
Set rs2 = db.OpenRecordset(strSQL2)
Set rs3 = db.OpenRecordset(strSQL3)
If rs3.EOF Then
rs2.AddNew
rs2!ISLEMTARIHI = Me.ODEMETARIHI
rs2!GELIRCESIDI = Me.acl_ODEMETURU
If Me.acl_ODEMEYONTEMI = "Nakit" Then
rs2!NAKIT = Me.ODEMETUTARI
ElseIf Me.acl_ODEMEYONTEMI = "Kredi Kartı" Then
rs2!KREDIKARTI = Me.ODEMETUTARI
ElseIf Me.acl_ODEMEYONTEMI = "Banka" Then
rs2!BANKA = Me.ODEMETUTARI
ElseIf Me.acl_ODEMEYONTEMI = "Alacak" Then
rs2!ALACAK = Me.ODEMETUTARI
End If
rs2.Update
Else
rs3.Edit
rs3!GELIRCESIDI = Me.ODEMETUTARI
If Me.acl_ODEMEYONTEMI = "Nakit" Then
rs3!NAKIT = Me.ODEMETUTARI
ElseIf Me.acl_ODEMEYONTEMI = "Kredi Kartı" Then
rs3!KREDIKARTI = Me.ODEMETUTARI
ElseIf Me.acl_ODEMEYONTEMI = "Banka" Then
rs3!BANKA = Me.ODEMETUTARI
ElseIf Me.acl_ODEMEYONTEMI = "Alacak" Then
rs3!ALACAK = Me.ODEMETUTARI
End If
rs3.Update
End If
rs.Close
rs2.Close
rs3.Close
db.Close
Set rs = Nothing
Set rs2 = Nothing
Set rs3 = Nothing
Set db = Nothing
Me.ODEMETARIHI = Null
Me.acl_ODEMETURU = Null
Me.acl_ODEMEYONTEMI = Null
Me.ODEMETUTARI = Null
Me.Recalc
Me.ODEMETARIHI.SetFocus
Forms![F_TEKNİKSERVİS]![ODEMETOPLAMI] = Forms![F_TEKNİKSERVİS]![F_ODEMEBİLGİLERİ1].Form![Top_Odeme]
Forms!F_TEKNİKSERVİS.KAL = Forms![F_TEKNİKSERVİS]![HESAPTOP] - Forms![F_TEKNİKSERVİS]![ODEMETOPLAMI]
End Sub
Sayın Ozan Hocam,
Emeğinize sağlık çok sağolun varolun süper oldu çok teşekkür ederim.
Bu vesile ilede Yeni Yılınızı Kutlar Ailenizile sağlıklı,huzurlu bir yıl geçirmenizi temenni ederim.
Saygılarımla.