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

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

قام بنشر

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

طلبت سابقا من يعينني في العداد للفواتير والتي يبدا من رقم واحد كل بداية سنة جديدة و مشكور جدا لمن تدخل و اعاني

الان وجدت مشكلة التي تتمثل في ان العداد لما يصل الى رقم 2025000099 من المفروض في الفاتورة التي تاتي بعدها يصير 2025000100 لكن تخرج نافذة خطا

سارفق صور حتى تتضح المشكلة

لطلب المساعدة لحل هذا الاشكال و لكم الشكر

Problem_1.png

Problem_2.png

Problem_3.png

Module numero date.doc

قام بنشر (معدل)

 المشكلة واضحة تمامًا: الخطأ "Overflow" يحدث لأن الرقم 2025000100 يتجاوز الحد الأقصى لنوع البيانات Long في VBA، والذي هو:

(Long∈[−2,147,483,648 إلى 2,147,483,647])

لكن الرقم الذي تحاول توليده هو عشرة أرقام، أي يتجاوز هذا الحد.

 

الحل المقترح: استخدام Double بدلًا من Long

غير نوع الإرجاع والمتغيرات من Long إلى Double لتسمح بالأرقام الأكبر:

Public Function GenerateID(TableName As String, fieldName As String) As Double
    Dim currentYear As Integer
    Dim yearPrefix As String
    Dim maxID As Double
    Dim serialPart As Long
    currentYear = Year(Date)
    yearPrefix = CStr(currentYear)
    maxID = Nz(DMax(fieldName, TableName, fieldName & " LIKE '" & yearPrefix & "*'"), yearPrefix & "00")
    serialPart = CLng(Mid(CStr(maxID), Len(yearPrefix) + 1))
    GenerateID = CDbl(yearPrefix & Format(serialPart + 1, "0000"))
End Function

ملاحظات إضافية:

  • استخدمت Format(..., "0000") لضمان أن الجزء التسلسلي يبقى دائمًا بأربعة أرقام.

  • تأكد أن الحقل في الجدول (fieldName) من نوع Double أو Text وليس Long.

  • إذا كنت تستخدم هذا الرقم كمفتاح أساسي (Primary Key)، ففكر في استخدام Text بدلًا من رقم لتجنب مشاكل مستقبلية.

هل تحب أن نضيف تحققًا إضافيًا لتفادي التكرار أو نربط هذا التوليد بحدث معين في النموذج؟
تم تعديل بواسطه kkhalifa1960

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information