• 0
عماد حمدي احمد

ترقيم تلقائى بدون مشاكل

سؤال

بسم الله الرحمن الرحم

الاخوة الكرام

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

نعلم جميعا المشاكل الجمة الناتجة عن استخدام الترقيم التلقائى مثل عدم امكانية اضافة ارقام, وكذلك المشكلات الناتجة عند حذف سجلات والتى يترتب عليها الخلل فى تسلسل الترقيم كما انه لا يمكن استرجاع الارقام التى تم حذفها فى الترقيم التلقائى, كذلك اذا حدث واردت تبديل ترتيب بعض السجلات داخل الجداول المبنية على الترقيم التلقائى فان هذا غير ممكن, اخيرا وكما اوصى الاستاذ الجليل InternerMaster فى بعض دروسه عن الابتعاد قدر المستطاع عن الترقيم التلقائى لانه يضعف قاعدة البيانات. ورغم كل هذه الصعوبات الا ان المعظم (وانا منهم) يلجأ للترقيم التلقائى نظرا لسهولة توليده للارقام وكذلك لتوفير بعض المعاناة عن مدخل البيانات. الا اننى وجدت فى بعض المنتديات موضوع متعلق بتوليد ارقام بطريقة بسيطة وألية بدون استخدام خاصية (الترقيم التلقائى) ولكن باستخدام كود داخل حدث. ولكن المشكلة فى الطريقة المقدمة من الزميل انها نفسها تعتمد على حقل ترقيم تلقائى منشأ داخل نفس الجدول (وهذا بالتاكيد افقد الطريقة الهدف منها).

وكنوع من تطوير هذه الطريقة فقد قمت بعمل كود بسيط يعتمد على استخدام الدالة DMax وتنفيذها على الحقل المراد توليد ارقام داخله. وتتميز هذه الطريقة بالسهولة والبساطة كما انها تغطى وتعالج كل عيوب الترقيم التلقائى. فهى تمكنك من التدخل فى الترقيم يدويا , وكذلك اضافة او حذف ارقام بكل سهولة, كما انها تساعدك على ترتيب سجلاتك بطريقة يدوية فى حال ادخال بيانات جديدة.

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

واسف للاطالة. لكن هدفى التوضيح لا اكثر.

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

اخوكم / عماد حمدى احمد

AutoNumber.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

22 إجابة على هذا السؤال .

  • 0

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

يعطيك العافية

على هذه الدالة التي تفيد الكثيرون وشكرا لك ،،،

وطريقة جميلة ،

وطريقة الشرح أجمل ...

بورك فيك ...

عبدالمانع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مثال جميل أخي / e_h_ahmed وعمل رائع

وهو يقوم بنفس عمل حقل الترقيم التلقائي وبنفس خصائصه من خلال كود بسيط ومختصر ،

ولكن لازالت مشكلة تتالي الترقيم قائمة عند حذف السجلات ، وأنا واثق من كقدرتك على حل هذه المشكلة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

والاخ الكريم sooooool شكرا جزيلا على تعليقك الممتاز وان شاء الله استفيد منه.

واتمنى من باقى الاخوة فىالنتدى من لديه تعليق او توجيه الا يحرمنا منه.

وشكرا,,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الاخوة الكرام

مازلت انتظر تعليقاتكم وردودكم على هذه الطريقة علنا نستفيد جميعا,

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

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

والمزيد من التفاصيل داخل المشاركة التالية

أسئلة بسيطةعن الأمان وعن العمليات الحسابية في آكسس

وهى على نفس المنتدى تحت الرابط التالى

http://www.arabteam2000-forum.com/index.php?showtopic=73146

وشكرا,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

فعلا شئ مفرح أن نجد من بني جلدتنا من يبرع في استخدام التقنية والتطوير على عمل الشركات الكبري :D

اضفت بضعة أسئلة هنا لو تتكرم أخي عماد:

http://www.arabteam2000-forum.com/index.php?showtopic=73146

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك اخي عماد ومجهود ممتاز :rolleyes: :rolleyes:

اتمنى ان لا تعتبر ملاحظتي انتقاد فقد قلت : :D :D

وان كان بها عيب او مشكلة لم اتعرف عليها ارجو ان يتكرموا بتوضيحها لاعالج برنامجى

عموما الطريق ممتازة وأنا اعتمد عليها منذ فترة في عملية الترقيم زلكن هناك مشكلة بسيطة انا وقعت فيها قبلك وهي :

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

لان الكل سيأخذ نفس الرقم ( وليكن 30 )

و أول واحد ينتقل للسجل الثاني لا يحدث له أي شي أما البقية فيحدث خطأ بالطبع لأن الرقم 30 أصبح موجود في قاعدة البيانات

لكي تتضح الصورة اتبع الخطوات التالية بدقة

قم بفتح البرنامج مرتين بحيث يصبح عندنا شاشتين

ثم قم بإدخال السجل الأول في البرنامج الأول ولالالالالالالا تنتقل إلى السجل التالي ولا تضغط انتر ولا حاجة الآن ابقى في نفس السجل -_- -_-

