الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طريقة احتساب سنوات خدمة متقاعد

مغلق
بدأه الكاتب 2005 في 14 أبريل 2005 · 12 رد · 9,105 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة والأخوات

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

هذه صورة النموذج الموجود بالمرفقات أرجو التكرم بمساعدتي

بوضع اكواد للنموذج وجزاكم الله خير الجزاء وجعله في موازين حسناتكم

nmothg%202005.jpg

وشكرا

احتساب استحقاق متقاعد.rar

تم تعديل هذه المشاركة بواسطة الكاتب 2005 في 14 أبريل 2005 في 18:46

#2

استخدم هذه الدالة .

  Dim fdd As Integer, fmm As Integer, fyy As Integer
  Dim tdd As Integer, tmm As Integer, tyy As Integer
  Dim الخدمة_يوم
  Dim الخدمة_شهر
  Dim الخدمة_سنة

  If [تاريخ التعيين] > [تاريخ التقاعد] Then
    Beep
    MsgBox "يجب أن يكون تاريخ التقاعد أكبر من تاريخ التعيين"
    Exit Sub
  End If

  fdd = Mid([تاريخ التعيين], 9, 2)
  fmm = Mid([تاريخ التعيين], 6, 2)
  fyy = Mid([تاريخ التعيين], 1, 4)

  tdd = Mid([تاريخ التقاعد], 9, 2)
  tmm = Mid([تاريخ التقاعد], 6, 2)
  tyy = Mid([تاريخ التقاعد], 1, 4)

  If tdd < fdd Then
    tdd = tdd + 30
    tmm = tmm - 1
  End If

  If tmm < fmm Then
    tmm = tmm + 12
    tyy = tyy - 1
  End If

  [الخدمة_يوم] = tdd - fdd
  [الخدمة_شهر] = tmm - fmm
  [الخدمة_سنة] = tyy - fyy
  
[عدد سنوات الخدمة] = "(" & [الخدمة_يوم] & ")" & "يوم" & " " & "(" & [الخدمة_شهر] & ")" & "شهر" & " " & "(" & [الخدمة_سنة] & ")" & "سنه"

أنظر مثالك بعد التعديل .

تحياتي ..

احتساب استحقاق متقاعد.rar

#3

اضافة الى ما تفضل به اخي فهد الدوسري احببت ان اشارك ايضا فزيادة الخير خيرين مين قدك ياعم ;) ;)

هذا برنامج معمول علشانك مخصوص فيه افكار جديده وكل طلباتك من الالف الى الياء نماذج تقارير استعلامات اجازات بالساعة واليوم والشهر وعدد سنوات الخدمة باليوم والشهر والسنه وما نزلناه للسوق لحد الان هذا البرنامج يدعى برنامج التقاعد المطور

وتم استخدام الدالة التالية لحساب سنوات الخدمه

Function Work(df, mf As Byte, yf As Integer, _
dt, mt As Byte, yt As Integer) As String
Dim dd, mm As Byte
Dim yy As Integer

If dt < df Then
dt = dt + 30
mt = mt - 1
End If

If mt < mf Then
mt = mt + 12
yt = yt - 1
End If

dd = dt - df
mm = mt - mf
yy = yt - yf

Work = dd & " يوم" & mm & " شهر" & yy & سنه"
End Function

طريقة احتساب تعويض الاجازات

عندما يكون سنوات الخدمة

22يوم و15 شهر و26

فيكون استحقاق تعويض الاجازات بالساعة واليوم والشهر هي كالتالي

من الناتج السابق:

عن كل يوم يحتسب 2ساعة = 22×2= 44ساعة

عن كل شهريحتسب 2.5يوم = 15×2.5= 37.5يوم

عن كل سنة يحتسب 30يوم = 26×30÷ 30= 26شهر

والناتج هو:

44ساعة و37.5ويوم26 شهر

وتلاحظ الكود الخاص بالاجازات في المشاركة انه تم عمل التالي

1. الايام ........ تم ضربها في العدد 2 وتم طرح عدد 6 ايام من الناتج تسأل لماذا تم طرح 6 ايام لانك ذكرت ان التاريخ ثابت وهو 24/8/1418 اذن طرحنا 30 يوم من 24 يوم باقي معنا 6 ايام من التاريخ هذا للايام هذا الناتج يعطينا عدد الساعات مع ملاحظة ان اليوم الواحد يساوي 24 ساعة فإذا كان عدد الساعات اكبر من ذلك يضاف الى خانة الايام والباقي بكون عدد الساعات

