Merhaba Sayın @
atamsinAta
Orjinal çalışmanız bu ise gözden geçirilmeli bence. Form tasarımlarınız pek iyi değil ve planlama yapmadan bir çalışma yapılmış gibi duruyor. Ancak örnek olsun diye hazırladıysanız kendi çalışmanızda genel hatları ile yapmak istediğinizi en kolay şu şekilde yapabilirsiniz:
Tablo yapısı olarak ürünler ve alış satışlar ayrı tablolarda olmalı. Alış işlemleri için bir form tasarlamalı ve alınan ürün ve miktar bilgileri bu formdan girilmeli. Formda ürün alış türü koli / adet olarak belirlenebilir ve koli olarak aldığınızda iç adet bilgisi girersiniz, adet olarak aldığınızda ise sadece adet bilgisi girersiniz. Alış satış tablosunda toplam adet şeklinde bir alan eklemeniz işlemlerinizi kolaylaştıracak, koli olarak alış yaptığınızda iç adet ile çarpılan koli sayısı sonucu toplam adet bu alana işletilecek, adet olarak alış yaptığınızda ise alış tutarınız eklenecektir. Satış işlemleri içinde aynı mantık ile bir form oluşturur ve aynı mantıkla planlarsanız ister adet ister koli satış yapın toplam adedini de olursunuz.
Bu durumda örneğin satış formunda ürün seçimi yaptınız satış için ürün bilgileri ve stok miktarını göstereceğiniz textboxlar eklerseniz mesela Komili Yağ 5lt gibi bir ürün seçtiğinizde bu bilgiler ekrana gelir ve örneğin forma ekleyeceğiniz txt_StokMiktarı textboxında stok miktarını istediğiniz gibi izlerken satış işlemine ilişkin bilgileri de kotrollü olarak bu form üzerinden girebilirsiniz. Örneğin satış formunda ürün için bir combobox eklediğinizi farzedelim; buradan ürün seçim işleminden sonra ürün bilgileri ve stok miktarının forma gelmesi için güncelleştirme sonrasında olayını kullanarak ürün idsi bazında ürün kimlik bilgilerini forma işleyebilir ve aşağıdakine benzer bir kod ekleyerek stok miktarını da istediğiniz şekilde izleyebilirsiniz.
Dim IcAdet As Integer, ToplamAdet As Integer, SatilanAdet As Integer, KalanAdet As Integer, KalanKoli As Integer, StokKalanAdet As Integer
IcAdet = Me.IcAdet 'Ürün tablosu veya formdan iç adet bilgisini alın
ToplamAdet = Dsum ("ToplamAdet", "Tablonuz", Urun_ID = " & urunid &") 'Ürün tablosundan toplam adetleri formunuzdaki urunid için hesaplatın
SatilanAdet = Dsum ("satislar", "Tablonuz", Urun_ID = " & urunid &") 'Ürün tablosundan toplam satışları formunuzdaki urunid için hesaplatın
KalanAdet = ToplamAdet - SatilanAdet 'Satışlar sonrası kalan adet miktarını hesaplar
KalanKoli = KalanAdet \ IcAdet 'Kalan adete göre kalan koli bilgisini hesaplar
StokKalanAdet = KalanAdet Mod IcAdet 'Mod opratörü size içadet miktarına bölüm sonucu kalan adet sayısını yani kolinin açılması durumunda kaç adet kaldığı bilgisini verir.
Me.txt_StokMiktari = KalanKoli & " koli + " & StokKalanAdet & " adet" 'Örneğin forma ekleyeceğiniz txt_StokMiktarı adlı textboxa kalan stok bilgisini istediğiniz şekilde yazdırın
Mod operatörü bu tip işlemlerde size kolaylık sağlayacaktır. Bu nedenle yeterli bilgi sahibi değilseniz Mod kullanımı ve özelliklerini incelemenizi tavsiye ederim.