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


2 participantes

    Nomear legenda dos rótulos usando for next

    avatar
    pcdesignerce
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 14/02/2014

    Nomear legenda dos rótulos usando for next Empty Nomear legenda dos rótulos usando for next

    Mensagem  pcdesignerce 16/1/2016, 01:34

    Olá,
    Estou precisando nomear a legenda dos rótulos de uns checkbox, mas a variável rotulo não esta funfando.
    achei que era alguma forma de concatenar, mas também não consegui.

    segue código:
    Código:
    Private Sub btcont_Click()

    Dim ContarCheckBox As Integer
    Dim x As Integer
    Dim rotulo As Label

    ContarCheckBox = DCount("[IdServico]", "tabServicos")

    For x = 1 To ContarCheckBox
        
        'Nesta linha retorna o esperado: lab1
        rotulo = "lab" & x
        
        'A partir desta linha já causa um erro de compilação: Método ou membro de dados não encontrado
        If Me.rotulo.Caption = "" Then

        Me.rotulo.Caption = DLookup("[txtServico]", "tabServicos", "[IdServico]=" & x)
        
        End If
        
    Next

    End Sub

    Vou utilizar esta instrução no load do form.
    Se tiver como corrigir esta instrução ou uma outra forma que faça a mesma tarefa
    Desde já agradeço.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Nomear legenda dos rótulos usando for next Empty Re: Nomear legenda dos rótulos usando for next

    Mensagem  Noobezinho 16/1/2016, 18:43

    Paulo

    Veja se isso te ajuda:


    Dim ctl As Control,i As Integer,frm as form
    Set frm = Me
    i=0
    For Each ctl In frm.Controls
      Select Case ctl.ControlType
         Case acLabel ' É rótulo
              i= i+1
                 If ctl.Caption = "lab" & i
              End If
      End Select
    Next


    Como pode ver, o código faz um loop entre os controles do formulário.
    Quando encontra um rótulo, nomeia-o com incremento de i que é só
    incrementado quando encontra um rótulo.

    Espero que ajude.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    pcdesignerce
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 24
    Registrado : 14/02/2014

    Nomear legenda dos rótulos usando for next Empty Re: Nomear legenda dos rótulos usando for next

    Mensagem  pcdesignerce 17/1/2016, 03:26

    Funcionou perfeitamente,
    muito obrigado Noobezinho.

    Ai galera quem precisar de algo parecido faz só a correção:
    Colca o Then no if: If ctl.Name= "lab" & i  Then
    Coloca a instrução a ser executada caso a condição seja verdadeira conforme sua necessidade.
    No meu caso foi; ctl.Caption = DLookup("[txtServico]", "tabServicos", "[IdServico]=" & i)
    Utilizei a função DLookup nomear os rótulos conforme registro da tabServicos.
    Outro detalhe como o loop percorre todos os controles e faz o incremento para todos os rótulos
    foi preciso acrescentar mais uma condição if para entra apenas no rótulos sem legendas

    Dim ctl As Control, i As Integer, frm As Form
    Set frm = Me
    i = 0
    For Each ctl In frm.Controls
    Select Case ctl.ControlType

    Case acLabel ' É rótulo

    If ctl.Caption = "" Then

    i = i + 1

    If ctl.Name = "lab" & i Then
    ctl.Caption = DLookup("[txtServico]", "tabServicos", "[IdServico]=" & i)
    End If

    End If

    End Select
    Next
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    Nomear legenda dos rótulos usando for next Empty Re: Nomear legenda dos rótulos usando for next

    Mensagem  Noobezinho 17/1/2016, 09:28

    Ótimo Paulo

    Na realidade aquele "If e End If" foram  de "alegre". Razz

    O correto seria apenas:


    Select Case ctl.ControlType
        Case acLabel ' É rótulo

             i= i+1
             ctl.Caption = "lab" & i
             
    End Select


    Mas como resolveu, que bom que pude ajudar.

    Só falta colocar o resolvido no título do tópico.

    Edite uma mensagem tua e coloque o resolvido.
    Veja como na minha assinatura.

    Valeu o retorno!

    Boa sorte!


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    Nomear legenda dos rótulos usando for next Empty Re: Nomear legenda dos rótulos usando for next

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 10:48