اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الحفاظ على تسلسل الترقيم التلقائى بعد حذف السجلات


gadelrab

الردود الموصى بها

السلام عليكم ورحمة الله

لدى جدول بقاعدة بيانات اكسس واقوم بعد كل فترة زمنية بحذف عدة سجلات ونقلها لجدول اخر

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

واريد ان يتم متابعة الترقم التلقائى الطبيعى دون الرجوع الى الارقام المحذوفة 

مع العلم باننى توصلت الى حل مؤقت وهو عمل ضغط واصلاح لقاعدة البيانات لحل هذه المشكلة 

ولكن هذا الحل صعب حيث يجب ان اقوم بعمل الضغط والاصلاح للقاعدة فى كل مرة اقوم بفتح البرنامج

فارجو من الاخوة الكرام مساعدتى فى ايجاد الحل المناسب للمشكلة

وشكرا لكم جميعا

رابط هذا التعليق
شارك

حسب وصفك اعتقد ان الترقيم التلقائي الذي تتحدث عنه هو ناتج من كود وليس الترقيم التلقائي الموجود في جدوال الاكسيس 

لان الموجود في جداول الاكسيس يقوم بالضبط مثل ما تريد دون الحاجة الى عملية ضغط واصلاح 

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

هذا حسب فهمي وعذرا للاطالة

رابط هذا التعليق
شارك

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

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

ولكن يمكن جعله Number رقم وتنسيق الحقل = Long Integer

وفي النموذج نضع قي القيمة الافتراضية

=Nz(DMax("[Id";"tbl1");0)+1

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

والكود التالي يقوم بهذه الوظيفة

    DoCmd.SetWarnings False
        DoCmd.RunSQL "DROP INDEX PrimaryKey ON tbl1;"
        DoCmd.RunSQL "ALTER TABLE tbl1 DROP COLUMN Id;"
        DoCmd.RunSQL "ALTER TABLE tbl1 ADD column  Id AUTOINCREMENT, CONSTRAINT [PrimaryKey] PRIMARY KEY ([Id]);"
    DoCmd.SetWarnings True

تحياتي

  • Thanks 1
رابط هذا التعليق
شارك

7 ساعات مضت, محمد أبوعبدالله said:

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

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

ولكن يمكن جعله Number رقم وتنسيق الحقل = Long Integer

وفي النموذج نضع قي القيمة الافتراضية


=Nz(DMax("[Id";"tbl1");0)+1

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

والكود التالي يقوم بهذه الوظيفة


    DoCmd.SetWarnings False
        DoCmd.RunSQL "DROP INDEX PrimaryKey ON tbl1;"
        DoCmd.RunSQL "ALTER TABLE tbl1 DROP COLUMN Id;"
        DoCmd.RunSQL "ALTER TABLE tbl1 ADD column  Id AUTOINCREMENT, CONSTRAINT [PrimaryKey] PRIMARY KEY ([Id]);"
    DoCmd.SetWarnings True

تحياتي

أخي @محمد أبوعبدالله ليتك وضحت أين يوضع الكود الأول والكود الثاني 

رابط هذا التعليق
شارك

23 دقائق مضت, فايز.. said:

أخي @محمد أبوعبدالله ليتك وضحت أين يوضع الكود الأول والكود الثاني 

الاول في النموذج نضعه قي القيمة الافتراضية للحقل

الثاني في زر امر

تحياتي

 

رابط هذا التعليق
شارك

الاخوة الاعزاء السلام عليكم ورحمة الله وبركاته

شكرا جزيلا على تفاعلكم

وللتوضيح البرنامج خاص بالسيارات الممنوحة لذوى الاحتياجات الخاصة ويعمل عليه اكثر من ثمانية مستخدمين حيث تم تقسيم قاعدة البيانات واصبحت الجداول والاستعلامات فى ملف والواجهات فى ملف اخر 

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

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

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

p_1661iqzka1.jpg

عند اخال سجل جديد بعد السجل رقم 96797 المفروض ان يكون رقم السجل الجديد هو 96798 ولكن البرنامج يتجاهل هذا التسلسل وتم الادخال برقم سجلات سبق حذفها برقم 22875

واريد ان يستمر البرنامج فى التسلسل الطبيعى للارقام حتى بعد حذف السجلات 

رابط هذا التعليق
شارك

7 دقائق مضت, gadelrab said:

الاخوة الاعزاء السلام عليكم ورحمة الله وبركاته

شكرا جزيلا على تفاعلكم

وللتوضيح البرنامج خاص بالسيارات الممنوحة لذوى الاحتياجات الخاصة ويعمل عليه اكثر من ثمانية مستخدمين حيث تم تقسيم قاعدة البيانات واصبحت الجداول والاستعلامات فى ملف والواجهات فى ملف اخر 

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

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

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

p_1661iqzka1.jpg

عند اخال سجل جديد بعد السجل رقم 96797 المفروض ان يكون رقم السجل الجديد هو 96798 ولكن البرنامج يتجاهل هذا التسلسل وتم الادخال برقم سجلات سبق حذفها برقم 22875

واريد ان يستمر البرنامج فى التسلسل الطبيعى للارقام حتى بعد حذف السجلات 

أرفق مثال بسيط من برنامجك .. 

حتى يستطيع الخبراء مساعدتك وحل مشكلتك بشكل أسرع

 

رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

اسمحوا لي ان ادلوا بدلوي في هذا الموضوع ، وفيه شرح لحقل الترقيم التلقائي :

 

 

وهنا حوار مع المحاسب الاخ عبدالله قدور ، فنيا 🙂

 

 

وانا اتفق مع اخوي محمد أبوعبدالله بهذه الطريقة :

19 ساعات مضت, محمد أبوعبدالله said:

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

ولكن يمكن جعله Number رقم وتنسيق الحقل = Long Integer

وفي النموذج نضع قي القيمة الافتراضية


=Nz(DMax("[Id";"tbl1");0)+1

 

 

جعفر

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information