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

اذهب الى الأسفل

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

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

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

ماذا بها ؟

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

ماذا تلاحظ ؟

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

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

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

مالحل لهذا ؟

بسم الله :

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

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

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


وأردت اضافة سجل جديد ، لاحظ أن الرقم ( 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
المساهمات : 123
النقاط : 254
التقيم : 5
الجنس : ذكر

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

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

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

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

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

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

http://egy-tech.forumegypt.net

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

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

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

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:
اشكرك جورج على هذا الموضوع القيم ....منتظرين المزيد



تعليمك يا ريسنا
جورج صبحى
جورج صبحى
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 123
النقاط : 254
التقيم : 5
الجنس : ذكر

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

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

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

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



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

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

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

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


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