جدول الموظفين , أضف الحقل hiredate ( تاريخ الالتحاق بالعمل )
جدول الاجازات - يكفيك أربعة حقول و هي : الحقل المعرف - رقم الموظف - تاريخ من - تاريخ الى
ـنشأ وحدة نمطية جديدة و أضف فيها الكود التالي :
Function Vac_Due(emp As Long, hdate As Date) As Long
Dim Vac_Used As Integer
Dim Vac_Entitle As Integer
Dim d As Integer
Dim hd As Date
Vac_Used = Nz(DSum("Vac_Per", "Vac_Trans", "[code_employé] = " & emp & " and [Date_départ] < " & Chr(35) & hdate & Chr(35)), 0)
hd = DLookup("hiredate", "[Employé en arabe]", "[Code_employé] = " & emp)
Vac_Entitle = Nz((Year(hdate) - Year(hd)) * 30, 0)
Vac_Due = Vac_Entitle - Vac_Used
End Function
الآن قم بانشاء الاستعلام التالي لحساب الاجازة , كما يلي :
SELECT congé.code_employé, congé.Date_départ, congé.Date_retour, [Date_retour]-[Date_départ]+1 AS Vac_Per, 30 AS Vac_Ent, vac_due([code_employé],[Date_départ]) AS Prev_Bal, [prev_bal]-[vac_per] AS Cur_Bal
FROM congé
ORDER BY congé.code_employé, congé.Date_départ;
الحقل prev_bal يبين لك رصيد الاجازة المستحقة قبل الاجازة الحالية
الحقل cur_bal يبين لك الرصيد المتبقي بعد فترة الاجازة الحالية