Quem incluiu, alterou ou excluiu ?
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Montei um projeto bem simples, com a finalidade de se realizar uma auditoria. Pode ser que você precise saber o que os usuários andam aprontando, principalmente na fase de treinamento e implementação do projeto.
Idealizei uma tabela para armazenar diversas informações, como por exemplo, o nome do usuário, data e hora da ocorrência, nome do computador de origem e outros. Veja!
Elaborei uma função que pode ser utilizada em qualquer formulário ou relatório, visando este objetivo. Para isso, usamos basicamente, uma consulta ação de inclusão (INSERT INTO).
Faça o login aqui para ter acesso ao código.
Para capturar o nome do usuário que faz as alterações, temos as seguintes situações:
a) utilizar a função CurrentUser(), caso o aplicativo tenha proteção a nível de usuário (MDW),
b) usar o nome do usuário logado no Windows. Opção empregada no aplicativo exemplo:
CreateObject("Wscript.network").UserName
ou
Environ("username")
c) usar o nome do usuário armazenado em uma tabela do aplicativo (tblUsuários). Neste caso, usamos a variável pública que contém o nome do usuário logado. O aplicativo Maestro disponível neste site, faz uso desta opção.
login.usuario
Quanto ao nome do computador, capturamos através da função Environ("ComputerName"). Você encontra maiores detalhes sobre a função Environ, neste meu artigo.
Para controlar as inclusões e as alterações de um formulário, usamos o evento Antes de atualizar do formulário.
Faça o login aqui para ter acesso ao código.
Para controlar a exclusão, usamos o evento Ao excluir do formulário.
Private Sub Form_Delete(Cancel As Integer) '--------------------------- 'Auditar registro excluído '--------------------------- Call fncAuditar(Me.Name, 2, "Cliente " & Me!NomeCliente) End Sub
Clique aqui e baixe o arquivo exemplo.
Abra o formulário, faça as alterações nos registros e depois verifique a tabela tblAuditoria.
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Adquira o kit UsandoAccess e aprenda em alta velocidade
11 comentário(s) Avelino Sampaio 30/08/2023 04:57:08 Gilson, se a variável tem um escopo publico, vc poderá usá-la em qualquer código de qualquer módulo. Experimente: ... strSql = "INSERT INTO tblAuditoria (NomeUsuario, DataOperação, TipoOperação," strSql = strsql & "MaquinaOrigem, NomeFormulario, identificação) " strSql = strSql & "VALUES(""" & strUsuarioAtual & """,'" & Now & "','" & bytOperação strSql = strSql & "','" & Environ("computername") & "','" & strNomeForm & "',""" & strCampo & """);" ... Gilson Russo 28/08/2023 18:34:30 Boa noite! Mestre Avelino. Como faço para implementar na tblAuditoria o nome do usuario logado na aplicação. na aplicação existe um modulo controle acesso e tem uma var strUsuarioAtual onde fica gravado o nome do usuario. tentei fazer sozinho, mais nao consegui! Se puder me ajudar agradeço!! LEANDRO ARAUJO 14/06/2023 18:44:08 BOA NOITE AVELINO, Consegui colocar em meu banco de dados a auditoria, mas não grava as alterações e exclusões em um campo do tipo objeto OLE nem outro campo do tipo anexo. Como faço para resolver? Desde Já agradeço. Celso Gibelato 31/05/2023 13:01:50 Boa tarde Avelino,no formulário de clientes do Maestro,a inclusão do cliente é feita pelo frmNovoCliente,portanto na tblAuditoria,observei que grava como alteração e não como inclusão,uma vez que o frmClientes já foi alimentado,como faço para registrar a inclusão? No aguardo. Celso Gibelato 30/05/2023 18:56:44 Boa noite Avelino,repassei novamente todos os detalhes aqui da apresentação e mais o seu feedback que,chamou a atenção para a resposta da questão.Consegui,funcionou certinho.Valeu,Obrigado. Avelino Sampaio 30/05/2023 01:54:45 Celso, os dados do usuário, no Maestro, estão nas seguintes variáveis: login.id login.usuario Sucesso! Celso Gibelato 29/05/2023 21:45:00 Boa noite Avelino,usei essa função no Maestro como está o exemplo,funcionou legal,mas não cheguei num acordo em como capturar o usuário logado no aplicativo. Não consegui encontrar a sintaxe da instrução, você poderia ensinar? No aguardo obrigado Maurício Bruno 14/09/2022 11:12:46 Avelino, Boa Tarde, Você tem algum exemplo, que demonstra valor anterior e novo valor quando alteramos? Grato, Avelino Sampaio 03/02/2022 08:06:46 Gabriel, a função fncAuditar() tem que ficar em um módulo global. Assim, todos os formulários terão acesso a função. Sucesso! GabrielPN06 03/02/2022 07:40:03 Boa tarde mestre, em qual formulário e em qual evento seria inserida a primeira parte do código? Hebertti Sales 25/02/2021 09:55:37 Boa tarde ! a aplicação não está funcionando no office em ingles. você tem alguma alteração para tal ? |