روح للرنامج اللي فتحته مرة ثانية وقم بإدخال السجل ولالالالالالالالالا تنتقل إلى السجل التالي ولا تضغط انتر ولا حاجة ابقى في نفس السجل :D :D

ارجع للبرنامج الأول وانتقل للسجل الثاني :) :) ستكون الأمور على ما يرام

ارجع للبرنامج الثاني وانتقل للسجل الثاني :wacko: :wacko: هناااااااااا المشكلة

انا سراحة اني عالجت المشكلة بطريقة بسيطة وهي

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

واكيد انه لديك حلول كثيرة لحل هذه المشكلة لكن حبيت انبهك لهذا الخلل البسيط وشكرا

اخوك / المبرمج2003

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذه مشكلة بالفعل فى طريقة الترقيم هذه وبالذات عند العمل على الشبكة

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

kh.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
هذه مشكلة بالفعل فى طريقة الترقيم هذه وبالذات عند العمل على الشبكة

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

هناك افكار كثيرة وكل واحد له طرقته في الحل

على العموم وضع الكود على زر امر بإمكانك تضعه على الحدث اللذي يناسبك

وجعلت بعض الحقول مطلوبة حتى لا تنشأ قيم محجوزة بدون ادخال بيانات كاملة ولك الحرية في حصرها

اذا كان المرفق فيه اخطاء فاتمنا تحديد الخطأ لاني وضعته على عجالة

========

kh.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخى الفاضل

اشكرك جدا على المجهود وبالفعل رائع وجميل

وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الكريم عماد حمدى شكر الله لك مجهودك الرائع وأدعوا الله لك بدوام التوفيق والسداد ولى استفسار على موضوع الترقيم مع زيادة رقم هل من الممكن ان يكون الحقل نصى وليس رقم (كود السجل نصى كى يسمح بأن يبدأ بالرقم صفر على اليسار)مثال رقم الحساب 0100000اول رقم مستند الصرف فى اليومية 020001 أومستند القيد030001 -مستند القبض 010001

ملحوظة ارقام المستندات متواجدة فى جدول واحد وكما تعلم ان الرقم( 1) متكرر فى القبض والصرف وقيد التسوية ومن أجل ان لا تتكرر فى الجدول بدأ كل نوع من المستندات السابقة بالصفر ثم الرقم الدال على نوعيتها (قبض_صرف_قيد) وكذلك الحال فى شجرة الحسابات او دليل الحسابات واتمنى للجميع التوفيق والرشاد

اخوك ابراهيم_ اسكندرية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

الأخ العزيز الأستاذ عماد حمدى

الله أما أجعل كل ماتقدمه من علمك فى ميزان حسناتك بإذن الله ودعائى لك من صميم قلبى ونحن مقبلين على الأيام الكريمة بأن يحفظك ويرعى لك علمك ويزيدك

لقد قرأت لحضرتك مشاركات كثيرة فى حل كثير من المشاكل لبعض الزملاء وكانت حلول بسيطة مع الشرح الجميل الوافر ولديه مشكله فى قاعدة بيانات أقوم بها

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

حيث أنى أرغب فى عمل تصفية للفواتير بنهاية الشفت الأول وأغلاق الحسابات وفتح الشفت الثانى بحساب جديد وترقيم تلقائى جديد يبدأ من 1 وأغلاقه بنهاية الشفت الثانى (نهاية اليوم من العمل) كيف أقوم بعمل ذلك أرجو الأفادة لتعم للجميع مع الشرح كما عودتنا ولك دعواتنا ومرفق جزء من القاعدة للعمل عليها

db1.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الكريم المبرمج 2003

كل عام وانت طيب وجميع الأخوة بخير وعافية وبعد ارجوا منك شرح كيفية أن لا يقبل المستند تعديل البيانات بمجرد الحفظ اوالإنتقال الى مستند سابق إلا بعد ان تطلب بنفسك التعديل من زر الأمر ( تعديل ) ولك منى كل الشكر

أخوك

إبراهيم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
بسم الله الرحمن الرحيم

الأخ العزيز الأستاذ عماد حمدى

الله أما أجعل كل ماتقدمه من علمك فى ميزان حسناتك بإذن الله ودعائى لك من صميم قلبى ونحن مقبلين على الأيام الكريمة بأن يحفظك ويرعى لك علمك ويزيدك

لقد قرأت لحضرتك مشاركات كثيرة فى حل كثير من المشاكل لبعض الزملاء وكانت حلول بسيطة مع الشرح الجميل الوافر ولديه مشكله فى قاعدة بيانات أقوم بها

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

حيث أنى أرغب فى عمل تصفية للفواتير بنهاية عمل النصف الأول من العمل اليومى وأغلاق الحسابات وفتح النصف الثانى من العمل بحساب جديد وترقيم تلقائى جديد يبدأ من 1 وأغلاقه بنهاية عمل النصف الثانى (نهاية اليوم من العمل) كيف أقوم بعمل ذلك أرجو الأفادة لتعم للجميع مع الشرح كما عودتنا ولك دعواتنا ومرفق جزء من القاعدة للعمل عليها

الأخ الكريم عماد حمدى

