حافظ التونسي قام بنشر الأحد at 12:12 قام بنشر الأحد at 12:12 كيف اعمل ليصير الرقم التسلسلي يتكون من رقم يحتوي على السنة الحالية و معها 5 ارقام ك 202500001 و لما انتقل الى صفحة جديدة يصبح 202500002 ..... و لكن في بداية السنة الجديدة يكتب 202600001 من جديد سارفق البرنامج لتدلوني كيف اعمل و لكم جزيل الشكر numerotation.accdbFetching info...
تمت الإجابة Foksh قام بنشر الأحد at 12:42 تمت الإجابة قام بنشر الأحد at 12:42 وعليكم السلام ورحمة الله وبركاته .. الأمر بسيط أخي الكريم إن شاء الله . اولاً سننشئ الدالة التالية في مديول :- 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.accdbFetching info... 2
kkhalifa1960 قام بنشر الأحد at 16:01 قام بنشر الأحد at 16:01 أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1)) يجعله الله في ميزان حسناتكم . 1
Foksh قام بنشر الأحد at 16:56 قام بنشر الأحد at 16:56 (معدل) في 6/4/2025 at 16:01, kkhalifa1960 said: أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1)) Expand أشكرك أخي @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 لم ينتهي !؟!؟ لذا لم أقم بإضافتها أو التقيد بها أخي العزيز خليفة . تم تعديل الأحد at 17:06 بواسطه Foksh 1 1
حافظ التونسي قام بنشر الإثنين at 08:08 الكاتب قام بنشر الإثنين at 08:08 السلام عليكم و رحمة الله و بركاته شكرا جزيلا لمروركم و مناقشة موضوعي و انك وجدتم لي الحل جازاكم الله خيرا و اسال هل سيتغير العداد اذا دخلت السنة الجديدة و يصبح الرقم من جديد على هذا الشكل 202600001 ؟ 1
Foksh قام بنشر الإثنين at 09:49 قام بنشر الإثنين at 09:49 في 7/4/2025 at 08:08, حافظ التونسي said: اسال هل سيتغير العداد اذا دخلت السنة الجديدة و يصبح الرقم من جديد على هذا الشكل 202600001 ؟ Expand نعم اخي الكريم ، في العام الجديد سيبدأ الترقيم من جديد
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.