حافظ التونسي قام بنشر بالامس في 12:12 قام بنشر بالامس في 12:12 كيف اعمل ليصير الرقم التسلسلي يتكون من رقم يحتوي على السنة الحالية و معها 5 ارقام ك 202500001 و لما انتقل الى صفحة جديدة يصبح 202500002 ..... و لكن في بداية السنة الجديدة يكتب 202600001 من جديد سارفق البرنامج لتدلوني كيف اعمل و لكم جزيل الشكر numerotation.accdb
Foksh قام بنشر بالامس في 12:42 قام بنشر بالامس في 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.accdb 1
kkhalifa1960 قام بنشر منذ 21 ساعات قام بنشر منذ 21 ساعات أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1)) يجعله الله في ميزان حسناتكم . 1
Foksh قام بنشر منذ 20 ساعات قام بنشر منذ 20 ساعات (معدل) منذ ساعه, 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 لم ينتهي !؟!؟ لذا لم أقم بإضافتها أو التقيد بها أخي العزيز خليفة . تم تعديل منذ 20 ساعات بواسطه Foksh 1 1
حافظ التونسي قام بنشر منذ 5 ساعات الكاتب قام بنشر منذ 5 ساعات السلام عليكم و رحمة الله و بركاته شكرا جزيلا لمروركم و مناقشة موضوعي و انك وجدتم لي الحل جازاكم الله خيرا و اسال هل سيتغير العداد اذا دخلت السنة الجديدة و يصبح الرقم من جديد على هذا الشكل 202600001 ؟
Foksh قام بنشر منذ 3 ساعات قام بنشر منذ 3 ساعات 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.