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


4 participantes

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

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    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 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 ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    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  Alvaro Teixeira 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    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 10/4/2019, 12:42

    Teixeira

    Eis o meu exemplo.

    Obrigado


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    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 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


    .................................................................................
    *** Só sei que nada sei ***
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    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  Alvaro Teixeira 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    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 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
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    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 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


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


    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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    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 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
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1076
    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 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


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


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

    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: 8/11/2024, 00:58