لم أعهد منك بأن يستنجد بك أحد الأعضاء وتتركه عسى أن يكون المانع خير إن شاء الله

وكل عام وأنت بخير بمناسبة الشهر الكريم أعاد الله عليك وعلينا وعلى أمة الأسلام بالخير واليمن والبركات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اسمحوا لي ان اضع تعليق بسيط من عمل احد الاخوه لايحضرني اسمه في الوقت الحالي

اذا لم يوجد حل لهذه المشكله فهذه طريقه قد لاتكون محبذه ولكنها قد تكون جزء من الحل وهي كالتالي:

عند العمل على شبكة فمن الممكن حدوث تعارضات عن إدخال المستخدمين البيانات في نفس السجلات ، ويعالج البرنامج اكسس هذه المشكلة بطريقة تإمين السجلات ، Record Locks ، وعند إختيار الخاصية سجل محرر Edited Record ففي هذه الحالة عندما يفتح المستخدم النموذج يكون بجانب السجل الاول رمز مثل القلم وهذا يدل على أن النموذج حر ويمكن استخدامه ، وفي نفس الوقت لو فتح أحد المستخدمين هذا النموذج سيجد رمز القفل وهذا يدل على أن النموذج الآن قيد الاستخدام ولا يمكن إستخدامه في هذا الوقت . حتى يقوم المستخدم الاول بحفظ العمل

ملاحظة

يأخذ اكسس تقريباً 60 ثانية حتى يقوم بعرض العلامة ويمكن تغير هذه الفترة الزمنية من

Tools > Options > Advanced > Refresh Interval

أدوات =>خيارات=> خيارات متقدمة=> ثم من تحديث الفاصل الزمنى

ثم تغير الزمن من 60 ثانية إلى الوقت المناسب ، ولو كان مثلا 5 يكون أفضل عندما تكون قاعدة البيانات متوسطة الحجم ، ومن نافذة خيارات متقدمة Advanced ، يمكن أن تحدد كثير من الخصائص المتعلقة بتحديث البيانات عند الاستخدام المشترك وتستطيع أن تجرب عدد من التجارب إلى أن تصل إلى أفضل المستويات الممكنة ،

تجدون ملف مرفق به الشرح بالصور

________________________________________.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الكريم عماد حمدى شكر الله لك مجهودك الرائع وأدعوا الله لك بدوام التوفيق والسداد ولى استفسار على موضوع الترقيم مع زيادة رقم هل من الممكن ان يكون الحقل نصى وليس رقم (كود السجل نصى كى يسمح بأن يبدأ بالرقم صفر على اليسار)مثال رقم الحساب 0100000اول رقم مستند الصرف فى اليومية 020001 أومستند القيد030001 -مستند القبض 010001

ملحوظة ارقام المستندات متواجدة فى جدول واحد وكما تعلم ان الرقم( 1) متكرر فى القبض والصرف وقيد التسوية ومن أجل ان لا تتكرر فى الجدول بدأ كل نوع من المستندات السابقة بالصفر ثم الرقم الدال على نوعيتها (قبض_صرف_قيد) وكذلك الحال فى شجرة الحسابات او دليل الحسابات واتمنى للجميع التوفيق والرشاد

اخوك ابراهيم_ اسكندرية

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

_______.rar

أتمنى من الأخوة كيفية الإستفادة من البرنامج السابق فى تطوير المثال المرفق وهو من تصميمى بعد مرافقتكم بالمنتدى المبارك

G.ledger.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
الأخ الكريم المبرمج 2003

كل عام وانت طيب وجميع الأخوة بخير وعافية وبعد ارجوا منك شرح كيفية أن لا يقبل المستند تعديل البيانات بمجرد الحفظ اوالإنتقال الى مستند سابق إلا بعد ان تطلب بنفسك التعديل من زر الأمر ( تعديل ) ولك منى كل الشكر

أخوك

إبراهيم

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

عموما الكود والبرنامج والعمل ليس من صنعي ولكنه من صنع الخبير (عماد حمدي) فقط عملت تعديل بسيييييييييييط على زر الحفظ

اما بخصوص سؤالك

فلو تلاحظ الكود الذي وضعه عند حدث (في الحالي) ستلاحظ الكود التالي

Me.AllowDeletions = False
Me.AllowEdits = False
Me.AllowAdditions = True

وبالذات هذا السطر

Me.AllowEdits = False

هو المتخصص في تعطيل خاصية التعديل

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

واكرر اسفي على التأخير ولكن لا تنسونا من الدعاء في هذا الشهر الفضيل

===========

تم تعديل بواسطه المبرمج2003
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الحبيب المبرمج2003

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

أخوك

ابراهيم _ اسكندرية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الفاضل ...

هناك موضوع بعنوان ترقيم تلقائى مسلسل واحد عبر عدة جداول فى قواعد بيانات مختلفة: http://www.arabteam2000-forum.com/index.ph...16&t=118581

شكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أنا أقوم بإضافة رقم عند القيام بحفظ سجل جديد

أحمد بدر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

اخوكم همام

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك .. الله يجزاك خير ويعطيك الف عافية

Ekseer

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .