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


    [Resolvido]Loop pela Seccion

    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Loop pela Seccion Empty Loop pela Seccion

    Mensagem  Jr.Wano 10/4/2012, 10:49

    Uso uma função para fazer um loop pelos controles TextBox do form, e quando os controles estiverem na secção Detalhe, executa a ação:

    Public Function XXX(strCampo As String) As String
    Dim ctlTextbox As Control
    For Each ctlTextbox In Screen.ActiveForm.Form.Controls
    If ctlTextbox.Section = acDetail _
    And ctlTextbox.ControlType = acTextBox Then 'Se for Secção Detalhe e CxTexto
    If ctlTextbox.Name = strCampo Then ' Se for igual a strCampo
    MsgBox ctlTextbox.Name & " sim"
    Else ' Se for diferente de strCampo
    MsgBox ctlTextbox.Name & " não"
    End If
    End If
    Next ctlTextbox

    Gostaria de melhorar esta função, executando primeiro um loop pelas secções, e quando a Secção for acDetail (detalhes), executar um segundo loop pelos controles desta secção, executando a ação.

    Na verdade, o que preciso é: "Como" fazer primeiro um loop pelas secções do form.???

    Agradeço de antemão por qualquer ajuda.
    avatar
    Convidad
    Convidado


    [Resolvido]Loop pela Seccion Empty Re: [Resolvido]Loop pela Seccion

    Mensagem  Convidad 10/4/2012, 11:41

    percorre as 3 secções uma de cada vez

    1º cabeçalho
    2º detalhe
    3º rodapé

    Código:

    Public Function XXX(strCampo As String) As String
    Dim ctlTextbox As Control

        For Each ctlTextbox In Screen.ActiveForm.Form.Section(acHeader).Controls
            If (ctlTextbox.ControlType = acTextBox) Then  'Se for Secção Cabeçalho e CxTexto
            If (ctlTextbox.Name = strCampo) Then ' Se for igual a strCampo
            MsgBox ctlTextbox.Name & " sim"
                Else ' Se for diferente de strCampo
            MsgBox ctlTextbox.Name & " não"
            End If
        End If
    Next ctlTextbox

        For Each ctlTextbox In Screen.ActiveForm.Form.Section(acDetail).Controls
            If (ctlTextbox.ControlType = acTextBox) Then  'Se for Secção Detalhe e CxTexto
            If (ctlTextbox.Name = strCampo) Then ' Se for igual a strCampo
            MsgBox ctlTextbox.Name & " sim"
                Else ' Se for diferente de strCampo
            MsgBox ctlTextbox.Name & " não"
            End If
        End If
    Next ctlTextbox

        For Each ctlTextbox In Screen.ActiveForm.Form.Section(acFooter).Controls
            If (ctlTextbox.ControlType = acTextBox) Then  'Se for Secção rodapé e CxTexto
            If (ctlTextbox.Name = strCampo) Then ' Se for igual a strCampo
            MsgBox ctlTextbox.Name & " sim"
                Else ' Se for diferente de strCampo
            MsgBox ctlTextbox.Name & " não"
            End If
        End If
    Next ctlTextbox
    End Function
    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Loop pela Seccion Empty Re: [Resolvido]Loop pela Seccion

    Mensagem  Jr.Wano 10/4/2012, 13:46

    Ricado,

    Exatamente o que eu precisava,

    Agradeço muito pela ajuda.

    Abraços

    Conteúdo patrocinado


    [Resolvido]Loop pela Seccion Empty Re: [Resolvido]Loop pela Seccion

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/5/2024, 19:37