أعزائي الكرام أرفق لكم نموذج حساب مكافأة نهاية الخدمة أرجو مساعدتكم في كتابة الكودالمكافأة = راتب عن الثلاث سنوات الأولى وراتبين على السنوات الأخيرة س = الراتب × 1(راتب) × 3(السنوات الأولى) = ص = الراتب × 2(راتبين) × السنوات الأخيرة =المكافأة = س + صمثال الراتب 200مدة الخدمة 5 سنوات و6 أشهر و7 أيامالمكافأة = 200(الراتب)× 1(راتب) × 3(السنوات الأولى) = 600 = 200(الراتب) × 2(راتبين) × 2(السنوات الباقية من 5 سنوات) = 800 = 200(الراتب) × 2(راتبين) × 6(عدد الأشهر) ÷ 12(تحويل الأشهر إلى سنوات) = 200 = 200(الراتب) × 2(راتبين) × 7(عدد الأيام) ÷ 365(تحويل الأيام إلى سنوات = 7.671) بعد الفاصلة نأخذ 3 أرقام بدون تقريب = 600 + 800 + 200 + 7.671 = 1607.671أحاول أرفق الملف بس ما يصير ضغط أكثر من مرة في خانة أنقر هنا لترفق الملفات بس ما يفتح لي شئ ما المشكلة
حساب مكافأة نهاية الخدمة
السلام عليكم ورحمة الله وبركاته
الأخ الكريم
هل بالإمكان إرفاق قاعدة البيانات ( بصيغة أكسيس 2003 ) ؟ حتى يتم التعامل معها مباشرة ، وحتى نفهم سؤالك بشكل أحسن ونستطيع مساعدتك .
بارك الله فيك

ومامن يد إلا يد الله فوقها *** وما من ظالم إلا سيبلى بأظلم
تفضل أخي الكريم | موسوعة الحميدي الذهبية | بأجزائها الثلاثة مع هدية الموسوعة .
أخي saswahaibi حسب مافهمت من مشاركتك اليك احد الحلول من خبرتي المتواضعة
وهي عبارة عن جزأين الأول يفوم بحساب عدد أيام الخدمة خر يقوم بحساب نهاية الخدمة المطلوبة
علمأ أنني لم أستطع ارفاق المثال لظهور رسالة من الموقع تفيد بأنه ليس لدي صلاحية بذلك ;
Public Function MyDateDiff(StartDate, EndDate)
On Error GoTo errme
MyDateDiff = DateDiff("d", CDate(StartDate), CDate(EndDate))
Exit Function
errme:
MyDateDiff = 0
End FunctionPublic Function Benefit(TotalAmt, Days)
On Error GoTo errme
If Days > 365 * 3 Then
Benefit = (TotalAmt * 3) + TotalAmt * (Days - (365 * 3)) * 2 / 365
Else
Benefit = TotalAmt * Days / 365
End If
Benefit = Round(Benefit, 0)
Exit Function
errme:
Benefit = 0
End Functionتم تعديل هذه المشاركة بواسطة إياد بيك في 6 مايو 2010 في 21:38
عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ
(الحسن بن علي بن أبي طالب)