I have set up a new form with a Tab Control, that contains 5 tabs.
On most of my forms in my database use the below code to track changes to fields that are Tagged ?
If I Tag the Tab Control, I get error 2427 - You entered a expression that has no value.
or error 438 - Object does not support this property or Method
If I tag the subforms then this does not log the edited data.
Any thoughts ?
My Tab control is called TabCtl28
Any advice on how i can track the other Tabs (Tab 1 seems to be logged)
On most of my forms in my database use the below code to track changes to fields that are Tagged ?
If I Tag the Tab Control, I get error 2427 - You entered a expression that has no value.
or error 438 - Object does not support this property or Method
If I tag the subforms then this does not log the edited data.
Any thoughts ?
Code:
Call AuditChanges("Unique_ID", "EDIT", Me)
Any advice on how i can track the other Tabs (Tab 1 seems to be logged)
Code:
Sub AuditChanges(IDField As String, UserAction As String, pMyForm As Form)
On Error GoTo AuditChanges_Err
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim ctl As Control
Dim datTimeCheck As Date
Dim strUserID As String
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM tblAuditTraillog", cnn, adOpenDynamic, adLockOptimistic
datTimeCheck = Now()
strUserID = GetLongName
For Each ctl In pMyForm.Controls
If ctl.Tag = "Audit" Or ctl.Tag = "Audit;Lock" Or ctl.Tag = "Req;Audit" Then
'Debug.Print ctl.Name
'Debug.Print ctl.Value
' If Nz(ctl.OldValue, "") <> "" Then
If Nz(ctl.Value) <> Nz(ctl.OldValue) Then
With rst
.AddNew
![DateTime] = datTimeCheck
![UserName] = strUserID
![FormName] = pMyForm.Name
![Action] = UserAction
![RecordID] = pMyForm(IDField).Value
![FieldName] = ctl.ControlSource
![OldValue] = ctl.OldValue
![NewValue] = ctl.Value
.Update
End With
End If
End If
' End If
Next ctl
AuditChanges_Exit:
On Error Resume Next
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
Exit Sub
AuditChanges_Err:
'Debug.Print ctl.Name
'Debug.Print ctl.Value
Call LogError(Err.Number, Err.Description, "AuditTrial", "")
Resume AuditChanges_Exit
End Sub