Sayın Ozan Hocam,
Urungırıs için aşağıdaki uygulamayı yaptım
SELECT TOP 1 tbl_KASA.ISLEMTARIHI, tbl_KASA.GELIRCESIDI, tbl_KASA.GIDERCESIDI, tbl_KASA.NAKIT1
FROM tbl_KASA
WHERE (((tbl_KASA.ISLEMTARIHI)=[Formlar]![frm_URUNGIRIS]![ISTAR]) AND ((tbl_KASA.GIDERCESIDI) Is Null));
Private Sub gırısfıyatı_AfterUpdate()
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
If DCount("*", "srg_boskontrol3") > 0 Then
DoCmd.RunSQL "UPDATE srg_boskontrol3 SET srg_boskontrol3.GIDERCESIDI = [Formlar]![frm_URUNGIRIS]![URUNID] & ' - Satınalma', srg_boskontrol3.NAKIT1 = [Formlar]![frm_URUNGIRIS]![GIRISFIYATI] WHERE (((srg_boskontrol3.ISLEMTARIHI)=[Formlar]![frm_URUNGIRIS]![GIRISFIYATI]));"
Else
DoCmd.RunSQL "INSERT INTO tbl_KASA ( ISLEMTARIHI, NAKIT1, GIDERCESIDI ) SELECT tbl_URUNGIRIS.ISTAR, tbl_URUNGIRIS.GIRISFIYATI, tbl_GIRISFIYATI.URUNAD FROM tbl_URUNGIRIS INNER JOIN tbl_URUNGIRIS ON tbl_URUNGIRIS.URUNID = tbl_URUNGIRIS.URUNID WHERE (((tbl_URUNGIRIS.ISTAR)=[Formlar]![frm_URUNGIRIS]![ISTAR]) AND ((tbl_URUNGIRIS.GIRISFIYATI)=[Formlar]![frm_URUNGIRIS]![GIRISFIYATI]));"
End If
DoCmd.SetWarnings True
Else
Me.Undo
End If
End Sub
Hata vermedi ama sonuçta vermedi.
Saygılarımla.
Sayın Ozan Hocam,
Yaktığınız ışıkla yolumu aydınlattınız ve sonunda Urungırıs'i çözdüm ve aşağıdaki kodla uyarlayıp değiştirdim ve hatasız çalıştı.
Kod:
Private Sub gırısfıyatı_AfterUpdate()
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
If DCount("*", "srg_boskontrol3") > 0 Then
DoCmd.RunSQL "UPDATE srg_boskontrol3 SET srg_boskontrol3.GIDERCESIDI = [Formlar]![frm_URUNLER]![URUNAD] & ' - Satınalma', srg_boskontrol3.NAKIT1 = [Formlar]![frm_URUNGIRIS]![GIRISFIYATI] WHERE (((srg_boskontrol3.ISLEMTARIHI)=[Formlar]![frm_URUNGIRIS]![GIRISFIYATI]));"
Else
DoCmd.RunSQL "INSERT INTO tbl_KASA ( ISLEMTARIHI, NAKIT1, GIDERCESIDI ) SELECT tbl_URUNGIRIS.ISTAR, tbl_URUNGIRIS.GIRISFIYATI, tbl_URUNLER.URUNAD FROM tbl_URUNGIRIS INNER JOIN tbl_URUNLER ON tbl_URUNGIRIS.URUNID = tbl_URUNLER.URUNID WHERE (((tbl_URUNGIRIS.ISTAR)=[Formlar]![frm_URUNGIRIS]![ISTAR]) AND ((tbl_URUNGIRIS.GIRISFIYATI)=[Formlar]![frm_URUNGIRIS]![GIRISFIYATI]));"
End If
DoCmd.SetWarnings True
Else
Me.Undo
End If
End Sub
Urunçıkışıda aynı yöntemle yapabilirmiyim,ayrıca yukarıdaki kodu kontrol edebilirmisiniz Rica etsem.Birde hesaplanmış alanlar için ne yapabilirim.
Saygılarımla.
Sayın Ozan Hocam,
Bütün hayallerim yıkıldı,sevincim kursağımda kaldı.
Ürünçıkış ve Urungiriş için uyarladığım kodlar çalışıyor çalışmasına da şöyle bir sıkıntı var;
-Öncelikle yaptıklarımı yazayım Kasayı sıfırladım ve hiç veri kaydı kalmadı,Ürünçıkıştan veri aktardım veriyi sadece ürünad olarak Kasaya yazdı oysa Urunad & Satış olması gerekiyordu,
-Urungirişten veri aktardım bu seferde Formlar!frm_URUNLER[URUNAD] Şeklinde Parametre değeri sordu.
-Yazdığım işlemlerin tersini yaptım bu seferde Uruncıkıs ta aynı parametre değerini sordu.
Vaktiniz olduğunda bakabilirseniz sevinirim.
Saygılarımla.
Formlar!frm_URUNLER[URUNAD] şeklinde parametre sorması normal, siz işlemi "frm_URUNGIRIS" isimli formda yapıyorsunuz ancak parametreye frm_URUNLER yazmışsınız.
sizin srg_boskontrol3 isimli sorguda sıkıntı yok, ancak kod içerisindeki güncelleştirme ve/veya ekleme sorgusunda sıkıntı var.
20. mesaja eklediğiniz kodu aşağıdaki ile değiştiriniz.
Private Sub gırısfıyatı_AfterUpdate()
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
Dim GUrunAdi As String
GUrunAdi = Me.urunıd.Column(1) & " - Satınalma"
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
If DCount("*", "srg_boskontrol3") > 0 Then
DoCmd.RunSQL "UPDATE srg_boskontrol3 SET srg_boskontrol3.GIDERCESIDI = '" & GUrunAdi & "', srg_boskontrol3.NAKIT1 = [Formlar]![frm_URUNGIRIS]![gırısfıyatı] WHERE (((srg_boskontrol3.ISLEMTARIHI)=[Formlar]![frm_URUNGIRIS]![ıstar]));"
Else
DoCmd.RunSQL "INSERT INTO tbl_KASA ( ISLEMTARIHI, NAKIT1, GIDERCESIDI ) SELECT tbl_URUNGIRIS.ıstar, tbl_URUNGIRIS.gırısfıyatı, '" & GUrunAdi & "' FROM tbl_URUNGIRIS INNER JOIN tbl_URUNLER ON tbl_URUNGIRIS.urunıd = tbl_URUNLER.URUNID WHERE (((tbl_URUNGIRIS.ıstar)=[Formlar]![frm_URUNGIRIS]![ıstar]) AND ((tbl_URUNGIRIS.gırısfıyatı)=[Formlar]![frm_URUNGIRIS]![gırısfıyatı]));"
End If
DoCmd.SetWarnings True
Me.Requery
Else
Me.Undo
End If
End Sub
Sayın Ozan Hocam,
-Emek ve katkılarınız için çok teşekkür ederim,ellerinize sağlık.
-Hocam bir husuda daha var
-Oda şu;Kasa ya kayıt Nakıt ve Nakıt1 e yapılıyor,KKartı ve Banka Havalesi ile olanları nasıl yapacağım.
-Bunun için Ürün giriş ve Çıkış tablolarına yeni alanlarmı açmam gerek,açarsisem Kodda ne gibi bir değişiklik yapılabilir,görüşünüz ve engin fikrinize ihtiyacım var.
Saygılarımla.
urun giris ve urun cikis tablolarına ödeme yöntemi alanı ekleyip nakit için1, kredi kartı için 2 banka için 3 yazdırabilirsin.
ben urungiris formuna "acl_odemyon" adında açılan kutu ekledim,
satır kaynağı: "Nakit";"Kredi Kartı";"Banka"
satır kaynak türü : değer listesi
güncelleştirme sonrasında olayındaki kodu aşağıdaki ile değiştirdim.
Private Sub gırısfıyatı_AfterUpdate()
If Me.acl_odemyon = "" Or IsNull(Me.acl_odemyon) Then
MsgBox ("odeme yöntemi seçiniz")
Else
If MsgBox("İşlem kaydedilsin mi?", vbInformation + vbYesNo) = vbYes Then
Dim GUrunAdi, GOdemeTuru As String
GUrunAdi = Me.urunıd.Column(1) & " - Satınalma"
Select Case Me.acl_odemyon
Case "Nakit"
GOdemeTuru = "NAKIT1"
Case "Kredi Kartı"
GOdemeTuru = "KREDIKARTI1"
Case "Banka"
GOdemeTuru = "BANKA1"
End Select
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
If DCount("*", "srg_boskontrol3") > 0 Then
DoCmd.RunSQL "UPDATE srg_boskontrol3 SET srg_boskontrol3.GIDERCESIDI = '" & GUrunAdi & "', " & GOdemeTuru & " = [Formlar]![frm_URUNGIRIS]![gırısfıyatı] WHERE (((srg_boskontrol3.ISLEMTARIHI)=[Formlar]![frm_URUNGIRIS]![ıstar]));"
Else
DoCmd.RunSQL "INSERT INTO tbl_KASA ( ISLEMTARIHI, " & GOdemeTuru & ", GIDERCESIDI ) SELECT tbl_URUNGIRIS.ıstar, tbl_URUNGIRIS.gırısfıyatı, '" & GUrunAdi & "' FROM tbl_URUNGIRIS INNER JOIN tbl_URUNLER ON tbl_URUNGIRIS.urunıd = tbl_URUNLER.URUNID WHERE (((tbl_URUNGIRIS.ıstar)=[Formlar]![frm_URUNGIRIS]![ıstar]) AND ((tbl_URUNGIRIS.gırısfıyatı)=[Formlar]![frm_URUNGIRIS]![gırısfıyatı]));"
End If
DoCmd.SetWarnings True
Me.Requery
Else
Me.Undo
End If
End If
End Sub
srg_boskontrol3 sorgusuna kredikartı1 ve banka1 alanlarını ekledim.
açılan kutudan Kredi kartı seçip toplam tutarı güncelleyince veriyi kredikartı1'e kaydediyor.
tabloya ödeme yöntemi ile ilgili alan eklerseniz açılan kutuya denetim kaynağı eklemelisin.
ayrıca ödeme yöntemlerini içeren tablo (1-nakit, 2-kredi kartı, 3-banka) eklenebilir.