اذهب الي المحتوي
أوفيسنا

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

قام بنشر

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

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

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

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

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

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

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

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

قام بنشر

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

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

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

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

قام بنشر

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

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

ولكن يمكن جعله 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