الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه مازن نايف في 8 فبراير 2013 · 4 رد · 1,321 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

#2

امامك عدة حلول منها

 

  1. استخدام GUID
  2. استخدام DeviceID بالاضافه الى ID وعمل دمج لهما concatenation
  3. استخدام ازاحه معينه في الترقيم ، مثلا الجهاز الاول يكون الــ increment الخاص به هو 100 والثاني 101 وهكذا ولكن هذه الطريقه تقتضي معرفة العدد الاقصى من الاجهزه قبل استخدامها

تحياتي

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3

السلام عليكم

 

 

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

 

علي العموم أبسط الطرق في الحدث المخصص لجلب رقم جديد "مثلا إذا أنت كنت عامل الكود بعد التحديث او عند الخروج علي حسب الكود اللي أنت كاتبه علشان يجيب رقم جديد للمستخدم" ممكن تكتب في نهايته:

 

Me.RequeryMe.Refresh

 

بالشكل ده السجل هيكون أتحفظ والرقم اصبح خاص بالسجل المفتوح حاليا...

 

 

جرب وأن شاء الله تضبط معاك

 

 

 

بالتوفيق

#4

بارك الله بكم اخواني الكرام على المشاركة

 

بالنسبة للحل المقترح لهذا السؤال فسيكون كالتالي

 

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

 

post-15367-0-73178300-1360336477.gif

 

 

 

ملاحظة
يأخذ اكسس تقريباً 60 ثانية حتى يقوم بعرض العلامة ويمكن تغير هذه الفترة الزمنية من
أدوات Tools
خيارات Options 
خيارات متقدمة Advanced
ثم من تحديث الفاصل الزمنى Refresh Interval
 
post-15367-0-43735800-1360336533.gif
 
 
ثم تغير الزمن من 60 ثانية إلى الوقت المناسب ، ولو كان مثلا 5 يكون أفضل عندما تكون قاعدة البيانات متوسطة الحجم ، ومن نافذة خيارات متقدمة Advanced ، يمكن أن تحدد كثير من الخصائص المتعلقة بتحديث البيانات عند الاستخدام المشترك وتستطيع أن تجرب عدد من التجارب إلى أن تصل إلى أفضل المستويات الممكنة ،
 
post-15367-0-73485600-1360336594_thumb.g
 
 
 
 
بالتوفيق
#5

يبدو انه يوجد مشكلة في اضهار الردود

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…