لكي التحية والتقدير استاذتي سابقا لقد ساعدتيني كثيرا حتي توصلنا إلى عمل جميل في اضافة رقم متدرب استنادا إلى رقم دفعة كما هو في الكود ادناه
Private Sub Gr_No_AfterUpdate()
On Error Resume Next
Me.Refresh
Dim Xx As String
Dim i As String
Dim Y As String
Dim Z As Integer
i = right(Me.Gr_No, 2) ' year
Y = Left(Me.Gr_No, 1) ' Group_No
Z = DCount("gr_no", "جدول المتدرب", "Left([Gr_No], 1)='" & Y & "'" & " and right([Gr_No], 2)='" & i & "'")
If Z = 0 Then
Xx = "01"
Else
Xx = Nz(CLng(DMax("tr_no", "جدول المتدرب", "Left([Gr_No], 1)='" & Y & "'" & " and right([Gr_No], 2)='" & i & "'") + 1), 0)
If IsNull(Xx) Or Xx = "" Then
Xx = "01"
End If
Xx = right(Xx, 2)
End If
Me.Tr_No = i & Y & Xx
End Subوكان جهد ممتاز جدا وجميل
ولكن في بعض الحالات يبدأ المتدرب في التدريب ويعطي رقم مثلا 12103 ويستمر الامر لعدة متدربين وبعد شهر يستقيل المتدرب وعند حضور متدرب جديد الكود بعطيه بعد آخر رقم يعني اذا اخر رقم 12115 بعطيه 12116 وهكذا هل بالامكان تعديل الكود بحيث اذا كان هناك رقم مفقود يبحث في الجدول ويعطيه الرقم المفقود اذا كان ممكن ذلك واكرر الشكر والتقدير

