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

المدة الباقية


Alsalim1

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

مرحبا شباب 

كود أطلع ناتج المدة الباقية لإكمال 20 سنة عن طريق الكود

المدة الباقية = 20 - مدة العمل مع الأخذ في الاعتبار إذا في مدة العمل فيه أشهر وأيام نأخذ بعملية التسلف من السنوات 

مثال مدة العمل 18 سنة و10 أشهر و24 يوم

المدة الباقية = 19 سنة - 18 سنة = 1 سنة

= 11 شهر - 10 شهر = 1 شهر

= 30 يوم - 24 يوم = 6 أيام

كما هو ملاحظ تسلفنا من ال 20 سنة 12 شهر

                  

المدة الباقية.rar

رابط هذا التعليق
شارك

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

ويمكن ان تجعل الرقم 20 داخل الكود بدلا من قيمة الحقل

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

Function modah(vyear As Integer, vmonth As Integer, vday As Integer)
    v1 = (text0 - 1) - vyear
    v2 = 11 - vmonth
    v3 = 30 - vday
        If v3 < 0 Then
        v2 = v2 - 1
       End If
    v2 = v2 Mod 12
    modah = v1 & "سنة,  " & v2 & "شهر,  " & v3 & "يوم"
End Function

وهنا تم نداؤها داخل المحرر في حدث النقر على الزر

textx = modah(Text1, Text2, Text3)

 

طرح سنوات من الخدمة.rar

رابط هذا التعليق
شارك

أشكرك أخي الكريم بس أريده يفصل لي الأيام والأشهر  والسنوات على حسب المرفق وإذا طلع الناتج في الأيام 30 يوم فأكثر أريده يحولهن إلى شهر وإذا طلع الناتج في الاشهر 12 سنة فأكثر يحول الاشهر إلى سنوات

طرح سنوات من الخدمة.rar

رابط هذا التعليق
شارك

حسب معطياتك 

لا يمكن تكون  الايام اكثر من ثلاثين

كما لا يمكن ان تكون الاشهر اكثر من 12

لانه لديك خبرة محددة بالسنين والشهور والايام  وتريد تطرحها من العدد 20

فنحن قمنا  بالتسلف بداية وحسبنا الـــ 20 سنة هكذا :

19 سنة  ، 11 شهر ، 30 يوم  

ثم اجرينا عملية الطرح

آمل ان تكون الفكرة واضحة

 

تم تعديل المثال حسب رغبتك

 

طرح سنوات من الخدمة2.rar

  • Like 2
رابط هذا التعليق
شارك

تفضل هذه طريقة اخرى  بالضوابط التي طلبتها

Dim V0, v1 As Integer
  Dim yr, mth, dy As Integer
    V0 = text0 * 360
    v1 = V0 - (Nz(Text1 * 360) + Nz(Text2 * 30) + Nz(Text3))
     yr = v1 \ 360
     mth = (v1 Mod 360) \ 30
     dy = (v1 Mod 360) Mod 30
    textx = yr & "سنة,  " & mth & "شهر,  " & dy & "يوم"
Text4 = yr
Text5 = mth
Text6 = dy

 

طرح سنوات من الخدمة3.rar

رابط هذا التعليق
شارك

تفضل هذه طريقة اخرى  بالضوابط التي طلبتها

Dim V0, v1 As Integer
  Dim yr, mth, dy As Integer
    V0 = text0 * 360
    v1 = V0 - (Nz(Text1 * 360) + Nz(Text2 * 30) + Nz(Text3))
     yr = v1 \ 360
     mth = (v1 Mod 360) \ 30
     dy = (v1 Mod 360) Mod 30
    textx = yr & "سنة,  " & mth & "شهر,  " & dy & "يوم"
Text4 = yr
Text5 = mth
Text6 = dy

 

طرح سنوات من الخدمة3.rar

جواب كافي شافي ويستحق ان يكون بموضوع جديد ! جربو ان يكتب في الاشهر فقط  60.5  او 60.25 !

تحياتي

 

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

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



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

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

Important Information