MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Controle de alterações do Avelino

    Compartilhe

    leoavila7
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 125
    Registrado : 04/12/2011

    [Resolvido]Controle de alterações do Avelino

    Mensagem  leoavila7 em Dom 03 Jul 2016, 04:41

    Boa noite mestres!
    Copiei do site do Avelino um codigo de registro de açoes do usuario que permite auditar os usuarios. Ficou perfeito, mas um pequeno detalhe esta me quebrando a cabeça: preciso que o usuario registrado na tabela auditoria seja o usuario do aplicativo, e não o do computador conforme o codigo original. Segue abaixo o codigo extraido do site do amigo Avelino:

    Código:
    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$
    '----------------------------------------
    'Estrutura da cosulta INSERT
    '----------------------------------------
    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 & """);"
    '------------------------------------
    'Executando a consulta
    '------------------------------------
    CurrentDb.Execute strSql
    End Sub

    Pois então, o que eu gostaria que me ajudassem é com a questão que ele diz nesse trecho do artigo do site:
    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.

    Sei que alguns amigos ja conseguiram a façanha, mas ja procurei por todo o forum e nao achei nada especifico. Poderiam me ajudar com mais essa?
    Grande abraço e muito agradecido! Surprised

    FabioPaes
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2333
    Registrado : 14/08/2013

    Re: [Resolvido]Controle de alterações do Avelino

    Mensagem  FabioPaes em Dom 03 Jul 2016, 04:53

    Meu amigo, nesse mesmo aplicativo, salvo engano, tem o controle de acesso por usuaruio ( se nao tiver baixe o Maestro que tem). La no formulario Login, apos a confirmação das credenciais, o Sistema passa o Nome do Usuario e a ID para duas Variaveis Chamadas (login.ID e Login.Usuario), dessa forma, elas podem ser chamadas a qualquer momento no seu Aplicativo e retornara o Nome do Usuario Logado...

    Baseado nessa situação, onde vc tem e pode recuperar o Nome do Usuario Logado, basta alterar essa linha:
    strSql = strSql & "VALUES(""" & CreateObject("Wscript.network").UserName & """,'" & Now & "','" & bytOperação

    Para:

    strSql = strSql & "VALUES('" & Login.Usuario & "','" & Now & "','" & bytOperação


    Caso seu controle de acesso, esteja feito de outra forma, certamente vc colocou alguma forma de saber qual usuario esta logado certo? Entao basta colocar na parte em vermelho a Variavel, ou Campo...

    Caso nao consiga, nos fale como esta seu sistema, na parte de acesso...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    leoavila7
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 125
    Registrado : 04/12/2011

    Re: [Resolvido]Controle de alterações do Avelino

    Mensagem  leoavila7 em Dom 03 Jul 2016, 23:38

    Na verdade o modelo que o Avelino disponibilizou não tem a função baseada em usuario logado...mas sua ajuda foi muito valiosa e agradeço demais. Grande abraço parceiro!

      Data/hora atual: Sab 10 Dez 2016, 12:44