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]Procedimento para todas as txtBox de um formulário

    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Procedimento para todas as txtBox de um formulário Empty [Resolvido]Procedimento para todas as txtBox de um formulário

    Mensagem  zcarloslopes em 18/2/2020, 10:03

    Bom dia!

    Venho mais uma vez pedir a vossa ajuda.

    Preciso de ao clicar em qualquer controlo num formulário, caso click numa txtBox o código execute.

    Algo do tipo:
    Código:
    Sub Form_ClickQualquerControlo()

    Dim ctl As Control

    For Each ctl In Forms("frm_teste").Detail.Controls
        If ctl.ControlType = acTextBox Then

           corre código

        End If
    Next ctl
    End Sub
    Obrigado


    Última edição por zcarloslopes em 19/2/2020, 08:47, editado 1 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1013
    Registrado : 13/12/2016

    [Resolvido]Procedimento para todas as txtBox de um formulário Empty Re: [Resolvido]Procedimento para todas as txtBox de um formulário

    Mensagem  Alexandre Fim em 18/2/2020, 12:08

    Olá Carlos,

    Utilize o evento Gotfocus (Evento "ao Receber foco")

    Ex.:

    Private Sub SeuCampo_GotFocus()
        Call Form_ClickQualquerControlo()
    End Sub


    Espero ter ajudado.

    boa sorte


    .................................................................................
    "Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende." (Leonardo da Vinci)
    "O impossível existe até que alguém duvide dele e prove o contrário." (Albert Einstein)
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Procedimento para todas as txtBox de um formulário Empty Re: [Resolvido]Procedimento para todas as txtBox de um formulário

    Mensagem  zcarloslopes em 18/2/2020, 12:25

    Obrigado Alexandre pelo retorno,

    Assim funciona, o problema é que terei que colocar o código em cada campo, exactamente o que eu queria evitar.

    Imagine um form com 50 txtBox, terei que colocar o código em cada uma.

    O que eu procuro é uma forma de fazer isso com um procedimento só.

    Obrigado
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3141
    Registrado : 21/04/2011

    [Resolvido]Procedimento para todas as txtBox de um formulário Empty Re: [Resolvido]Procedimento para todas as txtBox de um formulário

    Mensagem  Marcelo David em 18/2/2020, 13:00

    Bom dia,
    qual erro ocorre?
    E qual código acontece o erro?


    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Procedimento para todas as txtBox de um formulário Empty Re: [Resolvido]Procedimento para todas as txtBox de um formulário

    Mensagem  zcarloslopes em 19/2/2020, 08:40

    Bom dia!

    Encontrei uma solução, salvo melhor opinião deixo aqui o resultado da minha pesquisa para quem precisar.

    Num Módulo:
    Código:
    Public Function pbFindClickedControl()
        
    On Error GoTo errHere


    MsgBox "Consegui!"
    'Restante Código

    ExitHere:
        Exit Function

    errHere:
        MsgBox "Error " & err & " - " & err.Description
        Resume ExitHere

    End Function
    No Evento Ao Abrir do Formulário:
    Código:
    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    Dim ctl As Control
        
    For Each ctl In Me.Controls
        With ctl
            If .ControlType = acTextBox Or .ControlType = acComboBox Then  'acCommandButton para Botão
                '.OnClick = "=pbFindClickedControl()" '--> Não Finciona com ComboBox
                .OnGotFocus = "=pbFindClickedControl()"
            End If
        End With
    Next ctl

    End Sub

    Obrigado

      Data/hora atual: 5/8/2020, 20:02