حل مشكلة الترقيم التلقائى عند حذف سجل من قاعدة البيانات !!!

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

حل مشكلة الترقيم التلقائى عند حذف سجل من قاعدة البيانات !!!

مُساهمة من طرف جورج صبحى في الثلاثاء أغسطس 28, 2012 7:42 am

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

ماذا بها ؟

قم بعمل حقل من نوع ( ترقيم تلقائي) ثم أضف سجلات جديدة به ، بعد ذلك قم بتجربة حذف أي سجل وأعد اضافة سجل جديد.

ماذا تلاحظ ؟

نلاحظ أن الأرقام تتواصل باستمرار دون الرجوع إلى أي رقم سابق تم حذفه ، فمثلاً حذفنا السجل الذي كان ترقيمه التلقائي 3 فإنه في حالة إضافة سجل جديد لن يكتب في الترقيم التلقائي الرقم (3) الذي تم حذفه.

ومالمشكلة في هذا ، مادام أن الترقيم تلقائي؟

لامشكلة في هذا ، ولكن تخيل أنك عملت جدولان مرتبطان ببعضهما البعض بحقل نوعه ترقيم تلقائي وقمت بحذف سجل من الجدول الرئيسي الذي به الترقيم التلقائي، ستجد نفسك مظطراً لعمل علاقة حتى تقوم بحذف جميع السجلات المرتبطة بهذا الجدول في الجداول الأخرى ، وقد تكون البيانات مثلا تحتاجها !

مالحل لهذا ؟

بسم الله :

قم بتغيير نوع الحقل (ترقيم تلقائي ) إلى نوع ( رقم ).

أفرض أن لديك الجدول التالي الذي اسمه (Trimeter ) وبه الحقل ( ID ) وهو الحقل الخاص بالترقيم التلقائي.
سجلاته كالتالي




وأردت اضافة سجل جديد ، لاحظ أن الرقم ( 3 ) غير موجود الآن ، بمعنى أننا نريد اضافة السجل الجديد بالرقم ( 3 ).

سنقوم بتعريف متغير صغير يقوم بأخذ الرقم الذي غير موجود في حقل ( ID ) كماتلاحظ



الرمز:
 Dim ContNumber As Integer



ثم نقوم بعملية فتح الجدول وبترتيب تصاعدي للأرقام في الحقل ( ID )



الرمز:
 RS.OPEN "Trimeter  Order By [ID]" , CN , 3 , 2 


ثم نقوم بعملية تصفير قيمة المتغير حتى في استخدامه للمرات السابقة يكون الرقم صفر هو الافتراضي ، وفائدة التصفير هو أن في حالة لم يعثر على أي رقم ناقص في الجدول ستكون القيمة صفر وبالتالي سيكون تلقائي الرقم الجديد هو عدد السجلات في الجدول +1



الرمز:
ContNumber = 0



نقوم بعمل حلقة تكرار لكامل السجلات في الجدول تبدأ من الرقم ( 1 ) إلى مجموع عدد السجلات ، ونقوم بداخل الحقل بعمل شرط بأنه إذا كان رقم متغير الحلقة لايساوي قيمة الحقل الذي مر عليه فإن المتغير ContNumber سيأخذ قيمةهذا الرقم الناقص ، ثم بعد ذلك نقول له أوقف الحلقة وتابع الكود.


الرمز:
 For Aloop = 1 To Rs.RecordCount
           
            If Val(Aloop) <> Val(Rs("Trimeter")) Then
ContNumber = Aloop: Exit For
           
            Rs.MoveNext
           
Next

 




بالنهاية نحن حصلنا على إحدى القيمتين إما 0 ، وهي تعني لايوجد نقص ، وإما قيمة النقص التي عثر عليها ، وهذا طبعا يكون بداخل المتغير ContNumber تبقت خطوة أخيرة وهي ادخال الرقم الجديد في السجل وهي كالتالي:



الرمز:
Rs"ID" = IIf( ContNumber RecordCount + 1 , ContNumber)


أو بهذا الشكل :



الرمز:
If ContNumber = 0 Then
       
            Rs("ID") = Rs.RecordCount + 1
       
        Else
           
            Rs("ID") = ContNumber
           
           
        End If 



وفى النهاية ارجوا ان يكون الدرس مفيد لكم ....تحياتى

جورج صبحى
.....
.....

تاريخ التسجيل : 18/02/2011
المساهمات : 98
النقاط : 211
التقيم : 3
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: حل مشكلة الترقيم التلقائى عند حذف سجل من قاعدة البيانات !!!

مُساهمة من طرف أحمد مناع في الأربعاء أغسطس 29, 2012 11:34 am

اشكرك جورج على هذا الموضوع القيم ....منتظرين المزيد

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: حل مشكلة الترقيم التلقائى عند حذف سجل من قاعدة البيانات !!!

مُساهمة من طرف جورج صبحى في السبت سبتمبر 01, 2012 6:23 pm

أحمد مناع كتب:
اشكرك جورج على هذا الموضوع القيم ....منتظرين المزيد



تعليمك يا ريسنا

جورج صبحى
.....
.....

تاريخ التسجيل : 18/02/2011
المساهمات : 98
النقاط : 211
التقيم : 3
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: حل مشكلة الترقيم التلقائى عند حذف سجل من قاعدة البيانات !!!

مُساهمة من طرف salamfaraj2002 في الثلاثاء ديسمبر 08, 2015 5:41 am

درس مهم سأحتاجه مستقيلا



تحياتي.. مبرمج جديد

salamfaraj2002
....
....

تاريخ التسجيل : 18/04/2015
المساهمات : 54
النقاط : 68
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى