منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : خصم الكميات الموجوده باكتر من تاريخ
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
شكرا يا بشمهندس بالفعل نفذت المطلوب
شكرا لكل الاساتذه المحترمين الى ردوا بس لو حد دخل علشان يستفاد بشكل اعمق يلاقى حل لمشكله بتواجه كتير مننا 
الى هى عنوان الموضوع 
الفكره الى عايز اطبقها هو بمجرد استعلام عن الصنف واخر تاريخ 
يبقى لو الكميه اكبر من الكمية المباعه يبقى يعمل ابديت لو مساويه يحذف لو اكبر  ياخد القيمه المتبقيه ويعيد الاستعلام تانى 
الرجاء المساعده فى الكود علشان نقفل الموضوع بحل فى الاخر يفيد اى حد يدخل يقرى الموضوع
انا كاتب جزء من الكود وهى فى حالة انه اقل من الكميه وطالع معايا خطا
كود :
  For Each r As DataGridViewRow In dgvprodac.Rows
           Dim ad As Integer = Val(r.Cells(0).Value)
           Dim txP As String = Val(r.Cells(1).Value)
           Dim xt As Single = Val(r.Cells(2).Value)
           Dim txC As Integer = Val(r.Cells(3).Value)
           Dim cmd As OleDbCommand = New OleDbCommand("SELECT date_ex, sanf_kem from store WHERE ID_sanf =@pass ORDER BY  date_ex", con)
           cmd.Parameters.Add(New OleDbParameter("@pass", ad))
           If con.State = ConnectionState.Open Then
               con.Close()
           End If
           con.Open()
           Dim dr As OleDbDataReader = cmd.ExecuteReader
           While dr.Read()
               DateTimePicker1.Value = dr(0)
               TextBox5.Text = dr(1)
               con.Close()
               dr.Close()
               Exit While
           End While
           If Val(TextBox5.Text) > xt Then
               md.CommandText = String.Format(" UPDATE [store] SET [sanf_kem] = sanf_kem -{0}  WHERE [ID_sanf] = {1} and [date_ex] ={2}", xt, ad, dr(0))
               con.Open()
               md.ExecuteNonQuery()
               con.Close()
           End If
       Next
(20-07-20, 03:15 AM)NABILWARSAW كتب : [ -> ]شكرا لكل الاساتذه المحترمين الى ردوا بس لو حد دخل علشان يستفاد بشكل اعمق يلاقى حل لمشكله بتواجه كتير مننا 
الى هى عنوان الموضوع 
الفكره الى عايز اطبقها هو بمجرد استعلام عن الصنف واخر تاريخ 
يبقى لو الكميه اكبر من الكمية المباعه يبقى يعمل ابديت لو مساويه يحذف لو اكبر  ياخد القيمه المتبقيه ويعيد الاستعلام تانى 
الرجاء المساعده فى الكود علشان نقفل الموضوع بحل فى الاخر يفيد اى حد يدخل يقرى الموضوع
انا كاتب جزء من الكود وهى فى حالة انه اقل من الكميه وطالع معايا خطا
كود :
  For Each r As DataGridViewRow In dgvprodac.Rows
           Dim ad As Integer = Val(r.Cells(0).Value)
           Dim txP As String = Val(r.Cells(1).Value)
           Dim xt As Single = Val(r.Cells(2).Value)
           Dim txC As Integer = Val(r.Cells(3).Value)
           Dim cmd As OleDbCommand = New OleDbCommand("SELECT date_ex, sanf_kem from store WHERE ID_sanf =@pass ORDER BY  date_ex", con)
           cmd.Parameters.Add(New OleDbParameter("@pass", ad))
           If con.State = ConnectionState.Open Then
               con.Close()
           End If
           con.Open()
           Dim dr As OleDbDataReader = cmd.ExecuteReader
           While dr.Read()
               DateTimePicker1.Value = dr(0)
               TextBox5.Text = dr(1)
               con.Close()
               dr.Close()
               Exit While
           End While
           If Val(TextBox5.Text) > xt Then
               md.CommandText = String.Format(" UPDATE [store] SET [sanf_kem] = sanf_kem -{0}  WHERE [ID_sanf] = {1} and [date_ex] ={2}", xt, ad, dr(0))
               con.Open()
               md.ExecuteNonQuery()
               con.Close()
           End If
       Next

السلام عليكم و رحمة الله و بركاته

يفضل وضع رسالة الخطأ حتى تتسنى المساعدة

و ربما الخطأ في هذه الجزئية

كود :
[sanf_kem] = sanf_kem -{0}


أنت تحتاجها تساوي صفر، فلم لا تجعلها صفر مباشرة؟

كود :
[sanf_kem] = 0
ده باراميتر مش صفر
(20-07-20, 06:50 PM)NABILWARSAW كتب : [ -> ]ده باراميتر مش صفر


عارف انه مش صفر و انه الباراميتر الاول (xt)

انا بتكلم على الكود نفسه انه في حالة الصنف المباع اكثر من الكمية بالتاريخ الاقدم فبيخليها صفر و ده الشرط اللي انت حاطه في الكود

كود :
If Val(TextBox5.Text) > xt
الصفحات : 1 2