Skip to main content

AccessTr.neT M.


Stoktan Sevk Koşulunu Oluşturamıyorum

Stoktan Sevk Koşulunu Oluşturamıyorum

Çözüldü #1
Merhabalar,
sipariş yoğunluğuna göre stoğa veya siparişe göre üretim yapan bir firmadayım, bundan dolayı siparişleri önce stok adetlerini kontrol ettikten sonra sipariş girişinde sipariş miktarıyla beraber stoktan sevk edilecek miktarı da giriyoruz.
ekteki örnek uygulamada yapmak istediğim: ürünün sevk işlemleri sırasında sevk miktarı girildiğinde halihazırda toplam sevkedilen miktarı da göz önünde bulundurarak müşterisiz stoktan düşülecek miktarı hesaplamak istiyorum.
örneğin; (ekte Excel tablosuyla yapmak istediğimi de gösterdim)
a) Form1'de 1 nolu sipariş id'yi yazıp sipariş miktarı(12),stoktan sevk adedi(4),toplam sevkedilen(6) ve sevk bekleyen(6) otomatik geldikten sonra sevk miktarını 3 girince (sevk bekleyen değerden küçük eşit hangi değeri girersem gireyim) stoktan düşümü hesaplanan değer ilk giren ilk çıkar kuralına göre toplam sevk edilen değer stoktan sevk adedinden küçük olduğu için 0(sıfır)  değeri vermeli.
b) Form1'de 2 nolu sipariş id'yi yazıp sipariş miktarı(10),stoktan sevk adedi(0),toplam sevkedilen(0) ve sevk bekleyen(10) otomatik geldikten sonra sevk miktarını 6 girince (sevk bekleyen değerden küçük eşit hangi değeri girersem gireyim) stoktan sevk adedi 0(sıfır) olduğu için stoktan düşümü hesaplanan 0(sıfır)  değeri vermeli.
c) Form1'de 3 nolu sipariş id'yi yazıp sipariş miktarı(10),stoktan sevk adedi(2),toplam sevkedilen(1) ve sevk bekleyen(9) otomatik geldikten sonra sevk miktarını 7 girince stoktan sevk edilmeyi bekleyen (stoktan sevk adedi(2)-toplam sevkedilen(1)=1) 1 tane kaldığı ve sevk miktarı(7)ndan küçük olduğu için stoktan düşümü hesaplanan 1 değeri vermeli.
d) Form1'de 4 nolu sipariş id'yi yazıp sipariş miktarı(15),stoktan sevk adedi(10),toplam sevkedilen(5) ve sevk bekleyen(10) otomatik geldikten sonra sevk miktarını 4 girince stoktan sevk edilmeyi bekleyen (stoktan sevk adedi(10)-toplam sevkedilen(5)=5) 5 tane kaldığı ve sevk miktarı(4)ndan büyük olduğu için stoktan düşümü hesaplanan 4 değeri vermeli.
bu mantığı programda şu koşullarla yapmaya çalıştım ama bir türlü olmuyor, nerede hata yapıyorum bir türlü bulamadım.

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Komut22_Click()
If Me.sevk_adet > Me.sevk_bekleyen Then
    MsgBox "Sevk Bekleyenden daha büyük değer giremezsiniz!...", vbInformation, "SEVK İŞLEMLERİ"
    Me.sevk_adet = Me.sevk_bekleyen
Else
    Select Case Me.stoktan_sevk_adet
    Case 0
        Me.hesaplanan = 0
    Case Else
        Select Case Me.toplam_sevkedilen    'ilk giren ilk çıkar mantığına göre eğer toplam sevkedilen siparişin
        Case Is >= Me.stoktan_sevk_adet     'stoktan sevk edilecek miktarından büyükse stoktan rezerve edilenler zaten sevk edilmiştir.
            Me.hesaplanan = 0               'bundan dolayı stoktan sevk edilecek miktar 0'dır
        Case Else
            If (Me.stoktan_sevk_adet - Me.toplam_sevkedilen) <= Me.sevk_adet Then   'eğer siparişin daha stoktan sevkedilecek kalanı sevk miktarından küçük eşit ise
            Me.hesaplanan = (Me.stoktan_sevk_adet - Me.toplam_sevkedilen)           'hesaplanacak değer bu fark kadardır
            Else                                                                    'eğer bu fark büyükse
            Me.hesaplanan = Me.sevk_adet                                            'hesaplanan değer girilen sevk adedi kadardır
            End If
        End Select
    End Select
End If

End Sub

.rar stoktan sevk hesabı.rar (Dosya Boyutu: 51,58 KB | İndirme Sayısı: 2)
Cevapla
#2

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
If Me.sevk_adet < Me.sevk_bekleyen Then

    MsgBox "Sevk Bekleyenden daha büyük değer giremezsiniz!...", vbInformation, "SEVK İŞLEMLERİ"
    Me.sevk_adet = Me.sevk_bekleyen

ElseIf Me.stoktan_sevk_adet = 0 Then

    Me.hesaplanan = 0

ElseIf Me.toplam_sevkedilen >= Me.stoktan_sevk_adet Then

    Me.hesaplanan = 0

ElseIf (Val(Me.stoktan_sevk_adet - Me.toplam_sevkedilen) <= Val(Me.sevk_adet)) Then

    Me.hesaplanan = (Me.stoktan_sevk_adet - Me.toplam_sevkedilen)
    
ElseIf (Val(Me.stoktan_sevk_adet - Me.toplam_sevkedilen) > Val(Me.sevk_adet)) Then

    Me.hesaplanan = Me.sevk_adet

Else

    Me.hesaplanan = Me.sevk_adet

End If


kodunu deneyiniz.

"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
...........
#3
Hocam Teşekkür Ederim, Kod genel olarak başarılı ancak koşulların ilk aşaması olan sevk miktarının sevk bekleyenden büyük olmaması gerektiği kuralı işlemiyor, siz benim ilk koddaki darboğazı > işaretini < işaretine dönüştürerek aşmışsınız ancak bu asıl ilk koşul kontrolünü ortadan kaldırıyordu. problemi bu ilk koşul değişkenlerinin başına Val() ekleyerek çözdüm. kodun son hali :

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
If Val(Me.sevk_adet) > Val(Me.sevk_bekleyen) Then

    MsgBox "Sevk Bekleyenden daha büyük değer giremezsiniz!...", vbInformation, "SEVK İŞLEMLERİ"
    Me.sevk_adet = Me.sevk_bekleyen

ElseIf Val(Me.stoktan_sevk_adet) = 0 Then

    Me.hesaplanan = 0

ElseIf Val(Me.toplam_sevkedilen) >= Val(Me.stoktan_sevk_adet) Then

    Me.hesaplanan = 0

ElseIf ((Val(Me.stoktan_sevk_adet) - Val(Me.toplam_sevkedilen)) <= Val(Me.sevk_adet)) Then

    Me.hesaplanan = (Val(Me.stoktan_sevk_adet) - Val(Me.toplam_sevkedilen))
    
ElseIf (Val(Me.stoktan_sevk_adet) - Val(Me.toplam_sevkedilen)) > Val(Me.sevk_adet) Then

    Me.hesaplanan = Val(Me.sevk_adet)

Else

    Me.hesaplanan = Val(Me.sevk_adet)

End If



Problemim Çözülmüştür.

Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task