اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

كيف اعمل ليصير الرقم التسلسلي يتكون من رقم يحتوي على السنة الحالية و معها 5 ارقام ك 202500001 و لما انتقل الى صفحة جديدة يصبح 202500002 ..... و لكن في بداية السنة الجديدة يكتب 202600001 من جديد سارفق البرنامج لتدلوني كيف اعمل و لكم جزيل الشكر

numerotation.accdb

قام بنشر

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

الأمر بسيط أخي الكريم إن شاء الله . اولاً سننشئ الدالة التالية في مديول :-

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

  • Like 1
قام بنشر

أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ 

GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1))

يجعله الله في ميزان حسناتكم .:fff:

  • Like 1
قام بنشر (معدل)
منذ ساعه, kkhalifa1960 said:

أخي @Foksh كي ينتج طلب السائل ......... السطر الاخير بالموديول بدلة بــ 

GenerateID = CLng(yearPrefix & "0000" & (serialPart + 1))

أشكرك أخي @kkhalifa1960 على الإلتفاتة الجميلة ، ولكن اسمح لي بمداخلة متفرعة .

  1. اذا كان طلب الأخ @حافظ التونسي هو وجود 0000 بعد رقم السنة ثم يبدأ الترقيم دون التأثير على الـ 0000 بحيث النتيجة تكون بهذا الشكل :-
    202500001 ، 202500002 ، .... 2025000010 ، 2025000011 .... 2025000099999 = فإن اقتراحك جميل ويلبي الغرض .


     
  2. أما اذا كانت الفكرة كما تم تحديدها  "رقم التسلسلي يتكون من رقم يحتوي على السنة الحالية و معها 5 ارقام ك 202500001بحيث تكون بهذا الشكل :-
    202500001 ، 202500002 ، 202500003 ، .... 202500010 ، 202500011 .... إلخ .... 202599999 = فأن التعديل الصحيح من جهتي سيكون للسطر الأخير بالشكل التالي :-
GenerateID = CLng(yearPrefix & Format(serialPart + 1, "00000"))

هنا سأضمن لك أن يكون الترقيم مكوناً من 5 خانات ، بوساطة دالة Format .. ويقبل التعديل حسب عدد الخانات التي يريدها صاحب الطلب بتغيير عدد الأصفار فقط .
إلا أنني تجاهلت التقيد بعدد خانات محددة مثل ( 00000 ) . فنهاية الترقيم ستكون 202599999 .

ولكن ماذا لو كان هناك سجل جديد وما زال العام 2025 لم ينتهي !؟!؟ لذا لم أقم بإضافتها أو التقيد بها أخي العزيز خليفة :wub: .

تم تعديل بواسطه Foksh
  • Like 1
  • Thanks 1
قام بنشر

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

شكرا جزيلا لمروركم و مناقشة موضوعي و انك وجدتم لي الحل 

جازاكم الله خيرا

و اسال هل سيتغير العداد اذا دخلت السنة الجديدة و يصبح الرقم من جديد على هذا الشكل 202600001 ؟

قام بنشر
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.

زائر
اضف رد علي هذا الموضوع....

×   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