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

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

مغلق
بدأه falantokh في 1 يونيو 2003 · 4 رد · 774 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أحبتي في الله .. السلام عليكم ورحمة الله وبركاته

سؤالي عن كيفية التأكد من أن الحقول في سجل غير منظم (UnBound) لم تتغير؟؟

بمعنى أوضح .. لدي فورم يعرض أحد السجلات بواسطة :

Set Lrst = db.OpenRecordset("SELECT * FROM TblMain Where((TblMain.Serial)='" & Me.Serial & "');", dbOpenDynaset)

وأريد بعد تعديل أحد حقول هذا السجل المعروض والضغط على زر أمر (حفظ).. أن يتأكد من أن السجل تم تغيير أحد حقوله أم لا!!!

فإذا تم تغيير أحد حقوله تظهر رسالة مثلاً .. تخبرنا بحفظ التعديلات

وإذا لم يتم تغيير أحد الحقول تظهر لنا رسالة مثلاً .. بأنه لم يتم تعديل في السجل.

هذا وأسأل الله لي ولكم التوفيق والنجاح في الدنيا والآخره

دمتم بحفظ الله........................................................

#2

السلام عليكم

أخي الفاضل ،

بعد أمر الحفظ Lrst.Update أكتب هذا الكود :

If err.Number=0 then

msgbox "تم الحفظ بنجاح"

else

msgbox err.descripation,,err.number

end if

ولا تنسى أن تضع بداية الحدث عبارة On error resume next

تحياتي .

#3

أخي العزيز/ أبو هادي:

يملأني الخجل عندما أجدك تجيب على أغلب أسئلتي بالمنتدى .. إن لم يكن جميعها :o:o:o

أشكرك على سعة صدرك واهتمامك ،،، جعلها الله لك في ميزان حسناتك.

ولكن أخي العزيز .. يبدو أنني لم أقم بتوضيح ما طلبته جيداً .. حيث أن الكود الذي أجبتني به .. يقوم بإكتشاف رقم الخطأ فيما لو حدث مثلاً .. وهذا ليس سؤالي .. فأنا بارك الله فيك .. أريد التحقق من أن السجل لم تتغير البيانات التي يحتويها وبالتالي عند ضغط أمر (حفظ) تظهر رسالة : لم تقم بتغيير السجل،،، وعندما أقوم بتغيير أحد بيانات حقول السجل أو أكثر من حقل.. تظهر رسالة بأنه تم حفظ التعديلات ;)

حيث أنه لو كان الفورم منظم فإنه يمكننا ذلك عن طريق:

if (me.field1.value) <> (me.field1.oldvalue) then

"تم تغيير السجل"MsgBox

else

"السجل كما هو .. لم تقم بتعديله"MsgBox

end if

==================

أما في حالة أن يكون الفورم غير منظم .. فلا يمكن استعمال الـ Value وَ الـ OldValue ، وحيث أن عملية مقارنة قيمة كل حقل موجود بالسجل في الداتابيز مع نفس الحقل بالفورم عملية طويلة، حيث ينبغي مقارنة كل حقل بالداتابيز مع نظيره في الفورم .. وهذا غير مجدي ... ولا يكون صحيحاً غالباً، عندما تكون أحد الحقول في الفورم = Null ونظيرها في الجدول بالداتابيز لا يساوي Null مثلاً ....

أرجو أن أجد دالة تقوم بفحص الفورم بما يحويه من حقول ومعرفة ما إذا تم تغيير أحد بيانات حقوله أم لا .. سواءً أكانت الحقول أو أحدها مملوءً ثم مسحنا بياناته أو العكس .. أو قمنا بتغييرها.

دمتم بحفظ الله

#4

السلام عليكم

أخي الفاضل .. لا أعلم أذا هناك حلول جاهزة ولكن ..

1 - تستطيع عمل متغير من نوع Boolean بحيث لو قمت بأي تعديل على الفورم تبدل قيمته إلى True .

2 - أو تجهزمتغير من نوع Record يحتوي على كل الحقول الموجودة بالفورم وتخزن به كل القيم قبل التعديل ومن ثم مقارنتها مع الرئيسية .

3 - أو عمل حقول أخرى بعدد الحقول الرئيسية (مخفية) تحتفظ بالقيم قبل التعديل ولا تتأثر بالتعديلات ومن ثم مقارنتها مع الرئيسية .

هذه ثلاث مقترحات تستطيع اختيار واحدة منها .. وأترك الفرصة لباقي الأخوة بالإدلاء بما لديهم .

تحياتي .

#5

لك فائق احترامي وجزيل شكري أخي / أبو هادي (f)(f)(f)

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

فإلى ذلك الحين ...... (f)(f)(f) .. أتركك بحفظ الله .. وبارك الله فيك وفي جهودك

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…