20-07-20, 11:32 AM
(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