bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Auditoria de Alterações em Formulários

... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Auditoria de Alterações em Formulários

Antes de iniciar sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

Usuário Eduardo:

Caro Avelino, ante a função abaixo criada por você, pergunto: onde posso alterar para conseguir capturar (gravar na tabela) o nome do campo alterado/atualizado? Na função pega um campo específico.

Public Sub fncAuditar(strNomeForm As String, bytOperação As Byte, strCampo As String)
'--------------------------------------------------------------------
'Argumento bytOperação : 0 - inclusão | 1 - Alteração | 2 - Exclusão
'--------------------------------------------------------------------
Dim strSql$
strSql = "INSERT INTO tblAuditoria (NomeUsuario,DataOperação,TipoOperação,"
strSql = strSql & "MaquinaOrigem,NomeFormulario,identificação) "
strSql = strSql & "VALUES(""" & CreateObject("Wscript.network").UserName & """,'" & Now & "','" & bytOperação
strSql = strSql & "','" & Environ("computername") & "','" & strNomeForm & "',""" & strCampo & """);"
CurrentDb.Execute strSql
End Sub

Grato desde já.

Suporte:

Eduardo, seguem as modificações no projeto para atender a sua necessidade.

Para saber se um campo foi alterado, usei a propriedade OldValue que armazena o valor anterior a alteração.   Assim, comparamos o valor atual com o valor anterior e descobrimos se houve alteração.

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strLista$
If Me.NewRecord Then
    '------------------------
    'Auditar novo registro
    '------------------------
    Call fncAuditar(Me.Name, 0, "Cliente " & Me!NomeCliente)
Else
    '-------------------------
    'Auditar registro alterado
    '-------------------------
    If Me!NomeCliente <> Me!NomeCliente.OldValue Then strLista = strLista & "/NomeCliente"
    If Me!DataNascimento <> Me!DataNascimento.OldValue Then strLista = strLista & "/DataNascimento"
    If Me!Celular <> Me!Celular.OldValue Then strLista = strLista & "/Celular"
    If Me![e-mail] <> Me![e-mail].OldValue Then strLista = strLista & "/e-mail"
    Call fncAuditar(Me.Name, 1, "Cliente " & Me!NomeCliente, strLista)
End If
End Sub

Usuário Eduardo:

Caro Avelino, funcionou perfeitamente a alteração.

Agradeço mais uma vez a boa vontade e a sua prontidão, além, claro, da disseminação de seus conhecimentos.

Download

 


 

 


3 comentário(s)

Dirceu Albrecht   26/03/2018 06:52:25

Muito boa esta função,

Como sugestão eu acredito que dê para fazer um loop pelos campos ao invés de relacionar um a um? teria como?

Saudações e parabéns pelo Blog Avelino, muito interessante esta abordagem de ficar resolvendo situações pontuais, já fiquei viciado em vir aqui conferir as novidades.

Muito bom mesmo!
Abraço

MARCIO MELO - RJ   27/03/2018 05:02:17

Perfeito! Tipo de função que não pode faltar num banco de dados, onde várias pessoas usam para adicionar, editar e excluir. E muita das vezes ninguém sabe o que aconteceu, provocando um desgaste.

O mais bacana é que sempre que possível o Avelino disponibiliza exemplo da aplicação do código que torna uma forma prática de colocar em prática e fazer testes, trazendo uma abordagem didática e detalhada sobre o assunto.

Aprendi muito ao longo dos anos, e sugiro para os que estão iniciando, adiquir o kit completo para ter acesso online e off line a todo material, sei o quanto foi e é útil ter em mãos.

Obrigado por colaborar com os frutos do Suporte de forma super profissional.

Sou mais Brasil!

Forte abraço!

Sidney   17/05/2018 07:06:42

Avelino, Bom dia!!
Belíssimo projeto, esse sistema é perfeito para auditar informações que foram alteradas no banco de dados, dessa forma saberemos quem foi o responsável pela tal alteração do banco, estou tentando implementar no meu projeto, estou querendo incluir mais dois campos na tabela de auditoria, e não estou conseguindo, os campos são "IF" e "Usuario_do_Sistema", este último é capturado pela função "getUsuarioAtual()". podem me ajudar?


Envie seu comentário: