Merhaba Arkadaşlar,
Ekte göreceğiniz veritabanımın f_safust formunda, satınalma ve sarf kalemlerinin arasındaki farkı alan, dolayısıyla stokları gösteren bir liste kutusu mevcut.
Bu liste kutusunu çift tıkladığımız anda, ilgili kalitenin detayları sarf bölümüne aktarılarak, sarf edilen miktarın girilmesi isteniyor. Bu girilen miktar stok miktarından düşülerek listekutusunda gösteriliyor.
Benim yapmak istediğim stok miktarını eksi haneye düşürebilecek (yani stokta 1000adet bulunmakta iken 1001 adet giriş yapıldıktan sonra -1 olmasına neden olacak) kayıtların girilmesi halinde, msgbox ile bir uyarı yazdırmak. Bu sayede stokta bulunandan fazlasının sarf edilme yanlışlığının önüne geçebilmek istiyorum.
Yardımlarınız için şimdiden teşekkür ederim.
İyi günler.
Sorgudaki değişime göre formda uyarı vermek
ekteki program mehmet demiral hocanın inceleyiniz sanırım ihtiyaclarınıza cevap verebilecek bir prg artı eksi butonlarındaki kodlar işinize yarayacaktır kolay gelsin
Teşekkürler Simendifer,
Hocanın örneğini inceledim, fakat orada stok kontrolünü form ve tablo üzerinden yapıyor. Benim örneğimde ise, gruplanmış veriler üzerinden yapması lazım. Forms!listbox.column(1) den mesela. Benim çözemediğim ise bu söz konusu sütunun hangi satıra ait olacağını hangi kodla belirteceğim. Where ile mi yapacağım? öyle yapacaksam hangi kriterleri eşleştireceğim. Sorum bu malesef. Yine de teşekkürler ilgilendiğin için.
Hocanın örneğini inceledim, fakat orada stok kontrolünü form ve tablo üzerinden yapıyor. Benim örneğimde ise, gruplanmış veriler üzerinden yapması lazım. Forms!listbox.column(1) den mesela. Benim çözemediğim ise bu söz konusu sütunun hangi satıra ait olacağını hangi kodla belirteceğim. Where ile mi yapacağım? öyle yapacaksam hangi kriterleri eşleştireceğim. Sorum bu malesef. Yine de teşekkürler ilgilendiğin için.
f_sarfalt isimli alt formun kayıt kaynağını aşağıdaki ile değiştir.
f_sarfalt isimli alt formdaki sarf_adet metin kutusunun güncelleştirme sonrasında olayındaki kodu aşağıdaki ile değiştir.
Ayrıca, üst formdaki liste kutusunun çift tıklandığında olayındaki kodun en altına aşağıdaki kodu eklersen liste kutusuna çift tıkladığında alt formda son kayda gider.
SELECT *, [sarf_kalite] & "-" & [sarf_tip1] & "-" & [sarf_tip2] & "-" & [sarf_tip3] & "-" & [sarf_ebat] & "-" & [sarf_renk] & "-" & [sarf_fiyat] & "-" & [sarf_dovtip] & "-" & [sarf_not] AS GSarfKriter FROM sarf;
f_sarfalt isimli alt formdaki sarf_adet metin kutusunun güncelleştirme sonrasında olayındaki kodu aşağıdaki ile değiştir.
Dim GStokMiktari, GSarfMiktari As Integer
GStokMiktari = Dlookup ("Fark", "srg_sonuc", "GSatinAlmaKriter='" & Me.GSarfKriter & "'")
GSarfMiktari = Me.sarf_adet
If GSarfMiktari > GStokMiktari Then
MsgBox ("Stok Miktarından Daha Fazla Sarf miktarı Girdiniz." & Chr(13) & Chr(10) & "Stok Miktarı :" & GStokMiktari & ", Sarf Miktari: " & GSarfMiktari)
Me.Undo
Exit Sub
Else
[Forms]![f_sarfust].Requery
Forms!f_sarfust.Form!Listekutusu.Requery
End If
Ayrıca, üst formdaki liste kutusunun çift tıklandığında olayındaki kodun en altına aşağıdaki kodu eklersen liste kutusuna çift tıkladığında alt formda son kayda gider.
Me.f_sarfalt.SetFocus
DoCmd.GoToRecord , , acLast
[f_sarfalt].Form![sarf_adet].SetFocus
Mükemmelsiniz Ozay Bey, çok teşekkürler. Tam istediğim gibi oldu.
Konuyu Okuyanlar: 2 Ziyaretçi