اذهب الي المحتوي
أوفيسنا

كتابة كود لاضافة قيمة حسب التاريخ وموعد محدد ( معدل)


Yousef Aqel

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

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

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

اريد من خانة تكلفة الاقامة ان يوضع بها قيمة 1220 كقيمة ثابتة عند تحقق شرط معين وهو 

تاريخ اليوم <= تاريخ انتهاء الاقامة + 21

اما بالنسبة لخانة الغرامات اريدها ان تحسب بشكل تلقائي بتحقق شرط معين 

الشرط ان يكون مضى على انتهاء الاقامة 90 يوم فأكثر وعند تحقق الشرط تزداد قيمة الغرامات بمقدار 10 لكل يوم 

مثال توضيحي: الموظف الاول " محمد" انتهت اقامته في تاريخ 4/9/2016

اي انها انتهت منذ 147يوم

يبنغي ان تحتوي الخانات الاخرى على القيم التالية

تكلفة الاقامة : 1220 لتحقق الشرط في هذه الخانه

الغرامات : 570  ....... لانها انتهت منذ 147 يوم والغرامات تحتسب بعد 90 يوم 

اي انه دخل في الغرامة لمدة  147-90=57 يوم

واذا فتحنا البرنامج غدا تكون قيمة الغرامات عند محمد 580  ..... وهكذا 

اما بالنسبة للموظف فيصل فان اقامته سوف تنتهي في تاريخ 2017/02/11: ينبغي ان تحتوي الخانات على القيم التالية  

تكلفة الاقامة : 1220 لانه تحقق الشرط لهذه الخانه 

الغرامات : 0  لانه لم تصل  مدة انتهاء الاقامة 90 يوم 

بالنسبة للموظف سمير  فانه لم تنته اقامته ولم يتبقى على انتهاءها 21 يوم او اقل: ستكون قيمه فارغة تماما 

تكلفة الاقامة : 0   لانه لم يتحقق الشرط   لذلك تحتوي الخانه على صفر 

وايضا الغرامات ستحتوي صفر لانه لم يتحقق الشرط وهو تجاوز مدة انتهاء الاقامة 90 يوم 

 

 

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

 

123.rar123.rar

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

اتفضل ما تريد
 

Private Sub Form_Load()
Dim Re As Integer
Dim NKhram As Integer
Re = DCount("[EmpName]", "empt")
For i = 1 To Re
    If Me.ÇäÊåÇÁ_ÇáÇÞÇãÉ + 21 <= Date Then
        NKhram = DateDiff("d", Me.ÇäÊåÇÁ_ÇáÇÞÇãÉ, Date)
        Me.ÊßáÝÉ_ÇáÇÞÇãÉ = 1220
                If NKhram > 90 Then
                    Me.ÇáÛÑÇãÇÊ = (NKhram - 90) * 10
                    DoCmd.GoToRecord , , acNext
                Else
                    Me.ÇáÛÑÇãÇÊ = 0
                    DoCmd.GoToRecord , , acNext
                End If
    ElseIf Me.ÇäÊåÇÁ_ÇáÇÞÇãÉ + 21 > Date Then
        Me.ÊßáÝÉ_ÇáÇÞÇãÉ = 0
        DoCmd.GoToRecord , , acNext
    End If
        Next i
End Sub

لكن هناك ملاحظة
من الاحسن ان يكتب اسماء الحقول والمربعات النصية بالانكليزية او باللاتينية

123.rar

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

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

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

يعني لو انتهت الاقامة بتاريخ 2/11/2016 هل يبدا يعد من يوم 2 ام من يوم 3 ؟؟؟ وشكرا 

تم تعديل بواسطه Yousef Aqel
رابط هذا التعليق
شارك

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

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



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

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

Important Information