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

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

قام بنشر (معدل)

يعطيكم العافيه اصداقي 

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

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

علما انه لا يمككني استخدام الترقيم التلقائي لانه اذا قام احد المستخدمين بمحاولة ادخال بيانات لكتاب ما ومن ثم قام قرر الغاء ادخال البيانات سيتم حجز الرقم من دون بيانات ولن يظهر بالجدول وانا التسلسل مطلوب مني 

مرفق نسخة من البرنامج 

لتوضيح الفكرة بشكل افضل 

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

لم استطع تحميل الملف ولكن قمت برفعه على الرابط التالي 

 

https://top4top.io/downloadf-3263ok0ie1-rar.html

تم تعديل بواسطه محمود القيسي
  • محمود القيسي changed the title to يعطيكم العافيه حل مشكلة اذا سمحتم لعدم تكرار الرقم المتسلسل
قام بنشر

اخي محمد .. الترقيم عبر الشبكة ليس له علاج الا الترقيم التلقائي

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

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

من الطرق  : اعمل حقل نصي او رقمي او تاريخ ووقت فارغ في الجدول وعند النقر على زر الحفظ يتم تحديث الحقل وادخال قيمة فيه مثلا حرف A  او رقم واحد او تاريخ اليوم

وافضل من ذلك .. اجعل كافة الحقول المهمة مطلوبة

هنا سيقبل النموذج الحفظ .. وتحافظ على تسلسل الترقيم التلقائي

قام بنشر

ممكن مداخله بعد اذن استاذي الجليل @ابوخليل

واستكمال لفكرة استاذى الجليل فى نقطة (الترقيم التلقائى)

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

وزر الحفظ

يقوم بنقل البيانات الى الجداول الاساسية المرتبطه وواثناء النقل هيتم اعطاء رقم لهذا السجل وبهذا 

مش هيكون فى اتصال دائم بالقاعده غير لحظه الحفظ وان شاء الله مش هيكون فى مشاكل (والله اعلم)

 

طبعا مع تفريغ الجداول المؤقته بعد الحفظ

قام بنشر

وكفكرة إضافية أيضا ..

قم بإضافة حقل للترقيم التلقائي (وهو مهم للجداول للفرز والربط بالجداول الفرعية ووو...) ...

وحقل آخر لترقيم الخطابات يمكنك التحكم به كما تشاء ... ولن تكون ملزم بالترقيم التلقائي لترقيم الخطابات .. 🙂 

قام بنشر
5 ساعات مضت, عمر ضاحى said:

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

الفكرة جميلة .. ايضا من فوائدها تخطي مشكلة التزامن

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

3 ساعات مضت, Moosak said:

وكفكرة إضافية أيضا ..

وحقل آخر لترقيم الخطابات يمكنك التحكم به كما تشاء ... ولن تكون ملزم بالترقيم التلقائي لترقيم الخطابات .. 🙂 

 كيف يتم التحكم بهذا الترقيم ؟ افدنا بارك الله فيك

لأن الترقيم في هذه الحالة سيكون صادر من النموذج الذي اعمل عليه

قام بنشر
26 دقائق مضت, ابوخليل said:

كيف يتم التحكم بهذا الترقيم ؟

هناك أفكار وطرق كثيرة ومتنوعة ..
وأشهرها دالة DMax والتي تأتي بآخر ترقيم في الجدول وتضيف عليه +1 كما هو معلوم لديكم .. 
ويمكن إسناد الرقم لحقل رقم الخطاب في حدث بعد الإدراج ( عند حفظ السجل لأول مرة ) ..

إذا كنت تريد مثال تطبيقي عليه فأنا رهن إشارتك 🙂🌷

قام بنشر
1 ساعه مضت, Moosak said:

إذا كنت تريد مثال تطبيقي عليه فأنا رهن إشارتك 🙂🌷

واضح لا يحتاج لمثال

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

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

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

جعل الترقيم هي مسؤولية الجدول لا شك اقوى وأسرع .. ونسبة الخطأ صفر %

قام بنشر
1 ساعه مضت, ابوخليل said:

جعل الترقيم هي مسؤولية الجدول لا شك اقوى وأسرع .. ونسبة الخطأ صفر %

لاشك ..

ولكن القضية هي أنه يعتمد على هذا الترقيم لإعطاء المراسلة رقم له معنى ..

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

وهناك طرق كثيرة للتأكد من جودة الترقيم وترتيبه وتتابعه .. يمكن العناية بها عن طريق الأكواد ..
وقد كنت أطلعت منذ مدة على نقاش متعلق بتضارب الترقيم بين المستخدمين في نفس اللحظة حسب ما أذكر .. فطرح أستاذنا العود @jjafferr احد الحلول وهو عمل حلقة تكرارية تفحص الجدول لتتأكد من الحصول على آخر قيمة لتخطي مشاكل بطيء الشبكة أو كثرة المستخدمين وكثرة المعاملات .. هذه الخلاصة ولا يحضرني الرابط الآن ..

