Public Function WriteAudit(frm As Form, lngID As Long) As Boolean
On Error GoTo err_WriteAudit
Dim ctlC As Control
Dim strSQL As String
Dim bOK As Boolean
Dim stbl As String
Dim field As String
bOK = False
stbl = frm.RecordSource
DoCmd.SetWarnings False
For each control.
For Each ctlC In frm.Controls
If TypeOf ctlC Is TextBox Or TypeOf ctlC Is ComboBox Then
If ctlC.Value <> ctlC.OldValue Or IsNull(ctlC.OldValue) Then
If Not IsNull(ctlC.Value) Then
strSQL = "INSERT INTO tblAudit ( ID, FieldChanged, FieldChangedFrom, FieldChangedTo, User,stable, DateofHit,user1) " & _
" SELECT " & lngID & " , " & _
"'" & ctlC.name & "', " & _
"'" & ctlC.OldValue & "', " & _
"'" & ctlC.Value & "', " & _
"'" & GetUserName_TSB & "', " & _
"'" & stbl & "', " & _
"'" & Now & "'," & _
"'" & DLookup("[username]", "fbi") & "'"
'Debug.Print strSQL
DoCmd.RunSQL strSQL
End If
End If
End If
Next ctlC
WriteAudit = bOK
exit_WriteAudit:
DoCmd.SetWarnings True
Exit Function
err_WriteAudit:
MsgBox Err.Description
Resume exit_WriteAudit
بعد إذن إستاذي الفاضل أبو خليل " أعتذر إبتداءا وإنتهاءا " على تدخلي بهذه المشاركة
أخي الفاضل يوسف يمكن عمل ما تفضلت به إن كان عندك في برنامجك نظام لصلاحيات المستخدمين فكل ما عليك فعله هو إضافة حقل وليكن user1 في جدول tblAudit حيث يشير user1 الى إسم المستخدم الذي دخل الى البرنامج والذي سيقوم بإجراء التعديل طبعاً بعدها تعدل على الكود كما هو موضح مع مراعاة تعديل ما هو باللون الأخضر حسب برنامجك و طبعاً هذا الجزء ("'" & DLookup("[username]", "fbi") & "'") يستدعي إسم المستخدم من إستعلام ويقوم بإلحاقه بجدول tblAudit
أرجو أن أكون قد أفدت
وأعود وأعتذر لأستاذي أبو خليل لأنه لا لمثلي أن يتقدم على مثله لكن ما دفعني هو تقيم إجابتي حيث كنت سأطرح نفس السؤال .