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

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

الكود وظيفته فقط الحفظ واريد اضافة عليه بعض الاشياء الجديدة

من ضمنها ان الكمية الموجودة لغرض معين 10 حبات
جاء زبون يشتري 5 حبات
البرنامج يطرح 10 - 5 = 5
فيقرأ البرنامج المتوفر فقط 5 حبات

والشيء الثاني بعد عملية الطرح واضهار المتوفر الحالي
جاء زبون اخر ويريد شراء نفس الغرض 6 حبات
فالبرنامج يقوم بإظهار مسج ويخبرك بان المتوفر 5 حبات ولا يستطيع تنفيذ العملية بسبب عدم توفر 6 حبات

الكود الى اريد تعديله :

كود :
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
               Dim sql As String =
                   "INSERT INTO [Rent]" &
                   "( Cus_ID, Cus_Name, Cus_Private_Number, Cus_Address, Cus_Car, Cus_Telephone_Number, Cus_Balance, Equ_Name, Equ_Price, Equ_Qantity, Rent_Date )" &
                   "VALUES" &
                   "( @Cus_ID, @Cus_Name, @Cus_Private_Number, @Cus_Address, @Cus_Car, @Cus_Telephone_Number, @Cus_Balance, @Equ_Name, @Equ_Price, @Equ_Qantity, @Rent_Date )"
               Using cmd As New OleDbCommand(sql, conn)
                   cmd.Parameters.AddWithValue("@Cus_ID", 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("@Cus_Balance", TextBox6.Text.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Name", row.Cells(0).Value.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Price", row.Cells(1).Value.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Qantity", row.Cells(2).Value.ToString)
                   cmd.Parameters.AddWithValue("@Rent_Date", DateTimePicker1.Value.ToString)
                   cmd.ExecuteNonQuery()
               End Using
           Next
           conn.Close()
       End Using
       MessageBox.Show("We have been successfully Date", "Congratulations", MessageBoxButtons.OK, MessageBoxIcon.Information)
   End Sub
اعمل دالة تعيد لك الكمية فقط، واستدعيها قبل تنفيذ العملية وقارن وبعدها قرر اما يطرح الكمية او يظهر رسالة.
ممكن مساعدة اخي ؟؟
هذه دالة من احد الدروس وضيفتها ترجع قيمة بمدلول عمود وهي هنا تعيد كمية بمدلول عمود id
PHP كود :
Public Function GetQuantity(id As Integer) As Integer
    Dim cmd 
As New OleDbCommand(String.Format("SELECT [Qty] FROM [Items] WHERE [ID]={0}"id), cnn)
    
cnn.Open()
    
Dim ret As Integer cmd.ExecuteScalar
    cnn
.Close()
    Return 
ret
End 
Function 

وبنفس الاسلوب عملت لك دالة تطرح من الكمية
PHP كود :
Public Function SubQuantity(id As Integerqty As Integer) As Boolean
    Dim cmd 
As New OleDbCommand(String.Format("UPDATE [Items] SET [Qty]=([Qty]-{0}) WHERE [ID]={1}"qtyid), cnn)
    
cnn.Open()
    
Dim ret As Integer cmd.ExecuteNonQuery()
    
cnn.Close()
    If 
ret 0 Then Return True
End 
Function 

الحين اللي عليك تستدعي الدالة GetQuantity عشان تعرف الكمية المتوفرة وعندها قرر هل تنفذ الدالة SubQuantity والا تظهر رسالة ان الكمية غير كافية