أستاذى @أبو إبراهيم الغامدي
اولا سوف أقوم بمنع التكرار و هو موجود بالفعل فى النموذج الذى اعمل عليه
ثانيا النموذج الاخير يقوم بتغيير الاسم فقط و لا يقوم بتغيير الصورة
ارجو التعديل على الكود التالى أن يحذف الامتداد (jpg)حيث هناك صور "jpeg" أو Png فقط
Private Sub Form_Current()
On Error GoTo errresult
Dim ErrImage As String
Dim CurImage As String
ErrImage = "D:\Photo\123\No.jpg"
CurImage = "D:\Photo\123\" & Me.Worker & ".jpg"
Me.imgWorker.Picture = CurImage
errresult:
If Err.Number = 2220 Then
Me.imgWorker.Picture = ErrImage
Resume Next
End If
End Sub
'D:\Photo\123
Private Sub Worker_BeforeUpdate(Cancel As Integer)
Dim OldImage As String
Dim NewImage As String
OldImage = Me.imgWorker.Picture
NewImage = "D:\Photo\123\" & Me.Worker & ".jpg"
If Dir(OldImage) = "No.jpg" Then
Me.imgWorker.Picture = OldImage
ElseIf Len(Dir(NewImage)) > 0 Then
MsgBox Dir(NewImage) & vbNewLine & "يوجد صورة سابقة بنفس الاسم..", _
vbMsgBoxRight + vbMsgBoxRtlReading, "تنبيه"
Me.Undo
Else
Name OldImage As NewImage
Me.imgWorker.Picture = NewImage
End If
End Sub