جرب الكود بعد التعديل :
Public Function التأكد_من_التاريخ()
'On Error Resume Next
Dim checkDate As Variant
checkDate = GetSetting("ApplicationName", "نموذج3", "تاريخ_التشغيل_الأخير")
If IsNull(checkDate) Or checkDate = "" Then ' لم يتم تشغيل الماكرو من قبل
تحديث_التاريخ
MsgBox "تم تسجيل تاريخ التشغيل بنجاح ."
Exit Function
End If
If DatePart("yyyy", Date) = DatePart("yyyy", checkDate) Then ' تم تشغيله قبل ذلك في نفس السنة
If MsgBox("لقد تم تشغيل الماكرو قبل ذلك في هذه السنة ." _
& vbCrLf & "تاريخ التشغيل الأخير هو :" & Format(checkDate, "dd MMMM, yyyy") _
& vbCrLf & vbCrLf & "هل ترغب في إعادة تشغيله مرة أخرى ؟" _
& vbCrLf & vbCrLf & "انقر نعم لتشغيله أو إلغاء الأمر للتراجع .", vbExclamation + vbMsgBoxRight + vbMsgBoxRtlReading + vbOKCancel _
, "تكرار التشغيل") = vbOK Then تحديث_التاريخ
Exit Function
End If
If DatePart("yyyy", Date) > DatePart("yyyy", checkDate) Then ' تم تشغيله في السنة الماضية
تحديث_التاريخ
MsgBox "تم تسجيل تاريخ التشغيل بنجاح ."
End If
End Function
Private Sub تحديث_التاريخ()
DoCmd.RunMacro "ماكرو5"
Call SaveSetting("ApplicationName", "نموذج3", "تاريخ_التشغيل_الأخير", Date)
End Sub
وأخبرني عن النتيجة .
ولك تحياتي