بما أنني شاركت في متابعة سابقة لنفس الموضوع ،جرب هذا الكود في زر التوزيع ,,
Private Sub أمر604_Click()
On Error Resume Next
If IsNull(Me.grop) Then
MsgBox "من فضلك اكتب عدد المجموعة", vbCritical
Exit Sub
End If
If IsNull(Me.go11) Then
MsgBox "من فضلك اكتب بداية رقم الجلوس", vbCritical
Exit Sub
End If
If IsNull(Me.Se1) Then
MsgBox "من فضلك اكتب بداية رقم السرى", vbCritical
Exit Sub
End If
If IsNull(Me.mg_grop) Then
MsgBox "من فضلك اكتب رقم المجموعة", vbCritical
Exit Sub
End If
If IsNull(Me.tr_sry) Then
MsgBox "من فضلك اختر طريقة التوزيع", vbCritical
Exit Sub
End If
Dim k As Integer
Dim rs As DAO.Recordset
If DCount("[num_Glos]", "[data]", "[num_Glos] Between " & [Forms]![sry_trm1]![go11] & " AND " & [Forms]![sry_trm1]![go22] & " And [sery] Is Not Null") > 0 Then
MsgBox "انتبه : تم ادخال ارقام الجلوس هذه سابقا", vbCritical
ElseIf DCount("[sery_name]", "[data]", "[sery_name] = " & [Forms]![sry_trm1]![mg_grop] & "") > 0 Then
MsgBox "انتبه : تم ادخال رقم هذه المجموعة سابقا", vbCritical
ElseIf DCount("[sery]", "[data]", "[sery] Between " & [Forms]![sry_trm1]![Se1] & " AND " & [Forms]![sry_trm1]![Se2] & "") > 0 Then
MsgBox "انتبه : هناك ارقام سرية متداخلة", vbCritical
Exit Sub
Else
Set rs = CurrentDb.OpenRecordset("SELECT data.name_student, data.num_Glos, data.CLASS_CLASS, data.sery, data.sery_name FROM data WHERE data.num_Glos Between " & [Forms]![sry_trm1]![go11] & " And " & [Forms]![sry_trm1]![go22] & ";")
k = Me.Se1
With rs
.MoveLast
.MoveFirst
For i = 1 To .RecordCount
.Edit
rs!sery = k
rs!sery_name = Me.mg_grop
.Update
If Me.tr_sry = "زائد واحد" Then
k = k + 1
ElseIf Me.tr_sry = "ناقص واحد" Then
k = k - 1
End If
.MoveNext
Next i
End With
MsgBox "تم بنجاح توزيع وادخال الأرقام السرية للمجموعة رقم " & Me.mg_grop, vbInformation
Me.Requery
Me.Se1 = ""
Me.go11 = ""
Me.mg_grop = ""
Me.grop = ""
End If
End Sub
المرفق بعد التعديل :-
توزيع اللجان والسرى.accdb