الحقل ( Student_ID ) جعلته من نوع رقم ، وجعلت القيمة الإفتراضية له في النموذج :-
=Nz(DMax("[Student_id]","tblStudentDetails"))+1
* بمعنى آخر ؛ يقوم بالبحث عن آخر قيمة ثم يضيف لها 1 عند الحفظ , وهو الفرق بينه وبين الترقيم التلقائي .
وفي زر الحفظ جعلته يقوم بالبحث في الجدول عن القيمة التي في الحقل ( IDD ) وهو افتراضي يمثل رقم الهوية مثلاُ باستخدام الدالة ( DLookup ) ، وبالكود التالي :-
If Not IsNull(DLookup("[IDD]", "tblStudentDetails", "[IDD] = " & Me.IDD)) Then
If MsgBox(" " _
& vbCrLf & "، الرقم الوطني موجود مسبقاً " _
& vbCrLf & "هل ترغب بالتعديل ؟" _
, 590132, "") = 6 Then
IDD.SetFocus
End If
Else
Undo
DoCmd.CancelEvent
End If
ففي حالة وجود الرقم مسجل مسبقاً يعطيك رسالة نعم أو لا ؛ واذا اخترت نعم يقوم بالذهاب الى الحقل IDD ( رقم الهوية ) للتعديل عليه ، وإذا لا فإنه لا يحفظ - ولك حرية تعديل الشروط حسب رغبتك .
مرفق الملف مضغوط
Database1 (1).zip