MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Auditoria simples

    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Auditoria simples Empty Auditoria simples

    Mensagem  Daluque 4/5/2012, 13:10

    Bom Dia.



    Gostaria da ajuda dos amigos para implantar uma auditoria simples nas adições e alterações de registros do meu BD.

    Fiz alguns teste com exemplos disponíveis localizados mas achei muito complexos e não consegui implantar de acordo com o minha necessidade.

    Pensei em implantar um Login simples só com o nome (o povo aqui é muito ruim com senhas) e auditar somente esse nome, data, tabela (adicionada/alterada) e o campo ID (adicionado/alterado).



    Se alguém puder dar uma força...
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  criquio 4/5/2012, 14:04

    Você pode comparar o novo dado do campo com o dado gravado na tabela. Se for diferente, altere a tabela de auditoria da forma que preferir.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  Daluque 5/5/2012, 02:31

    Criquio, desculpe mas voce poderia ser mais didático. ?

    obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  criquio 5/5/2012, 12:59

    Uma forma de se fazer algo parecido:

    1 - crie uma tabela de nome tblAuditoria com os campos Código, NomeForm, NomeTabela, NomeCampo, ValorAntigo, ValorNovo, DataAlteração, HoraAlteração, NomeUsuário e NomeComputador.

    2 - No escopo do formulário, ou seja, fora de qualquer evento do formulário ou de controles, isso é, lá em cima, no módulo, depois da linha Option Compare Database, digite a linha Option Explicit, caso ainda não tenha. E depois de Option Explicit, declare uma variável:

    Código:
    Dim vAntigo As String
    3 - No evento "Ao receber" foco dos campos, coloque:

    Código:
    vAntigo = Me.ActiveControl
    4 - No evento "Ao perder foco" coloque:

    Código:
    If Me.ActiveControl <> ValorAntigo Then
        CurrentDb.Execute "INSERT INTO tblAuditoria(NomeForm, NomeTabela, NomeCampo, ValorAntigo, ValorNovo, DataAlteração, HoraAlteração, NomeUsuário,NomeComputador) VALUES('" & Me.Name & "', '" & Me.RecordSource & "', '" & Me.ActiveControl.Name & "', '" & vAntigo & "', '" & Me.ActiveControl & "', '" & Date & "', '" & Time & "', '" & Environ("UserName") & "', '" & Environ("ComputerName") & "')"
    End If
    É mais ou menos isso. Adaptando deve dar certo.

    Observe que não foi colocado nome de formulário, nem de campos e nem da tabela vinculada. Utilizamos Me.Name para referenciar o nome do formulário, Me.RecordSource para referenciar a tabela vinculada ao formulário, Me.ActiveControl.Name para referenciar o nome do campo que tem o foco e Me.ActiveControl para referenciar o valor atual do campo que tem o foco. Dessa forma, pode usar o mesmo código em todos os formulários e para todos os campos sem precisar alterar nada, apenas no famoso Copiar e Colar.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Daluque
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 218
    Registrado : 06/03/2012

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  Daluque 6/5/2012, 22:15

    OK. Criquio.
    Problema resolvido.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  criquio 7/5/2012, 00:03

    Grato pelo retorno. O fórum agradece.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    SAPMM
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 369
    Registrado : 07/08/2011

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  SAPMM 27/5/2012, 00:19

    Criquio,

    Estou adapatando sua instrução do tópico:
    http://maximoaccess.forumeiros.com/t7444-resolvidoauditoria-simples?highlight=AUDITORIA

    Para um aplicativo meu, porém o campo que utilizo para receber e perder foco é uma caixa de combinação, porém quando tento inserir ou modificar o conteudo o access está dando erro em tempo de execução, dizendo que o campo não pode ser null. na compilação do código o erro de campo não poder ser null, ocorre na linha vAntigo = Me.ActiveControl

    Você poderia me auxiliar?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  criquio 27/5/2012, 00:35

    Donizeth, sua combo possui mais de uma coluna? Tente colocar Me.ActiveControl.Value ou Me.NomeDaCombo.Column(?) passando o número correto da coluna no lugar do ?. Tambem precisa ter certeza de que o novo valor esteja presente na combo caso ela esteja configurando para só aceitar valores da lista.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    SAPMM
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 369
    Registrado : 07/08/2011

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  SAPMM 27/5/2012, 02:11

    Criquio,

    Minha combo possui apenas uma coluna e limita a uma lista, porém utilizei tanto Me.ActiveControl.Value ou Me.NomeDaCombo.Column(1);

    Porém continua criticando valor null.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  criquio 27/5/2012, 12:15

    Se ela só tem uma coluna, o número dessa coluna é 0 e não 1.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    SAPMM
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 369
    Registrado : 07/08/2011

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  SAPMM 27/5/2012, 13:41

    Sim, mas mesmo com o "0" na coluna continua com o erro de null. Esse campo que utilizo para receber e perder foco é uma caixa combo, porém quando um registro é criado ela fica com valor branco, pois quando o usuário vai mudar o status que ele vai de branco ou nulo para uma data opções da lista, que no caso pode ser nulo ou branco ou "sim" e vice-versa nas mudanças de status modificações.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  criquio 27/5/2012, 14:04

    Não sei exatamente o que está tentando fazer, mas talvez fosse o caso de mudar para o evento "Após atualizar" e tambem condicionar a disparar o evento se o campo não for nulo:

    Código:
    If Not IsNull(Me.NomeDaCombo.Value) Then

        ...

    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    SAPMM
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 369
    Registrado : 07/08/2011

    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  SAPMM 27/5/2012, 15:04

    Criquio,

    Estou tentando gravar auditoria (log modificações) em um combo com limitação de lista e com uma coluna, onde o registro é gerado com o valor nulo na combo, pois na combo tenho as opções "Branco ou vazio" e "SIM", sendo que o usuário pode alterar o campo para opção "SIM" e depois voltar para "Vazio ou nulo", deste modo tentei adaptar o código para:

    Private Sub CANCELADOCADASTRO_AfterUpdate()
    If Not IsNull(Me.CANCELADOCADASTRO.Value) Then
    vAntigo = Me.CANCELADOCADASTRO.Column(0)

    End If

    End Sub


    Private Sub CANCELADOCADASTRO_LostFocus()

    If Me.CANCELADOCADASTRO.Column(0) <> vAntigo Then


    CurrentDb.Execute "INSERT INTO tblAuditoria(nNUMERADOR,nEXTRATO,NomeForm, NomeTabela, NomeCampo, ValorAntigo, ValorNovo, DataAlteração, HoraAlteração, NomeUsuário,NomeComputador) VALUES('" & Me.NUMERADOR & "','" & Me.NUMEROEXTRATO & "','" & Me.Name & "', '" & Me.RecordSource & "', '" & Me.CANCELADOCADASTRO & "', '" & vAntigo & "', '" & Me.CANCELADOCADASTRO.Column(0) & "', '" & Date & "', '" & Time & "', '" & Environ("UserName") & "', '" & Environ("ComputerName") & "')"
    End If

    End Sub

    Porém não estou conseguindo atigir meu objetivo. Existe uma solução, ou a melhor seria eu criar a combo com as opções "SIM" e "NÂO" e colocar como valor padrão "Não" para todo registro ser criado com a opção "Não" e daí para frente controlar todas as modificações.

    Conteúdo patrocinado


    [Resolvido]Auditoria simples Empty Re: [Resolvido]Auditoria simples

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 02:24