olá.
Tenho um módulo pra registrar as alterações dos usuários nos formulários, mas ele não registra alterações nas tabelas, por exemplo ao sair executar alguma alteração no estoque, ele não faz isso. Alguém sabe que posso fazer pra registrar esses dados?
obs: no evento do formulário eu coloco
Antes de atualizar: =logChange("A")
Ao excluir: =logChange("E")
Tenho um módulo pra registrar as alterações dos usuários nos formulários, mas ele não registra alterações nas tabelas, por exemplo ao sair executar alguma alteração no estoque, ele não faz isso. Alguém sabe que posso fazer pra registrar esses dados?
obs: no evento do formulário eu coloco
Antes de atualizar: =logChange("A")
Ao excluir: =logChange("E")
- Código:
Function LogChange(strTipo As String)
Dim db As Database, rslog As Recordset
Dim frm As Form, i As Integer
Dim strLog As String
Set db = CurrentDb
Set rslog = db.OpenRecordset("tbl_LogChange")
Set frm = Screen.ActiveForm
For i = 0 To frm.Controls.Count - 1
If TypeOf frm.Controls(i) Is TextBox Or TypeOf frm.Controls(i) Is ComboBox Or TypeOf frm.Controls(i) Is CheckBox Or TypeOf frm.Controls(i) Is OptionGroup Or TypeOf frm.Controls(i) Is ListBox Then
If strTipo = "E" Then
If strLog = "" Then
strLog = frm.Controls(i).Name & " " & frm.Controls(i).Value
Else
strLog = strLog & "," & frm.Controls(i).Name & ":" & frm.Controls(i).Value
End If
Else
If frm.Controls(i).OldValue <> frm.Controls(i).Value Then
If strLog = "" Then
strLog = frm.Controls(i).Name & "," & frm.Controls(i).OldValue & " -> " & frm.Controls(i).Value
Else
strLog = strLog & "," & frm.Controls(i).Name & ":" & frm.Controls(i).OldValue & " -> " & frm.Controls(i).Value
End If
End If
End If
End If
Next
rslog.AddNew
rslog("strNomeForm") = frm.Name
rslog("strTipoLog") = strTipo
rslog("mmolog") = strLog
rslog("strUser") = CurrentUser
rslog("dtLog") = Now
rslog("Usuario") = getUsuarioAtual()
On Error Resume Next
rslog.Update
rslog.Close
db.Close
End Function