بالنسبة للشرح عملنا مربعات نص لكل واجب لتسجيل تاريخ تقديم الواجب باسماء ( wd1 - wd2 - wd3 - wd4 - wd5 ) وجعلناها مخفية حتى لاتظهر في النموذج
ثم عملنا هذا الفانك في النموذج وهو محور العمل في التجميع ....
Function CountFields1()
Dim i, ii As Integer
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT Mo.name, Mo.waj1, Mo.waj2, Mo.waj3, Mo.waj4, Mo.waj5, Mo.waj, Mo.mchro1, Mo.mchro2, Mo.mchro3, Mo.mchro FROM Mo;")
rs.MoveFirst
Do While Not rs.EOF
i = 0
ii = 0
For Each Item In rs.Fields
If InStr(1, "mchro1,mchro2,mchro3", Item.name) > 0 And Item.Value = True Then
i = i + 1
ElseIf InStr(1, "waj1,waj2,waj3,waj4,waj5", Item.name) > 0 And Item.Value = True Then
ii = ii + 1
End If
Next Item
rs.Edit
rs!waj = ii
rs!mchro = i
rs.Update
rs.MoveNext
Loop
End Function