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

نسخة كاملة : شباب الفزعة من فضلكم الكود سابقا شغال من يومين والحين مايشتغل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كود التنقيص

كود :
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
           conn.Open()
           For Each row As DataGridViewRow In DataGridView1.Rows
               If row.Cells(0).Value Is Nothing Then Exit For
               Using cmd As New OleDbCommand("UPDATE Equpment SET [Equ_Qantity]=[Equ_Qantity] -1 WHERE Equ_ID=@Equ_ID", conn)
                   cmd.Parameters.AddWithValue("@Equ_Qantity", row.Cells(2).Value.ToString)
                   cmd.ExecuteNonQuery()
               End Using
           Next
           conn.Close()
       End Using
من يومين شغال والحين مادري ويش فيه ما يشتغل

اين الخلل واذا ارتم ارسال لكم المثال راح ارسله ليكم
مرحبا اخى

PHP كود :
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
           
conn.Open()
           For 
Each row As DataGridViewRow In DataGridView1.Rows
               
If row.Cells(0).Value Is Nothing Then Exit For
               
Using cmd As New OleDbCommand("UPDATE [Equpment] SET [Equ_Qantity]=[Equ_Qantity] - @Equ_Qantity WHERE [Equ_ID]=@Equ_ID"conn)
                   
cmd.Parameters.AddWithValue("@Equ_Qantity"val(row.Cells(2).Value) )
                   
cmd.Parameters.AddWithValue("@Equ_ID"val(row.Cells(0).Value) )
                   
cmd.ExecuteNonQuery()
               
End Using
           Next
           conn
.Close()
       
End Using 
عندي خلل بسيط في كود بعد الترجيع :

عندما اقوم بعملية الحفظ يتم الحفظ لكن العدد المرجع لايتم اضافته :

الكود :
كود :
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")

           conn.Open()
           For Each itm As ListViewItem In ListView1.Items
               If itm.SubItems(0).Text Is Nothing Then Exit For
               Using cmd As New OleDbCommand("UPDATE Equpment SET [Equ_Qantity]=[Equ_Qantity] +1 WHERE Equ_ID=@Equ_ID", conn)
                   cmd.Parameters.AddWithValue("@Equ_Qantity", itm.SubItems(2).Text.ToString)
                   cmd.ExecuteNonQuery()
               End Using
           Next
           conn.Close()
       End Using
كود الحفظ للترجيع :
كود :
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
           conn.Open()
           Dim sql As String =
                   "INSERT INTO [Return]" &
                   "( Cus_Balance, Cus_Name, Cus_Private_Number, Cus_Address, Cus_Car, Cus_Telephone_Number, Equ_Name, Equ_Qantity, Equ_Price, Rent_Date, Ret_Date )" &
                   "VALUES" &
                   "( @Cus_Balance, @Cus_Name, @Cus_Private_Number, @Cus_Address, @Cus_Car, @Cus_Telephone_Number, @Equ_Name, @Equ_Qantity, @Equ_Price, @Rent_Date, @Ret_Date )"
           Using cmd As New OleDbCommand(sql, conn)
               For Each itm As ListViewItem In ListView1.Items
                   cmd.Parameters.Clear()
                   cmd.Parameters.AddWithValue("@Cus_Balance", ComboBox1.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Name", TextBox1.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Private_Number", TextBox2.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Address", TextBox3.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Car", TextBox4.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Telephone_Number", TextBox5.Text.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Name", itm.SubItems(0).Text)
                   cmd.Parameters.AddWithValue("@Equ_Qantity", itm.SubItems(1).Text)
                   cmd.Parameters.AddWithValue("@Equ_Price", TextBox6.Text.ToString)
                   cmd.Parameters.AddWithValue("@Rent_Date", itm.SubItems(2).Text)
                   cmd.Parameters.AddWithValue("@Ret_Date", DateTimePicker1.Value.ToString)
                   cmd.ExecuteNonQuery()
               Next
           End Using
           conn.Close()
       End Using
       SumCount()
       MessageBox.Show("We have been successfully Date", "Congratulations", MessageBoxButtons.OK, MessageBoxIcon.Information)
الرجاء اخباري اين الخطأ
مرحبا اخى

اعتقد ان ما تخصم من المخزون مباشره
هذا مو حق خصم هذا بعد الخصم اريد الترجيع المفروض اذا كان المنتج 100 حبة وتم استئجار حبة واحدة يحصل 99 حبة المتبقية
وبعد الترجيع يرجع حبة فيكون عدد المنتج المتوفر 100

العملية تكون :
اثناء الخصم
100-1 = 99
اثناء الترجيع
1+99=100

وهكذا
أخي العزيز أرسل مثال أفضل للتعديل علية وتوضيح المشكلة والحل
تم رفع المثال اخي الفاضل مثل ماطلبت
أعتقد المشكلة لعدم الحفظ الكميات بعد التعديل انك بتعمل التعديل بناءا على رقم المعدة وهو غير موجود باللست فيو
PHP كود :
Sub SumCount()
        
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")

            
conn.Open()
            For 
Each itm As ListViewItem In ListView1.Items
                
If itm.SubItems(0).Text Is Nothing Then Exit For
                
Using cmd As New OleDbCommand("UPDATE Equpment SET [Equ_Qantity]=[Equ_Qantity] +1 WHERE Equ_name=@Equ_ID"conn)
                    
cmd.Parameters.AddWithValue("@Equ_Qantity"itm.SubItems(0).Text.ToString)
                    
cmd.ExecuteNonQuery()
                
End Using
            Next
            conn
.Close()
        
End Using
    End Sub 
اخي الفاضل

لقد قام بالترجيع بشكل جيد ولكن هناك خطأ بسيط

الزبون قد استأجر 20 حبة لماذا يقم بإضافة حبة واحدة والكمية المتوفرة هي 100 فيكون 101 بدل مايكون 120 حبة ؟؟
لحد الأن اقوم بالبحث ولم اوصل للحل