MaximoAccess

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

Obrigado

Administração do MaximoAccess

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 : 3852
    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 10/4/2019, 11: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 : 6066
    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 10/4/2019, 12: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 : 3852
    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 10/4/2019, 12: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 6 vez(es)


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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10558
    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 10/4/2019, 14: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 : 3852
    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 10/4/2019, 17: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 : 10558
    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 10/4/2019, 17: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 : 10558
    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 10/4/2019, 18: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 : 3852
    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 10/4/2019, 20: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 : 6066
    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 10/4/2019, 22: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 : 10558
    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 11/4/2019, 10: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
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 880
    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 11/4/2019, 15: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


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    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 : 3852
    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 11/4/2019, 18: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 : 10558
    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 12/4/2019, 09: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
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 880
    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 15/4/2019, 17: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


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



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

    Conteúdo patrocinado

    [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  Conteúdo patrocinado


      Data/hora atual: 27/6/2019, 09:44