Olá pessoal, sou novato. Sou administrador tendo que resolver de tudo.
Estou ajudando uma associação criando um sistema, porém estou tendo a necessidade de registros de alterações no sistema, e pesquisando vi alguns posts aqui com links não mais disponíveis.
Escrevi no meu projeto e mesmo assim esta dando erro "3001: Argumento inválido."
Não sei o que fazer. Me inscrevi no site a algum tempo, porém somente a poucos meses iniciei o projeto. Alguém poderia me ajudar??
Transcrevi abaixo.
Primeiro criei "tbl_AuditTrail",
campos: AuditTrailID, DateTime, UserName, FormName, Action, RecordID, FieldName, OldValue, NewValue
Módulo:
No formulário:
Desculpem se fiz algo ou postei de alguma forma que não devia!
Desde já agradeço!!
Estou ajudando uma associação criando um sistema, porém estou tendo a necessidade de registros de alterações no sistema, e pesquisando vi alguns posts aqui com links não mais disponíveis.
Escrevi no meu projeto e mesmo assim esta dando erro "3001: Argumento inválido."
Não sei o que fazer. Me inscrevi no site a algum tempo, porém somente a poucos meses iniciei o projeto. Alguém poderia me ajudar??
Transcrevi abaixo.
Primeiro criei "tbl_AuditTrail",
campos: AuditTrailID, DateTime, UserName, FormName, Action, RecordID, FieldName, OldValue, NewValue
Módulo:
- Código:
' Austin
Public Function AuditChanges(RecordID As String, UserAction As String)
On Error GoTo auditerr
Dim DB As Database
Dim rst As Recordset
Dim clt As Control
Dim UserLogin As String
Set DB = CurrentDb
Set rst = DB.OpenRecordset("select * from tbl_AuditTrail", adOpenDynamic)
UserLogin = Environ("UserName")
Select Case UserAction
Case "New"
With rst
.AddNew
![DateTime] = Now()
!UserName = UserLogin
!FormName = Screen.ActiveForm.Name
!Action = UserAction
!RecordID = Screen.ActiveForm.Controls(RecordID).Value
.Update
End With
Case "Delete"
With rst
.AddNew
![DateTime] = Now()
!UserName = UserLogin
!FormName = Screen.ActiveForm.Name
!Action = UserAction
!RecordID = Screen.ActiveForm.Controls(RecordID).Value
.Update
End With
Case "Edit"
For Each clt In Screen.ActiveForm.Controls
If (clt.ControlType = acTextBox _
Or clt.ControlType = acComboBox) Then
If Nz(clt.Value) <> Nz(clt.OldValue) Then
With rst
.AddNew
![DateTime] = Now()
!UserName = UserLogin
!FormName = Screen.ActiveForm.Name
!Action = UserAction
!RecordID = Screen.ActiveForm.Controls(RecordID).Value
!FieldName = clt.ControlSource
!OldValue = clt.OldValue
!NewValue = clt.Value
.Update
End With
End If
End If
Next clt
End Select
rst.Close
DB.Close
Set rst = Nothing
Set DB = Nothing
auditerr:
MsgBox Err.Number & " : " & Err.Description, vbCritical, "Error"
Exit Function
End Function
No formulário:
- Código:
If Me.NewRecord Then
Call AuditChanges("id", "New")
Else
Call AuditChanges("id", "Edit")
End If
Desculpem se fiz algo ou postei de alguma forma que não devia!
Desde já agradeço!!
Última edição por r85 em 11/12/2017, 17:09, editado 1 vez(es)