بعد البحث وجدت مشاركة أستاذنا @jjafferr 🙂 : 

قام بنشر
45 دقائق مضت, Moosak said:

وقد سمعت من أحد الخبراء مرة أنه يقول : في الأصل أن رقم الآيدي التلقائي يخدم المبرمج أو البرنامج 

نعم معك قلبا وقالبا ، ولكن للضرورات احكام

اقتباس

ولكن القضية هي أنه يعتمد على هذا الترقيم لإعطاء المراسلة رقم له معنى ..

هنا مربط الفرس .. بعضهم يريد لكل عملية ترقيما خاصا يميزها .. وايضا يريد نوع الحقل نصي بحيث تكون البادئة حرف

وموضوع الاستاذ جعفر مناسب جدا لمثل هذه الحالاات .. ولكني _ واتحدث عن نفسي_

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

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

وهي عمل حقل ترقيم يتم اضافة الترقيم التلقائي اليه عند كل عملية مثلا تكون القيمة الافتراضية للحقل  1000 أو    A000  ستكون النتيجة في السجل الأول  1001   او  A001  وستتزايد القيمة في السجلات التالية تبعا لقيمة الترقيم التلقائي .

شايب راسه ناشف  .. عندنا مثل  يقول .. كلٍ بعقله راضي الا ماله لا  ... :blink:

 

  • Haha 1
قام بنشر

جميع الإجابات صحيحة .. وكل حالة لها حكمها .. ولا نهاية للإبداع 😊👌

  • Thanks 1
قام بنشر

استاذي الجليل @ابوخليل

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

حيث 1A ترمز ان المستخدم رقم 1 و10 لرقم السجل الحالى 

او الاعتماد على رقم مميز عبارة عن الفورمات 

(yyyymmddhhmmss)

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

  • ابوخليل changed the title to حل عدم تكرار الرقم المتسلسل
قام بنشر
1 ساعه مضت, عمر ضاحى said:

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

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

قام بنشر

مداخلة سريعة متأخرة :biggrin2:

 

بالنسبة لي دائماً وفي أي مشروع اعتمد على عدة عوامل لأستفيد منها من ناحية اختلاف سرعة الاتصال اللحظة بالشبكة بين جهاز وآخر ( ممكن يكون السبب اختلاف الكمبيوتر أو كرت الشبكة وظريقة الاتصال بها ، موزع الشبكة ... إلخ ) وهذه الاستفادة تأتي لي دائماً بنتيجة خالية من المشاكل وهي كما ذكر أستاذ موسى استخدام الدالة DMAX ولكني اجعلها في آآآآآخر مرحلة وهي عند النقر على الزر حفظ ، فأجعل الترقيم للحقل يأتي كأول إجراء يقوم به النموذج وهو جلب آخر ترقيم وإضافة 1 له ، وهنا تأتيني الإستفادة من اختلاف سرعة الاتصال بالشبكة .

 

 

قام بنشر

ما شاء الله عليكم مبدعين بالفكرة وماهرين 

مشكورين ما قصرتم 

بس بواجه مشكلة ثانيه 

هلأ عند الخروج من النموذج لانه الحقول انا حاطها مطلوبة بعطيني رسالة انه يجب ادخال قيمة كيف ممكن احلها . 

قام بنشر
2 ساعات مضت, محمود القيسي said:

بس بواجه مشكلة ثانيه 

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

من وجهة نظري .. أيضاً اتبع فكرة قديمة وهي :-
1. أنشئ مربع نص باسم C1 مثلاُ .
2. في حدث عند الشوائب اجعل قيمته =

Private Sub Form_Dirty(Cancel As Integer)
    Me.C1 = 0
End Sub

3. في حدث عند الإغلاق أو إذا كان لدي زر خاص بالإغلاق للنموذج

    DoCmd.CancelEvent
If Me.C1 = 0 Then
    Me.Undo
End If

 

بالنسبة لي هذا يمنع الحفظ التلقائي للسجلات الغير مكتملة أولاً ، ثم يجعلني أتحكم في - متى أحفظ أو لا - السجلات في النموذج .

  • Like 1
قام بنشر
2 ساعات مضت, Foksh said:

من وجهة نظري .. أيضاً اتبع فكرة قديمة وهي :-
1. أنشئ مربع نص باسم C1 مثلاُ .
2. في حدث عند الشوائب اجعل قيمته =

Private Sub Form_Dirty(Cancel As Integer)
    Me.C1 = 0
End Sub

3. في حدث عند الإغلاق أو إذا كان لدي زر خاص بالإغلاق للنموذج

    DoCmd.CancelEvent
If Me.C1 = 0 Then
    Me.Undo
End If

 

بالنسبة لي هذا يمنع الحفظ التلقائي للسجلات الغير مكتملة أولاً ، ثم يجعلني أتحكم في - متى أحفظ أو لا - السجلات في النموذج .

مشكووووووووووووووووووور صديقي كل الشكر 

  • Like 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