قبل ان اقوم بالاطلاع على المرفق
تعال نتحدث قليلاً لما هو لديك فى الكود من مشكلة
انت الان قمت بعمل الاستعلام لتعبئة الداتا جريد
والى هنا جميل ولا يوجد مشكلة
ولكن المشكلة تقع فى قيمة الكمية فتعال نتخيلها ان الكمية 100
عند عمل الاستعلام عند المستخدم الاول
فاتا الشخص الثاني قام بفتح نفس الشاشة واصبح الكمية لديه 100 ايضاً
طيب تعال نقول ان المستخدم الثاني قام بتحديث الكمية واصبح الكمية لديه بعد التحديث 90
السؤال هنا واللى هو نقطة مهمة جداً جداً جداً تعتقد ان الكمية خاصة الـ 90 من المستخدم الثاني
سمعت عن المستخدم الاول اللى كانت عنده 100 حتى فتح الشاشة
كا قاعدة بيانات ايوة سمعت ولكن على الشاشة
وفى قيمة dttt لا وهى 100 حتى هذه اللحظة
ايه ده يعنى لو المستخدم الاول عمل تحديث الان على الكمية لينقص 20
بدل ما تكون القيمة 70 هتصبح 80
بكل تاكيد لان عند عملية التحديث تتم من خلال DataTable وليس من خلال كود
كالاستعلام لتحديث بقاعدة البيانات
طيب الحل هنا ايه
الحل هو بدلاً من استخدام هذا الجزؤ كما توقعت وشرحت بالاعلى بعد فتح المرفق
كود :
daaa = New OleDbDataAdapter("select * from TABLE_STOCK_FINAL WHERE Code = '" & dt1.Rows(i).Item("Code") & "' ", cn)
daaa.Fill(dttt)
ان تجعله كود
يتم الامر ازاي بناءاً على المرفق
انظر داخل حلقة For فى كود زر الحفظ
وقم بمسح الكود التالى
كود :
Dim dttt As New DataTable
Dim daaa As New OleDbDataAdapter
dttt.Clear()
daaa = New OleDbDataAdapter("select * from TABLE_STOCK_FINAL WHERE Code = '" & dt1.Rows(i).Item("Code") & "' ", cn)
daaa.Fill(dttt)
If dttt.Rows.Count <> 0 Then
dttt.Rows(0).Item("Qté") = dttt.Rows(0).Item("Qté") - DataGridView1.Rows(i).Cells("Qté").Value
Dim save As New OleDbCommandBuilder(daaa)
daaa.Update(dttt)
dttt.AcceptChanges()
End If
واستبدله بهذا الكود ليكون بدل ما تم مسحه
كود :
' Start Update To Database
If Not cn.State = ConnectionState.Open Then
cn.Open()
End If
Dim sqlins As String = "UPDATE TABLE_STOCK_FINAL SET Qté = Qté - " & DataGridView1.Rows(i).Cells("Qté").Value & " WHERE Code = '" & DataGridView1.Rows(i).Cells("Code").Value & "'"
Using cmd As New OleDbCommand(sqlins, cn)
cmd.ExecuteNonQuery()
End Using
cn.Close()
' End Add To Database
وبكدة سيتم حل المشكلة تماماً بامر الله
وسيصبح قاعدة بيانات Access كما لو انها Sql فى التعامل
الان للنقطة الاخيرة
إقتباس :بالنسبة للأعضاؤ الذين يستخدمون SQLSERVER أو MYSQL
لماذا لا يوجد لديهم هده المشاكل في الشبكة
يعني ما الفرقي الجوهري بينهم و بين ACCES في التعديل و الحدف
طبعاً يوجد فارق كبير جداً بين Access و Sql
قاعدة بيانات Access
هى للعوامل الفردية الصغيرة ولهذا لم تخصص للتعامل عبر الشبكات
والطريقة لجعلها كذلك هو فى الموضوع لشرحى كيف التعامل مع Access خلال الشبكة
بينما Sql من اى نوع فهو للتعامل مع الاحجام المتوسطة ولاكثر من 5 افراد فاكثر
طبعاً يوجد قواعد بيانات اضخم ولا نحتاج للنقاش عنها هنا
يمكنك الان اختبارا الكود
وابشر بان اصبح الامر معك افضل من الاول
وان تكون الصورة وضحت لديك كاملاً
وعفواً انا كنت قصرت لكونى لم اطلع على المرفق كاملاً
خلاف نقطة كود الحفظ سريعاً بسبب ضيق الوقت فقط
فسامحنى على ذلك
تحياتى لك
وتمنياتى لك التوفيق