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

رجاااءً ... كود ترتيب الترقيم التسلسلي

مغلق
بدأه falantokh في 29 أبريل 2003 · 5 رد · 689 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

الكثير، وفقكم الله لما يحبه ويرضاه.

سؤال يؤرق مضجعي وقد بحثت عنه كثيراً في المنتدى ولم أجد إجابة واضحة

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

(ROOF2000) والذي نشره مشكوراً ولكن لم أستطع فهم مكان وضع هذا الكود

مع محاولتي تطبيق ما ذكره .. أرجو ممن لديه كود للترقيم التلقائي وسدّ مكان

الأرقام الشاغره التي تم حذفها فلا يبخل علينا ويضعها لنا مشكوراً.

وهذا هو الكود الذي وضعه الأخ (ROOF2000) أرجو ممن تمكن من تجربته أن

يخبرنا عن مكان وضع الكود، ودمتم.

=====================

* كود لإضافة ارقام للسجلات و سد مكان الارقام الشاغرة

دالة للترقيم التلقائي في الجدول تنادى في حدث قبل الادخال من النموذج

'MYFORMAT="00000"

Public Property Get okm2(MYFIELD As String, MYtABEL As String, MYFORMAT As String) As String

'لاعطاء رقم للسجل تلقائيا

Dim x2 As String

x2 = DCount(MYFIELD, MYtABEL)

If x2 = 0 Then

x2 = Format(1, MYFORMAT)

okm2 = x2

Exit Property

Else

x2 = MYFORMAT

Dim mydb As Database, myrec As Recordset, mynum As String

Set mydb = CurrentDb

Dim mystrsql As String, mystrsqlA As String, mystrsqlB As String, mystrsqlC As String

mystrsql = "SELECT " & MYtABEL & "." & "" & MYFIELD & " AS MYHR" & "" & _

" FROM " & MYtABEL & " " & _

" ORDER BY " & MYtABEL & "." & "" & MYFIELD & ";" & ""

Set myrec = mydb.OpenRecordset(mystrsql)

Do While myrec.EOF = False 'للبحث عن الارقام الشاغرة واعطائها للجديد

mynum = myrec!MYHR

x2 = Format(x2 + 1, MYFORMAT)

If mynum <> x2 Then GoTo 10

myrec.MoveNext

Loop

x2 = Format(x2 + 1, MYFORMAT)

10:

myrec.close

Set myrec = Nothing

mydb.close

Set mydb = Nothing

okm2 = x2

End If

End Property

=====================

كما ذكر أن الكود يوضع في حدث قبل الإدخال

Private Sub Form_BeforeInsert(Cancel As Integer)

End Sub

أرجوووووووو منكم التكرم فيما إذا كان الكود صحيحاً ويقوم بالترقيم التلقائي

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

الإدخال في النموذج أم في (موديولز) أو ما يسمى بالوحدة النمطية.

أرجو التوضيح

#2

ممكن أن يكون هذا الكود صحيحا لكن يوجد هناك حل آخر أسهل قد اخذته أيضا من أحد أعضاء المنتدى

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

مع العلم بأنه يجب أن يكون نوع الحقل (رقم) وليس (ترقيم تلقائي) أو (نص)

=nz(DMax("[اكتب اسم الحقل هنا]";"[اكتب اسم الجدول هنا]"))+1

وعندما تريد أن تحذف أي سجل ومن ثم تغلق النموذج وتفتحه ستجد ان الحقول مرتبة ومتسلسلة

ملاحظة: ستجد أن الكود الذي وضعته لك غير مرتب لا تبالي بذلك وما عليك إلا أن تقوم بنسخ السطر ووضعه كما هو ومن ثم تغير اسم الجدول واسم الحقل

#3

الأخ بو يوسف شكرا على ردك

ولكن على حد علمي بأن هذا الكود يأخذ أعلى قيمة ويضيف إليها واحد

بينما المطلوب أن يفحص قاعدة البيانات ويجد أرقام السجلات المحذوفة ويقوم بـ شغرها بدلاً من أن تكون هناك أرقام غير متسلسلة!!

أرجو إعادة قراءة السؤال ، فضلاّ وليس أمراً :)

#4

هذا المثال لأخي الغالي الغائب عن المنتدى الحاصر في قلوبنا أبو هاجر وهو رائع فعلاً جربه فلن تخسر وأظنه يفي بغرضك0

147.zip

#5

هذا المثال لأخي الغالي الغائب عن المنتدى الحاضر في قلوبنا أبو هاجر وهو رائع فعلاً جربه فلن تخسر وأظنه يفي بغرضك0

147.zip

#6

الأخ الفاضل/ مصلح

شكراً جزيلاً لك على تجاوبك وغهتمامك .. ولكن حاول أن تحذف سجل من داخل

الفورم [P] وليكن آخر سجل مثلاً وقم بعدها بإضافة سجل جديد، سوف يحل الرقم التلقائي مكان الرقم المحذوف وهذا جميل... ولكن بعد أن تبعد التركيز عن السجل وتضغط على سجل آخر يعود رقم السجل ليصبح متكرراً ... فقط جرب وتصبح الأمور واضحة لديك بشكل أكبر

هذا الموضوع مغلق.

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