هذا الكود من تصميم الاخ ابو يوسف وتطوير الاخ حمدي موم الله يجزاهم عني بالخير
وهو يقوم بحساب id عن طريق عد السجلات الفارقة في الحقل Dattewad من الجدول WorkEndHolly
ومن ثم يعطي رسالة بأن الرصيد يكفي او لا
فأذا كان الرصيد يسمح يقوم بإلحاق البيانات ' NumbrH ' Daytewad ' Dattewad في الجدول WorkEndHolly
الأن لنفترض اني اريد تعديل بيانات مدخله سابقاً
هنا يجب حساب الرصيد المتوفر او المتاح اولا عن طريق حساب الحقول الفارقة للحقل Dattewad وان يحسب ايضاً معها الحقول المراد تحديثها ويكون المعرف الفريد لها الحقل NumbrH
حيث تكون جميع الايام المراد تحديثها تحتوي على هذا الرقم NumbrH
عند ذلك تكون الاحتمالات على النحو الآتي
الاحتمال الاول
ان يكون المستخدم يريد زيادة يوم على الايام المدخلة في هذه الحالة اريد ان يكون التحديث بزيادة يوم
الاحتمال الثاني
ان يكون المستخدم يريد انقاص الايام
هنا اريد ان يحذف عدد الايام المنقوصه من الجدول WorkEndHolly للبيانات التالية NumbrH ' Daytewad ' Dattewad
حيث ان الحقل NumbrH هو المعرف الفريد الذي يحدد الايام المطلوب زيادتها او نقصانها
اي ان المراد الان تحويل الكود الى تحديث
الكود
DoCmd.SetWarnings False
Dim i, Nid, cid As Integer, tdat, tdy As String
cid = DCount("id", "WorkEndHolly", "Daytewad is null and pcdigit =" & PcDigit)
If cid < Me.Moditoha Then
MsgBox "رصيد الموظف لايكفي " & cid & " عدد الايام المتاحه "
Exit Sub
End If
For i = 0 To Me.Moditoha - 1
tdat = UmFormat(UmDateAdd("d", i, Me.[HI-Dates]), Dattewads.Format)
tdy = UmFormat(UmDateAdd("d", i, Me.[HI-Dates]), "dddd")
Nid = DLookup("id", "WorkEndHolly", "Daytewad is null and pcdigit =" & PcDigit)
DoCmd.RunSQL "insert into Holly([Type],[StartDay],[StartDat],[EndDay],[EndDat],[TotalDay],[PcDigit],[NumbrH]) Values([Type],[T-Days],[HI-Dates],[Daytewads],[Dattewads],[Moditoha],[PcDigit],[Numbr])"
DoCmd.RunSQL "UPDATE WorkEndHolly SET WorkEndHolly.Daytewad = '" & tdy & "', WorkEndHolly.Dattewad = '" & tdat & "', WorkEndHolly.NumbrH = '" & Numbr & "' WHERE (((WorkEndHolly.id)=" & Nid & "));"

