Stok Hareketlerinde Ters Kaydın Görülmemesi

17/10/2018, 11:03

aliyuzen

Merhaba,

Basit bir stok veritabanı yapmak istedim. Ancak, bir konuda takıldım.
Programı ekte bulabilirsiniz. Çalıştırmadan önce linkleri Bağlı Tablo Yöneticisinden yenilerseniz sevinirim.

Stok Hareketleri butonuna bastığınızda,
1. Girişi ve çıkışı yapılmış malzemelere ilişkin adetleri görebiliyorum.
2. Sadece, girişi yapılmış (çıkışı yapılmamış) malzemelere ilişkin adetleri görebiliyorum.

Ustalarımdan ricam şu;
Ters Stok Hareketleri butonuna bastığınızda, görülen malzemenin girişi stoğa yapılmadığı için çıkış yapıldığında da stok eksiye düşmektedir.
Bu sorgudaki veriyi, stok hareketleri butonuna bsatığımdaki sorguda görebilir miyim? Böylece, üç olasılığı da bir sorguda görüp stoğumu tek sorgu ile yönetebileceğim.

Ne yaptıysam, aynı sorguda bu kırmızı ile işaretlediğim üç olasılığa ilişkin sonuçları göremedim.

Bekli de, stok girişi hiç olmayan ya da eksiye düşecek durumda olan malzemelerin de çıkışı yapmak istediğimde program beni uyarsa, bu da bir yöntem diye düşünüyorum. Ama bunu da beceremedim.

Ustalarımdan yardım rica ediyorum. Zaman ayıran okuyan herkese teşekkürler.

*** İçindeki veriler gerçeği yansıtmamaktadır. Örnektir.
17/10/2018, 12:11

ozanakkaya

Merhaba,
1_3_StokAdedi sorgusunun Sql kodunu aşağıdaki ile değiştirerek deneyiniz.

SELECT Que_1_1_Giris_Adedi.yer, Que_1_1_Giris_Adedi.model, IIf(IsNull([Giris_Adedi]),0,[Giris_Adedi]) AS G_A, IIf(IsNull([Cikis_Adedi]),0,[Cikis_Adedi]) AS C_A, [G_A]-[C_A] AS Stok_Adedi
FROM Que_1_1_Giris_Adedi LEFT JOIN Que_1_2_Cikis_Adedi ON (Que_1_1_Giris_Adedi.yer = Que_1_2_Cikis_Adedi.yer) AND (Que_1_1_Giris_Adedi.model = Que_1_2_Cikis_Adedi.model);
UNION SELECT Que_1_5_Ters_Stok_Ad.yer, Que_1_5_Ters_Stok_Ad.model, Que_1_5_Ters_Stok_Ad.G_A, Que_1_5_Ters_Stok_Ad.C_A, Que_1_5_Ters_Stok_Ad.Stok_Adedi
FROM Que_1_5_Ters_Stok_Ad
WHERE (((Que_1_5_Ters_Stok_Ad.Stok_Adedi)<0));


Ayrıca,

frm_2_cikis isimli formdaki, model isimli açılan kutunun güncelleştirme sonrasında olayına

Dim GStokSayisi As Integer

GStokSayisi = DCount("[adet]", "tbl_stok", "[model]='" & Me.model & "'")

If GStokSayisi = 0 Then

   MsgBox ("Bu ürüne ait stok bulunmamaktadır")

End If

kodu eklerseniz, model seçtiğinizde stoktaki verisi 0 ise mesaj kutusu görünür.

adet isimli açılan kutunun güncelleştirme sonrasında olayına

Dim GStokSayisi As Integer

GStokSayisi = DCount("[adet]", "tbl_stok", "[model]='" & Me.model & "'")

If GStokSayisi < Me.adet Then

   MsgBox ("Bu ürüne ait stokta " & GStokSayisi & " adet bulunmamaktadır")

End If

kodu eklerseniz, stokta 5 ürün varsa ve siz 6 yazarsanız yine mesaj kutusu görünür.
17/10/2018, 15:22

aliyuzen

Hocam,

Desteğiniz için çok teşekkür ederim.

Yalnız aşağıdaki şekilde uyarladım. Ancak, mesajdaki adetler doğru dönmedi.



frm_2_cikis isimli formdaki, model isimli açılan kutunun güncelleştirme sonrasında olayına

Kod:
Dim GStokSayisi As Integer

GStokSayisi = DCount("[adet]", "tbl_stok", "[model]='" & Me.model & "'")

If GStokSayisi = 0 Then

   MsgBox ("Bu ürüne ait stok bulunmamaktadır")

End If

kodu eklerseniz, model seçtiğinizde stoktaki verisi 0 ise mesaj kutusu görünür.

Doktor Muayene Örtüsü için kayıt girdiğimde bana yanlış adet döndürdü.
Adet yerine sanki toplam kalan stok adedini kontrol etmesi gerekmez mi hocam...



adet isimli açılan kutunun güncelleştirme sonrasında olayına

Kod:
Dim GStokSayisi As Integer

GStokSayisi = DCount("[adet]", "tbl_stok", "[model]='" & Me.model & "'")

If GStokSayisi < Me.adet Then

   MsgBox ("Bu ürüne ait stokta " & GStokSayisi & " adet bulunmamaktadır")

End If

kodu eklerseniz, stokta 5 ürün varsa ve siz 6 yazarsanız yine mesaj kutusu görünür.

Doktor Muayene Örtüsü için kayıt girdiğimde bana yanlış adet döndürdü.
17/10/2018, 15:32

aliyuzen

Ozan Hocam,

Yaptığınız formülde işlem türü bazında toplamıyor... Giriş ve çıkış adetlerini bir topluyor.
Bu yüzden gerçek sonuçları alamıyorum. Nasıl yapabiliriz?
17/10/2018, 17:27

ozanakkaya

Merhaba, 


GStokSayisi = DCount("[adet]", "tbl_stok", "[model]='" & Me.model & "'")

şeklindeki kodu aşağıdaki ile değiştirerek deneyiniz. Verdiğim DCount hatalı, Dsum olması lazım. 



GStokSayisi = Dsum ("[adet]", "tbl_stok", "[islem_turu]= '" & "Giriş" & "' And [model]= '" & [model] & "'") - Dsum ("[adet]", "tbl_stok", "[islem_turu]= '" & "Çıkış" & "' And [model]= '" & [model] & "'")
18/10/2018, 09:50

aliyuzen

(17/10/2018, 17:27)ozanakkaya yazdı: Merhaba, 


GStokSayisi = DCount("[adet]", "tbl_stok", "[model]='" & Me.model & "'")

şeklindeki kodu aşağıdaki ile değiştirerek deneyiniz. Verdiğim DCount hatalı, Dsum olması lazım. 



GStokSayisi = Dsum ("[adet]", "tbl_stok", "[islem_turu]= '" & "Giriş" & "' And [model]= '" & [model] & "'") - Dsum ("[adet]", "tbl_stok", "[islem_turu]= '" & "Çıkış" & "' And [model]= '" & [model] & "'")


Hocam,

düzeldi. Desteğiniz için teşekkürler.
Konuyu kapatabiliriz.