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

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

قام بنشر

مرحبا شباب 

كود أطلع ناتج المدة الباقية لإكمال 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
قام بنشر

إذا كانت مدة العمل 0 يوم 

30 - 0 = 30 أريد يحول ال 30 يوم إلى شهر

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

قام بنشر

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

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 !

تحياتي

 

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