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

كيف يتم توليد رقم عشوائي في سجل في الجدول


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

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

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

أساتذتي الفضلاء ..

لدي جدول يحوي مجموعة من مسميات البرامج أريد أن يضع لكل برنامجا كود "رقم عشوائي مثلا" يكون خاصا بهذا البرنامج ولا يتكرر ..

مع جزيل الشكر وعظيم الامتنان ..

تم تعديل بواسطه حامل المسك
رابط هذا التعليق
شارك

مثال رائع جدا .. والأروع منه أنت أبا خليل..

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

مرفق المثال للنظر وفقكم الله ..

قاعدة البيانات4.rar

رابط هذا التعليق
شارك

نعم  كما ذكرت

والسبب ان العملية اصلا لتوليد رقم تلقائي عشوائي لسجل واحد جديد

 وانت تريد ادراج ارقام  عشوائية فريدة لسجلات موجودة

 سأنظر في هذا 

هل تريدها عبر النموذج المستمر ام عبر الجدول مباشرة ؟

 

هذه عبر النموذج :

حامل المسك.rar

رابط هذا التعليق
شارك

تفضل :

جعلت معامل الضرب  x خمسة ارقام  فظهر تكرار مرتين فقط  خلال 540 سجل

ثم جعلت معامل الضرب x تسعة  فاختفى التكرار تماما 

يمكنك التجربة والملاحظة

تنبيه : لا يمكننا جعل الحقل مفتاحا او غير قابل للتكرار  لأنه في الاصل  عبارة عن حقول فارغة مكررة

ترقيم عشوائي عبر الجدول.rar

  • Like 1
رابط هذا التعليق
شارك

ممتاز ورائع ..

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

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

8 دقائق مضت, حامل المسك said:

ممتاز ورائع ..

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

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

أما مشكلة التكرار فتم علاجها من خلال الاستعلام  كما في المثال المرفق .. تبقى مسألة ثبات الرقم بحيث لا يتغير البتتتتتتتتتة

ترقيم عشوائي عبر الجدول.rar

رابط هذا التعليق
شارك

معالجة التكرار هذه فكرة ظريفة

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

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

وهو ماتم عمله من خلال الكود ادناه  انسخه والصقه بدلا من الاول :

Dim db1 As DAO.Database
Dim rs As DAO.Recordset
Set db1 = CurrentDb
Set rs = db1.OpenRecordset("SELECT table1.nox, table1.nameX, table1.id, * " & vbCrLf & _
"FROM table1 " & vbCrLf & _
"WHERE (((table1.id) Is Null))")
If rs.RecordCount > 0 Then
rs.MoveFirst
Else
Exit Sub
End If
Do While Not rs.EOF
rs.Edit
   rs!id = Format(Int(Rnd * 123456789), "0000000")
rs.Update
rs.MoveNext
Loop
rs.Close: Set rs = Nothing

 

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

3 ساعات مضت, حامل المسك said:

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

ان كان هذا سؤال ؟

فالاجابة :

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

  وبالمثل الاصفار  اجعلها خمسة او 6

جرب  وتلاعب بالارقام  زيادة ونقصا وانظر في النتائج

رابط هذا التعليق
شارك

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