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]Registo Historico de Alterações

    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 111
    Registrado : 08/12/2010

    [Resolvido]Registo Historico de Alterações Empty [Resolvido]Registo Historico de Alterações

    Mensagem  bacano Sab 26 Out 2013 - 6:30

    Bom dia
    Companheiros a algum tempo atrás vi este código e agora queria pólo em pratica, mas tem um erro que é o seguinte
    Quando vamos alterar algum campo que esta em branco e colocamos algum dado, o codigo não regista essa ocorrência

    Exemplo: NomeRua: esta em branco Altero para: Rua da paz --> Não Regista
    NomeRua Rua da paz Altero para Rua xxx --> Regista

    Alguem ja resolveu teve este problema tambem
    Desde ja obrigado
    ----------------------------------------------------------------------------------------------------

    Private Sub Command8_Click()
    Dim strChekaDiferente As Boolean
    Dim strSQL As String
    Dim ctl As Control
    Dim strUser As String
    'By JPaulo ® Maximo Access
    'http://maximoaccess.forumeiros.com/
    '2010-06-11
    'Importante: Todos os botões de navegação devem conter a
    'chamada de toda esta instrução.
    'O form não deve ter o botão fechar ativo, deve colocar um botão para esse efeito e chamar a instrução.

    On Error Resume Next
    strChekaDiferente = False
    strUser = GetUserName_TSB
    If Me.NewRecord Then 'verifica se é um novo registro, se for registra com novo
    strChekaDiferente = True

    strSQL = "INSERT INTO tblLog (Utilizador, LogData, NomeForm, NomeCampo, ValorAntigo, ValorAtual, Status) Values('" & strUser & "', Now(),'" & Me.Form.Name & "','" & Me.MNome & "','" & Me.Idade & "','" & Me.Morada & "','" & "Novo Registro" & "')"
    DoCmd.RunSQL strSQL

    Else
    ' se não for um novo registro, coloca a variável de chekar alterações como False
    strChekaDiferente = False

    For Each ctl In Me.Controls
    ' Percorre todos os tipos de controles
    Select Case ctl.ControlType
    Case acTextBox, acComboBox, acListBox, acOptionGroup, acCheckBox
    If ctl.Value <> ctl.OldValue Or (IsNull(ctl.Value) Or ctl.Value = "") Then
    'se algum valor foi alterado ou deletado, coloca a variável de chekar alterações como True
    strChekaDiferente = True
    'e registra na tabela do Log
    DoCmd.SetWarnings False
    strSQL = "INSERT INTO tblLog (Utilizador, LogData, NomeForm, NomeCampo, ValorAntigo, ValorAtual, Status) Values('" & strUser & "', Now(),'" & Me.Form.Name & "','" & ctl.Name & "','" & ctl.OldValue & "','" & ctl.Value & "','" & "Registro Alterado" & "')"
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True
    'termina e volta a colocar a variável de chekar alterações como False
    strChekaDiferente = False
    Else
    Cancel = True
    End If

    End Select
    Next ctl
    End If
    'Salva tudo o que foi feito
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    End Sub
    avatar
    misaelsp
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 20/02/2013

    [Resolvido]Registo Historico de Alterações Empty Re: [Resolvido]Registo Historico de Alterações

    Mensagem  misaelsp Sab 26 Out 2013 - 17:42

    Olha, eu to desenvolvendo um módulo para registro de todos os dados alterados no bd.

    Criei um modulo, que pega o nome do form aberto, o nome do campo a ser alterado a informação, a informação alterada e a informação antiga, e registra em uma tabela que chamo de log.

    Coloco em cada campo o evento ao alterar, executando o módulo.

    É uma dica para você, se você for usar do jeito que te falei fica muito mais facil, mais vai precisar estudar um pouquinho.


    .................................................................................
    É fazendo que se aprende a fazer aquilo que se deve aprender a fazer Very Happy
    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 111
    Registrado : 08/12/2010

    [Resolvido]Registo Historico de Alterações Empty Re: [Resolvido]Registo Historico de Alterações

    Mensagem  bacano Sab 26 Out 2013 - 19:02

    misaelsp Obrigado

    Este codigo esta a funcionar em parte, porque ele so nao regista quando o campo esta em branco e se colocamos algum dado

    Vou dar um exemplo

    Campo nome: = "Carlos " Apaga-se o "Carlos " faz Registo
    " " " = " " altero para "Maria " Não faz Registo

    Como ve é so nesta situação, ando as voltas e não consigo descobrir o erro

    Abraço
    avatar
    Ricardo84
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 78
    Registrado : 18/01/2014

    [Resolvido]Registo Historico de Alterações Empty Re: [Resolvido]Registo Historico de Alterações

    Mensagem  Ricardo84 Dom 12 Jun 2022 - 19:28

    Boa tarde,

    Experimente incluir a seguinte alteração (a negrito):

    If ctl.value <> ctl.OldValue Or (IsNull(ctl.value) Or ctl.value = "") Or (IsNull(ctl.OldValue) Or ctl.OldValue = "")
    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 111
    Registrado : 08/12/2010

    [Resolvido]Registo Historico de Alterações Empty Re: [Resolvido]Registo Historico de Alterações

    Mensagem  bacano Qua 15 Jun 2022 - 9:24

    Ricardo, muito obrigado

      Data/hora atual: Dom 3 Jul 2022 - 10:12