2. الشهور ...... تم ضربها في 2.5 والناتج تم طرح منه 4 لان السنه 12 شهر وشهر 8 في التاريخ الثابت مع 4 شهور يكمل سنه وهذا الناتج يعطينا عدد الايام مع ملاحظة ان السنه 12 شهر فإذا كان عدد الاشهر اكبر من 12يضاف مياشره الى سنه اضافيه في خانة السنوات وما تبقى يكون عدد الاشهر ليتحول بالكود الى ايام

3. السنوات ..... تم ضربها في 30 وقسمتها على 30 وتم طرح 8 سنوات من 1418 الى 1426 ليعطينا عدد اشهر الاجازات

وتم استخدام الدالة التالية لحساب التعويض عن الاجازات

Function Vic(df, mf As Byte, yf As Integer, _
dt, mt As Byte, yt As Integer) As String
Dim dd, mm As Byte
Dim yy As Integer

If dt < df Then
dt = dt + 30
mt = mt - 1
End If

If mt < mf Then
mt = mt + 12
yt = yt - 1
End If
'التاريخ الثابت 24/8/1418
'تم طرح 6 ايام من الشهر و4 اشهر من السنه و8 سنوات حتى تاريخه
dd = (dt - df) * 2-6
mm = (mt - mf) * 2.5-4
yy = (yt - yf) * 30 / 30-8

Vic = dd & " ساعة" & mm & " يوم" & yy & " شهر"
End Function

برنامج التقاعد المطور.rar

اختكم زهره

تم تعديل هذه المشاركة بواسطة zahrah في 22 أبريل 2005 في 15:12

#4

شكرا للأستاذ/ فهد الدوسري

وشكرا للأستاذة/ زهرة

ما قدمتوه هو المطلوب ولي رجاء للمشرفة الكريمة زهرة ان يكون البرنامج مفتوح لتعديل الشكل

لأن أستخدم شاشة 800×600 وشكرا وسوف اقوم بالتطبيق الفعلي وابلغكم بالنتائج وجزاكم الله

#5

اخي الكاتب

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

الحمد لله اننا استطعنا افادتك ولا تنسى استاذنا ومعلمنا الاخ فهد الدوسري بالدعاء له دعوة صالحة من القلب .

البرنامج يا أخي مفتوح المصدر وغير محمي تستطيع الدخول والتعديل عليه كل ما عليك فعله هو قبل فتح القاعدة اضغط على مفتاح Shift في لوحة المفاتيح ولا ترفع يدك عن المفتاح حتى يفتح لك النموذج الرئيسي ثم اذهب الى ادوات ومنها الى بدء التشغيل وستجد انني قد قمت بإزالة جميع الاشارات ( علامات الصح ) من المربعات قم بإلتأشير عليها كلها ثم احفظ عملك واغلق البرنامج واعد فتحه سترى ان القاعده واطارها كامل موجود تستطيع التعديل كيفما تريد

اختكم

زهره

#6

أختي الكريمة زهرة

أشكرك على سرعة التجاوب والشكر لاستاذنا فقد استفدت من دروسه ومن اجاباته

وتشجعت للعودة لتجديد معلوماتي لبرنامج الآكسيس

اختي الكريمة لدي طلب تعديل على البرنامج وهو أن المتبع أنه عند احتساب تعويض

الاجازات فإنه يكون مقابل كل سنة = 1شهر اجازة وعند التطبيق لم تظهر معي بأن

عدد السنوات يقابلة نفس العدد من الاشهر وهو المطلوب نظاما في التقاعد لبعض الفيئات والبعض يكون 45يوما كل سنة

ارجو ان يكون الاستفسار واضحا ولكم تحياتي

اخوكم/ الكاتب

#7

اخي الكاتب

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

بناء على المعلومات التي ذكرتها من خلال الصوره انك تريد احتساب الاجازات من تاريخ 24/8/1418 ولهذا عند الانتهاء من البرنامج قمنا بطرح 6 ايام و 4 اشهر و8 سنوات لتكون الحسبة صحيحه اذا لم يكن هذا هو المطلوب فبإمكانك التعديل كالتالي

