Boa Tarde A todos
tenho a seguite função em modulo global
Option Compare Database
Option Explicit
'Busca o nome do computador
Function GetNetworkComp() As String
GetNetworkComp = Environ("ComputerName")
End Function
''Função PegaLogs.
Function PegaLogs(strTipo As String)
''Declaração das variáveis.
Dim db As Database, rslog As Recordset
Dim frm As Form, i As Integer
Dim strLog As String
''Fim da declaração das variáveis.
Set db = CurrentDb
Set rslog = db.OpenRecordset("tbl_Logs") ''Tabela onde vão ser salvo os registros de log.
Set frm = Screen.ActiveForm
For i = 0 To frm.Controls.Count - 1
''Campos aceitaveis que a função de log ira reconhecer.
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
''Se for um registro novo, executa esta IF
If strTipo = "Novo" 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
''Fim da IF verificação de novo registro.
Else
''Verifica se foi uma exclusão de registro.
If strTipo = "Excluido" 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
''Fim da verificação de exclusão.
Else
''Se for uma alteração de registro ele faz a verificação.
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
''Fim da verificação de alteração de registro.
End If
End If
End If
End If
Next
rslog.AddNew
rslog("Nome do Formulario") = frm.Name
rslog("Tipo") = strTipo
rslog("Logs") = strLog
rslog("ID_Do_Registro") = Forms!MeuForm!ID
rslog("Usuario") = CurrentUser
rslog("Login") = login.Usuario
rslog("Maquina") = Environ("ComputerName")
rslog("Data") = Now
On Error Resume Next
rslog.Update
rslog.Close
db.Close
End Function
Este módulo tem a função de capturar em form o log de alteração, exclusão, adição registrando dentro de uma tabela chamada tbl_Log.
A linha destacada em azul carrega na tabela o ID do form. Porem na forma que está só posso utilizar em um unico form esta função.
Como tratar esta linha para que busque de forma global todos os ID de acordo com o form que eu utilizar?
tenho a seguite função em modulo global
Option Compare Database
Option Explicit
'Busca o nome do computador
Function GetNetworkComp() As String
GetNetworkComp = Environ("ComputerName")
End Function
''Função PegaLogs.
Function PegaLogs(strTipo As String)
''Declaração das variáveis.
Dim db As Database, rslog As Recordset
Dim frm As Form, i As Integer
Dim strLog As String
''Fim da declaração das variáveis.
Set db = CurrentDb
Set rslog = db.OpenRecordset("tbl_Logs") ''Tabela onde vão ser salvo os registros de log.
Set frm = Screen.ActiveForm
For i = 0 To frm.Controls.Count - 1
''Campos aceitaveis que a função de log ira reconhecer.
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
''Se for um registro novo, executa esta IF
If strTipo = "Novo" 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
''Fim da IF verificação de novo registro.
Else
''Verifica se foi uma exclusão de registro.
If strTipo = "Excluido" 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
''Fim da verificação de exclusão.
Else
''Se for uma alteração de registro ele faz a verificação.
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
''Fim da verificação de alteração de registro.
End If
End If
End If
End If
Next
rslog.AddNew
rslog("Nome do Formulario") = frm.Name
rslog("Tipo") = strTipo
rslog("Logs") = strLog
rslog("ID_Do_Registro") = Forms!MeuForm!ID
rslog("Usuario") = CurrentUser
rslog("Login") = login.Usuario
rslog("Maquina") = Environ("ComputerName")
rslog("Data") = Now
On Error Resume Next
rslog.Update
rslog.Close
db.Close
End Function
Este módulo tem a função de capturar em form o log de alteração, exclusão, adição registrando dentro de uma tabela chamada tbl_Log.
A linha destacada em azul carrega na tabela o ID do form. Porem na forma que está só posso utilizar em um unico form esta função.
Como tratar esta linha para que busque de forma global todos os ID de acordo com o form que eu utilizar?