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


2 participantes

    Módulo não registra alterações na tabela

    jamesacdc
    jamesacdc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 155
    Registrado : 09/04/2012

    Módulo não registra alterações na tabela Empty Módulo não registra alterações na tabela

    Mensagem  jamesacdc 22/7/2013, 19:15

    olá.


    Tenho um módulo pra registrar as alterações dos usuários nos formulários, mas ele não registra alterações nas tabelas, por exemplo ao sair executar alguma alteração no estoque, ele não faz isso. Alguém sabe que posso fazer pra registrar esses dados?

    obs: no evento do formulário eu coloco

    Antes de atualizar: =logChange("A")

    Ao excluir: =logChange("E")

    Código:

    Function LogChange(strTipo As String)

        Dim db As Database, rslog As Recordset
        Dim frm As Form, i As Integer
        Dim strLog As String
     
        Set db = CurrentDb
        Set rslog = db.OpenRecordset("tbl_LogChange")
        Set frm = Screen.ActiveForm
       
        For i = 0 To frm.Controls.Count - 1
            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
                If strTipo = "E" 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
                Else
                    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
                    End If
                End If
            End If
           
         
        Next
       
        rslog.AddNew
        rslog("strNomeForm") = frm.Name
        rslog("strTipoLog") = strTipo
        rslog("mmolog") = strLog
        rslog("strUser") = CurrentUser
        rslog("dtLog") = Now
        rslog("Usuario") = getUsuarioAtual()
        On Error Resume Next
        rslog.Update
        rslog.Close
        db.Close

    End Function
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  Dilson 23/7/2013, 18:17

    No primeiro If está assim:
    strLog = frm.Controls(i).Name & "," & frm.Controls(i).OldValue & " -> " & frm.Controls(i).Value

    Tente assim:
    strLog = strLog & "Código do Produto = " & frm.Controls("CódigoDoProduto") & "," & frm.Controls(i).Name & ":" & frm.Controls(i).OldValue & " -> " & frm.Controls(i).Value

    Veja que terá que referenciar a chave primária envolvida nas alterações.

    Alimente o campo strUser com o valor da variável getUsuarioAtual()

    rslog.AddNew
    rslog("strNomeForm") = frm.Name
    rslog("strTipoLog") = strTipo
    rslog("mmolog") = strLog
    rslog("strUser") = getUsuarioAtual()
    rslog("dtLog") = Now
    On Error Resume Next
    rslog.Update
    rslog.Close
    db.Close
    jamesacdc
    jamesacdc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 155
    Registrado : 09/04/2012

    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  jamesacdc 23/7/2013, 18:39

    Ok, mas não funciona em todos relatórios, principalmente aqueles que tem um campo buscar no formulário. Dai não registra.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  Dilson 23/7/2013, 19:48

    Para relatórios não irá funcionar de fato.

    Este módulo só funciona para formulários e na fonte de registro não pode esquecer de colocar o nome da tabela a qual a chave primária pertence.

    A função dele é registrar as alterações feitas em qualquer um dos campos do formulário pelo usuário.

    Exemplo: se numa determinada textbox o usuário mudar um dado, digamos Roberto para Roberto Carlos o módulo registrará na tbl_LogChange que na chave primária tal o usuário tal modificou o dado da textbox de Roberto para Roberto Carlos.

    Analise.
    jamesacdc
    jamesacdc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 155
    Registrado : 09/04/2012

    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  jamesacdc 24/7/2013, 18:51

    Sim, mas na fonte de registro esta assim
    (baseada numa consulta)

    codigo=1

    que seria passada pelo campo busca, assim nao esta funcionando, só esta quando eu abro outro formulario que carrega todos registros das tabelas.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  Dilson 24/7/2013, 19:10

    Exato james,

    O controle baseia-se em alterações em tabelas. Usando consultas não sei lhe informar ao certo, até porque dependendo da consulta, não se pode alterar seus valores.

    Eu uso isto com tabelas e funciona. Ainda não experimentei o uso com consultas. Precisará explorar os recursos e constatar.
    jamesacdc
    jamesacdc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 155
    Registrado : 09/04/2012

    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  jamesacdc 24/7/2013, 19:14

    Ahhh sim... entendi,

    Bom, vou pesquisar aqui se conseguir a resposta retorno..
    vlw Dilson.

    Conteúdo patrocinado


    Módulo não registra alterações na tabela Empty Re: Módulo não registra alterações na tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 11:09