AccessTr.neT

Tam Versiyon: Farklı formlarda bulunan giriş-çıkış tutarının Kasa formuna eklemek
Ş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 5
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. 



 
Sayfalar: 1 2 3 4 5