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

    Tratar Vários Forms no Mod Log

    Compartilhe

    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    Tratar Vários Forms no Mod Log

    Mensagem  MarceloSilva em Seg 20 Maio 2013, 20:35

    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?


    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: Tratar Vários Forms no Mod Log

    Mensagem  JPaulo em Seg 20 Maio 2013, 22:22

    Utilize uma variavel Publica para isso, já falámos imensas vezes sobre o assunto.

    O proprio formulario ativo enviará o ID para essa variavel.



    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    MarceloSilva
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 154
    Registrado : 28/02/2011

    Re: Tratar Vários Forms no Mod Log

    Mensagem  MarceloSilva em Sex 21 Jun 2013, 15:32

    Grande JPaulo

    Não encontrar uma solução para este problema no fórum......
    pelo menos não tive sucesso em meus testes.....

    at.

    vileman
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 355
    Registrado : 25/05/2011

    Tratar Vários Forms no Mod Log - Download

    Mensagem  vileman em Seg 12 Maio 2014, 02:54

    Boa noite, MarceloSilva

    Tem como disponibilizar esse seu arquivo para download para estudo ?
    Uso a versão Access 2003.

    Conseguiu resolver essa sua questão que ficou sem resposta em 21/06/2013?

    Como utilizar uma variável pública, conforme orientação do JPaulo? Não tenho experiencias no VB.

    Obrigado

      Data/hora atual: Dom 04 Dez 2016, 14:13