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

    Tratar Vários Forms no Mod Log

    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Tratar Vários Forms no Mod Log Empty Tratar Vários Forms no Mod Log

    Mensagem  MarceloSilva 20/5/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
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    Tratar Vários Forms no Mod Log Empty Re: Tratar Vários Forms no Mod Log

    Mensagem  JPaulo 20/5/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.



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Tratar Vários Forms no Mod Log Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Tratar Vários Forms no Mod Log Folder_announce_new 102 Códigos VBA Gratuitos...
    Tratar Vários Forms no Mod Log Folder_announce_new Instruções SQL como utilizar...
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Tratar Vários Forms no Mod Log Empty Re: Tratar Vários Forms no Mod Log

    Mensagem  MarceloSilva 21/6/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.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Tratar Vários Forms no Mod Log Empty Tratar Vários Forms no Mod Log - Download

    Mensagem  vileman 12/5/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

    Conteúdo patrocinado


    Tratar Vários Forms no Mod Log Empty Re: Tratar Vários Forms no Mod Log

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 01:04