الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة كبيرة في تعديل البيانات لم اجد لها حلا !

مغلق
بدأه Visual Studio في 13 فبراير 2006 · 11 رد · 823 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هناك شيء غريب لاحظته عندما أقوم بتعديل أي بيانات في textbox مثلا :

المشكلة هي عند تنفيذ عملية التعديل فإنها تعدل فعلا إلا لو مسحت هذا textbox من البيانات إطلاقا , فإنه يرجع لي البيانات مرة أخرى

علما بانه يقبل الحفظ فارغا من البداية , لكن إن أدخلت له بيانات وأردت مسحها بواسطة زر تعديل فإنها لا تسمح أبدا بل لا بد من كتابة أي بيانات فيه ولو صفر مثلا

فما حل هذه المشكلة ؟ علما بأني غيرت طريقة الاتصال من adOpenStatic إلى adOpenDynamic ولا فائدة , وحاولت اللعب في خصائص الحقل في قاعدة البيانات دون أي فائدة

وهذا هو الكود

 Dim db As New ADODB.Connection
 Dim EditORAdd As Boolean
 Dim rs As New ADODB.Recordset

وهذا كود الاتصال

 db.Provider = "Microsoft.JET.OLEDB.4.0;"
   db.Open App.Path & "\db1.mdb"
   rs.Open "[Table1]", db, adOpenStatic, adLockPessimistic
'
 Call ViewRecord

Sub ViewRecord()
'
 If Not rs.RecordCount = 0 Then
'
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
'
    If Not IsNull(rs![ID]) Then Text1 = rs![ID]
    If Not IsNull(rs![CategoryName]) Then Text2 = rs![CategoryName]
    If Not IsNull(rs![Description]) Then Text3 = rs![Description]
'
 End If
End Sub

وهذا هو كود الحفظ للإضافة والتعديل

If Trim(Text2.Text) = "" Then
    MsgBox "Connot contain a Null Value .", vbCritical, "Message"
    Text2.SetFocus
    Exit Sub
 End If
'
 With rs
      If EditORAdd = True Then .AddNew
'
      ![CategoryName] = Trim(Text2.Text)
      If Not Trim(Text3.Text) = "" Then ![Description] = Trim(Text3.Text)
'
      .Update
 End With
'
 If EditORAdd = True Then
      rs.Requery
      rs.MoveLast
 End If

 Call ViewRecord
#4

بسم الله

اخي الكريم محمد

ما افتهمت لي المشكلة بالضبط :(

اقتباس
المشكلة هي عند تنفيذ عملية التعديل فإنها تعدل فعلا إلا لو مسحت هذا textbox من البيانات إطلاقا , فإنه يرجع لي البيانات مرة أخرى

ايش تقصد اذا مسحت البيانات اطلاقا ؟؟ :o

اقتباس
لكن إن أدخلت له بيانات وأردت مسحها بواسطة زر تعديل فإنها لا تسمح أبدا بل لا بد من

كتابة أي بيانات فيه ولو صفر مثلا

كيف يعني تمسح البيانات بزر التعديل؟؟ :unsure:

يعني انت اذا اضفت سجل جديد ما فيه اي مشاكل ..صح :rolleyes:

اذا اردت التعديل فيه .... هل يقوم بالتعديل ؟ ام انه يسمح لك بالتعديل وعند الحفظ أو الخروج من الشاشة او البرنامج تجد ان السجل القديم هو الموجود ولم يحصل اي تعديل ؟؟

كل ما أريده منك هو توضيح جوهر المشكلة

بالتوفيق

اخوك خالد

إذا كان ترك الدين يعني تقدما ***** فيا نفس موتي قبل أن تتقدمي

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

قتل امرئٍ في غابةٍ ***** جريمة لا تغتفـر

وقتل شعبٍ بأكمله ****** مسألةٌ فها نظر

حتى الكلاب إذا رأت يوماً فقيراً ماشياً *** نبحت عليه وكشرت أنيابها

الاعجاز العلمي في القرآن والسنة

#5

أخي الكريم خالد

أنا وضعت لك مثال في المرفقات وهو مكون من ثلاثة Text

ID

category name

description

وكل منهم به بيانات

أريدك الآن أن تجرب وتضغط زر Edit (وهو التعديل) وتمسح بيانات الحقل description ثم تضغط زر حفظ

ستلاحظ أنه لن يتم الحفظ وهو فارغ بل ستجد القيمة السابقة كما هي فيه

وجرب مرة اخرى وضع صفر ( . ) أو أي شيء آخر وقم بالحفظ فستجد أنه يحفظ

أي أنه لا يمكنك عمل تعديل عليه بإفراغه من البيانات تماما بل لابد من إدخال أي قيمة

أرجو ان يكون اتضح الأمر

وجزاك الله خيرا

FilterRecord.rar

تم تعديل هذه المشاركة بواسطة محمد زغلول في 16 فبراير 2006 في 23:50

#6

ملاحظة بسيطة للأخ محمد وهي أنك يمكنك عمل تعديل على سجل بإفراغه من البيانات وذلك عن طريق إسناد قيمة Null إليه

rs![Name]=Null
#7

الاخ العزيز محمد زغلول

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

بالنسبة يا عزيزي لم اشاهد موضوعك إلا متأخر ولكن حصل خير

بالنسبة للخطاء تم تعديله والسبب

انك وضعت الحقل المطلوب في القاعدة عدم السماح بالطول الصفري والمفترض إذا ترغب في ذلك اظهار رساله للمستخدم عند تركه فارغاً او تعديله في قاعدة البيانات وتركه يقبل الحقل فارغ

وتقبل عاطر التحايا واي خدمه انا مستعد

FilterRecord.rar

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#8

للتنبيه فقط ؟؟؟

الاخ محمد التعديل على الحقل في قاعدة البيانات وجعله يقبل الطول الصفري ( فارغ) إذا لا ترغب في ذلك

قم باعادته وعليك ترك رساله للمستخدم تحذره عن ترك الحقل فراغ

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#9

أخي الكريم شهاب بارك الله فيك , معلومة جيدة

الأخ الكريم الفوارس

جزاك الله ألف خير وبصراحة انا كنت اعرف موضوع السماح بطول صفري وكنت قد غيرتها ولم تنفع معي !!!

وعموما المثال شغال جيدا وألف شكر لك

#10

لا شكر على واجب وانت تستاهل المساعده

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#11

تستطيع حل المشكلة بطريقة مختلفة :

If Trim(Text2.Text) = "" Then
   MsgBox "Connot contain a Null Value .", vbCritical, "Message"
   Text2.SetFocus
   Exit Sub
End If
'
With rs
     If EditORAdd = True Then .AddNew
'
     ![CategoryName] = Trim(Text2.Text)
     If Not Trim(Text3.Text) = "" Then 
![Description] = Trim(Text3.Text)
          Else 
![Description]=Null 
end if 
'
     .Update
End With
'
If EditORAdd = True Then
     rs.Requery
     rs.MoveLast
End If

Call ViewRecord

هذا الموضوع مغلق.

مواضيع مشابهة