مرحبا أخي @عبدالعزيز محمد 🙂
أنشأت لك هذه الدالة ، تأخذ الرقم القومي فتقوم بطرح سنة الميلاد من السنة الحالية للحصول على عمر الطالب بالسنوات ..
بعدها يتم توزيع الطلاب على مراحلهم بناءا على العمر ، وطبعا سوف تتغير المرحلة تلقائيا في الأعوام القادمة لأن الدالة تحسب العمر تلقائيا 🙂
Public Function AutoStage(IDNum As String) As String
Dim bYear As Integer
bYear = CInt(Mid(IDNum, 2, 4)) 'تستخلص سنة الميلاد من الرقم القومي
bYear = Year(Date) - bYear ' تطرح سنة الميلاد من هذا العام لمعرفة العمر الحالي
'Debug.Print bYear
'توزيع المرحلة على حسب العمر الحالي للطالب
Select Case bYear
Case Is = 3: AutoStage = "حضانه"
Case Is = 4: AutoStage = "روضه"
Case Is = 5: AutoStage = "تمهيدي"
Case Is = 6: AutoStage = "الأول"
Case Is = 7: AutoStage = "الثاني"
Case Is = 8: AutoStage = "الثالث"
Case Is = 9: AutoStage = "الرابع"
Case Is = 10: AutoStage = "الخامس"
Case Is = 11: AutoStage = "السادس"
Case Is = 12: AutoStage = "السابع"
Case Is = 13: AutoStage = "الثامن"
Case Is = 14: AutoStage = "التاسع"
Case Is = 15: AutoStage = "أول ثانوي"
Case Is = 16: AutoStage = "ثاني ثانوي"
Case Is = 17: AutoStage = "ثالث ثانوي"
Case Else: AutoStage = ""
End Select
End Function
ثم وضعتها في مربع نص (محسوب) مصدره الدالة التي تغذيها بالرقم القومي فتحسب لك تلقائيا المرحلة ..
ملاحظة : ( تحتاج أن تضع في الحسبان حالات الرسوب وإعادة السنة الدراسية ) 🙂
Aziz(Moosak).zip