1. افتح اطار قاعدة البيانات الموجود يعني اللوحة الذي فيها

الجداول

الاستعلامات

النماذج

الماكرو

الوحدات النمطيه

اختر الوحدات النمطيه وستجد ملفين الاول بإسم WORK وهو بخص عدد سنوات الخدمه اتركه كما هو والثاني بإسم VIC وهو يخص الاجازات افتحه في عرض التصميم ثم انتقل لاخر الكود وستجد شرح بعده الايام مطروح منها 6 والاشهر مطروح 4 والسنوات 8 قم بحذف هذه الارقام فقط ثم احفظ الوحده النمطيه وشغل النموذج سترى ان عدد السنوات مساويا لعدد اشهر الاجازات حربها واخبرني بالنتيجه في انتظار ردك

#8

المشرفة القديرة الاستاذة : زهرة

تم تطبيق ما تفضلتي به من شرح وكان رائعا

بقي جزئية بسيطة وبذلك يكون البرنامج مكتملا بعون من الله

ثم بجهودك انت والمشرف الكبير الاستاذ / فهد الدوسري بارك الله

في جهودكما

والجزئية هي: في احتساب الاجازات

المطلوب : تحويل الساعات الى أيام تلقائيا عندما يكون الناتج اكثر من 23ساعة

كما هو معمول به في طريقة الايام عندما تكون30يوم تتحول تلقائيا الى شهر

وشكرا لسرعة تجاوبكم

برنامج التقاعد المطور.rar

تم تعديل هذه المشاركة بواسطة الكاتب 2005 في 25 أبريل 2005 في 00:08

#9

اخي الكاتب

هذا هو الملف بعد التعديل اطلع عليه اولا احسب الوقت في ورقه خارجيه مازاد عن 24 ساعة يضاف كيوم وما زاد عن 30 يوم يضاف كشهر وما زاد عن 12 شهر يضاف لسنه انتهينا من سنوات الخدمه

الان ننتقل الى التعويض للاجازات

هذي لها معادلة في الوحدات النمطيه ناتج الفرق بين الايام يضرب في 2 لينتج لنا ساعات وما زاد من الساعات عن 24 ساعة يضاف لليوم

وكذلك فرق الاشهر بضرب في 2.5 لينتج لنا ايام مازاد عن 30 يوم يضاف للشهر

جرب البرنامج وابلغي بالنتيجه هل هي كذلك او تحتاج الى تغيير

برنامج التقاعد المطور.rar

تم تعديل هذه المشاركة بواسطة zahrah في 25 أبريل 2005 في 23:36

#10

أختي الكريمة المشرفة زهرة

لم يتم تحويل كل 24ساعة الى يوم ولا30يوم الى شهر وقد جربت النموذج

عدة مرات آمل تغيير الكود اذا كان ذلك ممكنا وشكرا

#11

الأخت المشرفة زهرة نعود للسؤال مرة أخرى

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

الى أيام واليام الى شهور وشكرا

#12

شكراً لكم جميعاً :

برنامج روعة ومفيد للعمل في طريقة معاملة الموظف المتقاعد 0

ولكن 000000 هـل نسيت أخي الكريم الكاتب 2005 بأن الموظف يمنح في السنة إجازة 35 يوماً

وليس 30 يوماً حسب التعليمات الجديدة 000 ومشكور أخي الكريم على جهودك 0

الأخت زهرة : شكراً لك

على المتابعة الجيدة وأهنئك على هذا العمل الجبار 0

فهل سمحتي بأن تعدلي في الكود أيام الإجازة بدلاً من 30 يوماً تضعين 35 يوماً 000 حيث أن النظام

الجديد يمنح الموظف اجازة 35 يوماً في السنة 0

أخي العزيز فهد الدوسري :

شكراً على ما تقوم به أسأل الله العلي القدير التوفيق والسداد لك وللجميع في هذا المنتدى 0

تم تعديل هذه المشاركة بواسطة ss2002 في 25 سبتمبر 2005 في 19:37

#13

مشكوووووووووووورين

هذا الموضوع مغلق.

مواضيع مشابهة