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

بيئة عدة مستخدمين

بدأه snmdody في 14 مايو 2014 · 1 رد · 575 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أسعد الله أوقاتكم بكل خير ..

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

محاولتي البحث))

أتمنى أن أجد حلاً جذرياً لمشكلتي والمتمثلة في ظهور رسائل خطأ عند محاولة أكثر من مستخدم من تسجيل بيانات في نفس الوقت بالظبط ، مثلاً المستخدم رقم 1 يقوم بتسجل اسم طالب رقم 1 ، والمستخدم الثاني يقوم بتسجيل اسم طالب رقم 2 (في نفس الوقت تماماً) .. فتظهر رسالة خطأ بتكرار رقم السجل ، ورقم السجل حقل مفتاح رئيسي .

 

ودائماً أستخدم الكود الموضح أدناه لإجراء عملية ترقيم الحقل في السجل (فمثلاً إسم الحقل StudentID فإذا لم يجد أي سجل في الجدول فيبدأ الترقيم من الرقم 1 ، وإذا وجد أن هناك عدة سجلات فيأخذ آخر رقم ولنقل مثلاً رقم 50 فيضيف عليه 1 فيصبح رقم السجل 51 ... وهكذا )

Public Function GEtNewNumber(FieldName As String, TableName As String) As String
On Error GoTo NewEntry
Set sRs = New ADODB.Recordset
Sql = " SELECT MAX(" & FieldName & ") FROM " & TableName
sRs.Open Sql, CN, adOpenStatic, adLockOptimistic
GEtNewNumber = Val(sRs.Fields(0)) + 1
GoTo EndGetEntry
NewEntry:
GEtNewNumber = 1
Resume EndGetEntry
EndGetEntry:
sRs.Close: Set sRs = Nothing
End Function

والمطلوب كالتالي :

أن لا تظهر رسالة خطأ تكرار رقم الطالب في حالة تسجيل أكثر من مستخدم لعدة طلاب في نفس الوقت ، وللتوضيح أكثر فمثلاً عند إكتشاف أن رقم الطالب (20) مكرر فيقوم بالتسجيل للمستخدم الاول بهذا الرقم (20) والمستخدم الاخر بالرقم (21)

 

آمل أن اكون قد اوضحت المشكلة وبإنتظار مساعدتكم بارك الله فيكم ،،

تم تعديل هذه المشاركة بواسطة snmdody في 14 مايو 2014 في 14:36

#2

واقوم بإستدعاء الدالة GEtNewNumber في النماذج بالطريقة أدناه عند إجراء عملية الحفظ : (وللعلم هذه الدالة من عمل أحد الاخوة جزاه الله الف خير ولا أذكر إسمه حيث إقتبستها من إحدى المنتديات)

!StudentID = GEtNewNumber("StudentID", "TblStudents")

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