Sorgudaki değişime göre formda uyarı vermek

16/11/2016, 12:12

mehmetb84

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.
16/11/2016, 15:38

simendifer

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
16/11/2016, 16:02

mehmetb84

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.
16/11/2016, 22:50

ozanakkaya

f_sarfalt isimli alt formun kayıt kaynağını aşağıdaki ile değiştir.


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
16/11/2016, 23:08

mehmetb84

Mükemmelsiniz Ozay Bey, çok teşekkürler. Tam istediğim gibi oldu.