MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Detetar a alteração de um campo no clique do botão

    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4223
    Registrado : 06/11/2009

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Assis em Qua 10 Abr 2019 - 10:50

    Boa dia Amigos

    Estou a tentar detetar se um campo foi alterado ao clicar no Comando12.

    E o que está a acontecer é o seguinte.

    Se o campo "txtContribuinte", estiver nulo e alterar para outro valor, a deteção de alterado não acontece.

    Se o campo "txtContribuinte", Não estiver nulo e alterar para outro valor, a deteção de alterado é detetado

    Alguém ajuda para detetar nas duas situações


    Private Sub Comando12_Click()

    If Me.txtContribuinte <> Me.txtContribuinte.OldValue Then

     If MsgBox("O Contribuinte do Cliente " & Me.Nome & " Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then

     Me.Undo  ' Desfaz a alteração

    End If

    End sub

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6897
    Registrado : 15/03/2013

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  ahteixeira em Qua 10 Abr 2019 - 11:07

    Olá Assis,

    Seguindo o seu código, teste assim:

    Código:
    Private Sub Comando12_Click()
        If Len(Me.txtContribuinte.OldValue & "") <> 0 Then
            If Me.txtContribuinte <> Me.txtContribuinte.OldValue Then
                If MsgBox("O Contribuinte do Cliente " & Me.nome & " Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then
                    Me.Undo  ' Desfaz a alteração
                End If
            End If
        End If
    End Sub

    Nota, indentação nada e nem compilou se nao verificava que no codigo faltava um End If.

    Abraço
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4223
    Registrado : 06/11/2009

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Assis em Qua 10 Abr 2019 - 11:42

    Teixeira

    Eis o meu exemplo.

    Obrigado
    Anexos
    [Resolvido]Detetar a alteração  de um campo no clique do botão AttachmentExemplo Assis.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (129 Kb) Baixado 7 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  JPaulo em Qua 10 Abr 2019 - 13:44

    Código:
    If IsNull(Me.txtContribuinte.OldValue) <> Me.txtContribuinte Or Me.txtContribuinte.OldValue <> Me.txtContribuinte Then
      If MsgBox("O Contribuinte do Cliente " & Me.Nome & " " & vbNewLine & "Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then

      Me.Undo  ' Desfaz a alteração.
    Exit Sub
    End If


    .................................................................................
    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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Instruções SQL como utilizar...
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4223
    Registrado : 06/11/2009

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Assis em Qua 10 Abr 2019 - 16:32

    Boa tarde JPaulo

    Testou ?

    É que com a sua dica, só o facto de abrir o formulário e fechar sem alterar nada, informa que foram feitas alterações.


    .................................................................................
    *** Só sei que nada sei ***
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  JPaulo em Qua 10 Abr 2019 - 16:46

    Olá;

    Não testei não, vou tentar testar ainda hoje.


    .................................................................................
    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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  JPaulo em Qua 10 Abr 2019 - 17:01

    No inicio do VBA do form;

    Código:
    Dim intChecka%

    No procedimento ao alterar do campo;

    Código:
    Private Sub txtContribuinte_Change()
    'se digitar algo, coloca 1 na variavel
        intChecka = 1
    End Sub

    No seu botão de Sair;

    Código:
    Private Sub Comando12_Click()

    If intChecka = 1 Then
       
        If Me.txtContribuinte <> IsNull(Me.txtContribuinte.OldValue) = True Or Me.txtContribuinte <> Me.txtContribuinte.OldValue Then
          If MsgBox("O Contribuinte do Cliente " & Me.Nome & " " & vbNewLine & "Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then
       
              Me.Undo  ' Desfaz a alteração.
            Exit Sub
            Else
                If DCount("Contribuinte", "Clientes", "Contribuinte = '" & Me.txtContribuinte & "'") > 0 Then
                  MsgBox "O Nº de Contribuinte " & txtContribuinte & " " & vbNewLine & "Já Existe na Tabela de Clientes." & vbNewLine & "Não Será Alterado.", vbInformation, "Aviso"
                  Me.Undo  ' Desfaz a alteração.
                  Me.Foco.SetFocus
                  Exit Sub
                End If
          End If
        End If
    Else
        If Me.txtContribuinte <> Me.txtContribuinte.OldValue Then
          If MsgBox("O Contribuinte do Cliente " & Me.Nome & " " & vbNewLine & "Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then
            Me.Undo  ' Desfaz a alteração.
            Exit Sub
            Else
                If DCount("Contribuinte", "Clientes", "Contribuinte = '" & Me.txtContribuinte & "'") > 0 Then
                  MsgBox "O Nº de Contribuinte " & txtContribuinte & " " & vbNewLine & "Já Existe na Tabela de Clientes." & vbNewLine & "Não Será Alterado.", vbInformation, "Aviso"
                  Me.Undo  ' Desfaz a alteração.
                  Me.Foco.SetFocus
                  Exit Sub
                End If
            End If
        End If
    End If

    intChecka = 0

    DoCmd.Close acForm, "TabClientes"
    End Sub


    .................................................................................
    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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Instruções SQL como utilizar...
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4223
    Registrado : 06/11/2009

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Assis em Qua 10 Abr 2019 - 19:31

    Boa noite JPaulo

    Só tem um senão ……

    Veja a imagem e teste por favor no exemplo que postei.

    [Resolvido]Detetar a alteração  de um campo no clique do botão Sem_tz94


    Obrigado
    Anexos
    [Resolvido]Detetar a alteração  de um campo no clique do botão AttachmentExemplo Assis.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (162 Kb) Baixado 4 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6897
    Registrado : 15/03/2013

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  ahteixeira em Qua 10 Abr 2019 - 21:58

    Olá a todos,

    Assis, não testei nada (estou no tablet), mas pelo que descreve, tente colocar antes dos três "exit sub" a instrução:

    intChecka = 0

    E teste

    Abraço
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  JPaulo em Qui 11 Abr 2019 - 9:15

    Assis, existem coisas complicadas, mas também existem coisas simples, é só nós não complicar-mos o simples;

    Código:
    Private Sub Comando12_Click()

    If intChecka = 1 Then
       
        If Me.txtContribuinte <> IsNull(Me.txtContribuinte.OldValue) = True Or Me.txtContribuinte <> Me.txtContribuinte.OldValue Then
          If MsgBox("O Contribuinte do Cliente " & Me.Nome & " " & vbNewLine & "Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then
       
              Me.Undo  ' Desfaz a alteração.
            intChecka = 0
            DoCmd.Close acForm, "TabClientes"
            Else
                If DCount("Contribuinte", "Clientes", "Contribuinte = '" & Me.txtContribuinte & "'") > 0 Then
                  MsgBox "O Nº de Contribuinte " & txtContribuinte & " " & vbNewLine & "Já Existe na Tabela de Clientes." & vbNewLine & "Não Será Alterado.", vbInformation, "Aviso"
                  Me.Undo  ' Desfaz a alteração.
                  Me.Foco.SetFocus
                  intChecka = 0
                    DoCmd.Close acForm, "TabClientes"
                End If
          End If
        End If
    Else
        If Me.txtContribuinte <> Me.txtContribuinte.OldValue Then
          If MsgBox("O Contribuinte do Cliente " & Me.Nome & " " & vbNewLine & "Foi Alterado Confirma Alteração ?", vbYesNo + vbQuestion, "Aviso") = vbNo Then
            Me.Undo  ' Desfaz a alteração.
            intChecka = 0
            DoCmd.Close acForm, "TabClientes"
            Else
                If DCount("Contribuinte", "Clientes", "Contribuinte = '" & Me.txtContribuinte & "'") > 0 Then
                  MsgBox "O Nº de Contribuinte " & txtContribuinte & " " & vbNewLine & "Já Existe na Tabela de Clientes." & vbNewLine & "Não Será Alterado.", vbInformation, "Aviso"
                  Me.Undo  ' Desfaz a alteração.
                  Me.Foco.SetFocus
                  intChecka = 0
                    DoCmd.Close acForm, "TabClientes"
                End If
            End If
        End If
    End If

    intChecka = 0
    DoCmd.Close acForm, "TabClientes"
    End Sub


    .................................................................................
    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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Instruções SQL como utilizar...
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Celso Roberto em Qui 11 Abr 2019 - 14:53

    Olá a todos...

    Minha sugestão...

    No inicio do Modulo vba acrescente a variável:

    Código:
    Option Compare Database
    Dim Contr As String

    No evento ao carregar o form acrescente este no inicio do código existente:

    Código:
    On Error Resume Next
    Contr = Me.txtContribuinte

    No botão Sair:

    Altere este:
    Código:
    'If Me.txtContribuinte.OldValue <> Me.txtContribuinte Then


    Por este:

    Código:
    If Contr <> Me.txtContribuinte Then

    Aguardamos

    Abraços


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4223
    Registrado : 06/11/2009

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Assis em Qui 11 Abr 2019 - 17:39

    Obrigado JPaulo

    Matou o gato …… como sempre.


    Celso Roberto, vou testar e depois retorno Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  JPaulo em Sex 12 Abr 2019 - 8:34

    Fico feliz.


    .................................................................................
    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

    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Detetar a alteração  de um campo no clique do botão Folder_announce_new Instruções SQL como utilizar...
    Celso Roberto
    Celso Roberto
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1063
    Registrado : 01/03/2014

    [Resolvido]Detetar a alteração  de um campo no clique do botão Empty Re: [Resolvido]Detetar a alteração de um campo no clique do botão

    Mensagem  Celso Roberto em Seg 15 Abr 2019 - 16:27

    Olá...

    Silvio, eu não tinha testado o código do JPaulo, mas fazendo isso verifiquei que a diferença é mínima.
    A única diferença é que no do Jpaulo ele da a mensagem por qualquer alteração, mesmo se digitar o mesmo que já estava para o cliente e no meu só da a mensagem se for diferente do existente.

    Mas isto é apenas detalhes para cada necessidade.

    Abraços para ti e ao nosso mestre JPaulo


    .................................................................................


    Você fica satisfeito ao ter sua dúvida solucionada?.
    Quem te ajuda também fica quando você da o tópico por "Resolvido".
    Veja como neste Link: https://www.maximoaccess.com/t860-resolucao-de-topicos



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....

      Data/hora atual: Seg 28 Set 2020 - 13:37