حافظ التونسي قام بنشر April 6 قام بنشر April 6 كيف اعمل ليصير الرقم التسلسلي يتكون من رقم يحتوي على السنة الحالية و معها 5 ارقام ك 202500001 و لما انتقل الى صفحة جديدة يصبح 202500002 ..... و لكن في بداية السنة الجديدة يكتب 202600001 من جديد سارفق البرنامج لتدلوني كيف اعمل و لكم جزيل الشكر numerotation.accdb
تمت الإجابة Foksh قام بنشر April 6 تمت الإجابة قام بنشر April 6 وعليكم السلام ورحمة الله وبركاته .. الأمر بسيط أخي الكريم إن شاء الله . اولاً سننشئ الدالة التالية في مديول :- Public Function GenerateID(TableName As String, fieldName As String) As Long Dim currentYear As Integer Dim yearPrefix As String Dim maxID As Long Dim serialPart As Long currentYear = Year(Date) yearPrefix = currentYear & "" maxID = Nz(DMax(fieldName, TableName, fieldName & " LIKE '" & yearPrefix & "*'"), yearPrefix & "00") serialPart = CLng(Mid(maxID, Len(yearPrefix) + 1)) GenerateID = CLng(yearPrefix & (serialPart + 1)) End Function ثم في مربع النص داخل النموذج سنقوم بجعل القيمة الإفتراضية لهذا المربع النصي = الإستدعاء التالي ( على اعتبار ان الجدةل اسمه Tbl_Cust والحقل الرقمي الخاص بالترقيم = ID ) .. =GenerateID("Tbl_Cust","ID") المرونة في الإستدعاء ستكون انه يمكنك استخدام الترقمي لأكثر من جدول . فقط بتغيير اسم الجدول وحقل الترقيم . وهذا مثال في ملف مرفق :- GenerateID.accdb 2
kkhalifa1960 قام بنشر April 6 قام بنشر April 6 أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1)) يجعله الله في ميزان حسناتكم . 1
Foksh قام بنشر April 6 قام بنشر April 6 (معدل) منذ ساعه, kkhalifa1960 said: أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1)) أشكرك أخي @kkhalifa1960 على الإلتفاتة الجميلة ، ولكن اسمح لي بمداخلة متفرعة . اذا كان طلب الأخ @حافظ التونسي هو وجود 0000 بعد رقم السنة ثم يبدأ الترقيم دون التأثير على الـ 0000 بحيث النتيجة تكون بهذا الشكل :- 202500001 ، 202500002 ، .... 2025000010 ، 2025000011 .... 2025000099999 = فإن اقتراحك جميل ويلبي الغرض . أما اذا كانت الفكرة كما تم تحديدها "رقم التسلسلي يتكون من رقم يحتوي على السنة الحالية و معها 5 ارقام ك 202500001" بحيث تكون بهذا الشكل :- 202500001 ، 202500002 ، 202500003 ، .... 202500010 ، 202500011 .... إلخ .... 202599999 = فأن التعديل الصحيح من جهتي سيكون للسطر الأخير بالشكل التالي :- GenerateID = CLng(yearPrefix & Format(serialPart + 1, "00000")) هنا سأضمن لك أن يكون الترقيم مكوناً من 5 خانات ، بوساطة دالة Format .. ويقبل التعديل حسب عدد الخانات التي يريدها صاحب الطلب بتغيير عدد الأصفار فقط . إلا أنني تجاهلت التقيد بعدد خانات محددة مثل ( 00000 ) . فنهاية الترقيم ستكون 202599999 . ولكن ماذا لو كان هناك سجل جديد وما زال العام 2025 لم ينتهي !؟!؟ لذا لم أقم بإضافتها أو التقيد بها أخي العزيز خليفة . تم تعديل April 6 بواسطه Foksh 1 1
حافظ التونسي قام بنشر الإثنين at 08:08 الكاتب قام بنشر الإثنين at 08:08 السلام عليكم و رحمة الله و بركاته شكرا جزيلا لمروركم و مناقشة موضوعي و انك وجدتم لي الحل جازاكم الله خيرا و اسال هل سيتغير العداد اذا دخلت السنة الجديدة و يصبح الرقم من جديد على هذا الشكل 202600001 ؟ 1
Foksh قام بنشر الإثنين at 09:49 قام بنشر الإثنين at 09:49 1 ساعه مضت, حافظ التونسي said: اسال هل سيتغير العداد اذا دخلت السنة الجديدة و يصبح الرقم من جديد على هذا الشكل 202600001 ؟ نعم اخي الكريم ، في العام الجديد سيبدأ الترقيم من جديد
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.