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]Alterar varias Labels no Sistema

    Compartilhe

    Atrefh
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 09/02/2017

    [Resolvido]Alterar varias Labels no Sistema

    Mensagem  Atrefh em Sex 15 Dez 2017, 12:11

    Bom dia,

    Tenho 28 labels em um form do meu sistema, para que eu não tenha que ficar mudando label a label toda vez que abro o sistema, queria fazer um modo atreves de for ou while em que eu passe por cada label e mude o valor dela.

    É possivel?

    Att.

    avatar
    José Machado
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 83
    Registrado : 13/09/2016

    Re: [Resolvido]Alterar varias Labels no Sistema

    Mensagem  José Machado em Sex 15 Dez 2017, 12:30

    Amigo...

    Mande um modelo para ser analisado.


    Att
    José

    Atrefh
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 09/02/2017

    Re: [Resolvido]Alterar varias Labels no Sistema

    Mensagem  Atrefh em Sex 15 Dez 2017, 13:14

    Meu Codigo esta assim:

    Código:
    Dim Matab As Recordset
    Dim BD As Database
    Dim DiaInicial As Date


    Set BD = CurrentDb()
    Set Matab = BD.OpenRecordset("vw_MaiorMenor_Data_DMP_x_PDT")

    Matab.MoveLast
    QtdRegistro = Matab.RecordCount
    Matab.MoveFirst

    For i = 1 To QtdRegistro
        DiaInicial = Matab.Fields("Menor_Data")
    Next
    Matab.Close
    BD.Close

    lb1.Caption = Left(CStr(DiaInicial), 5)
    lb2.Caption = Left(CStr(DiaInicial + 1), 5)
    lb3.Caption = Left(CStr(DiaInicial + 2), 5)
    lb4.Caption = Left(CStr(DiaInicial + 3), 5)
    lb5.Caption = Left(CStr(DiaInicial + 4), 5)
    lb6.Caption = Left(CStr(DiaInicial + 5), 5)
    lb7.Caption = Left(CStr(DiaInicial + 6), 5)
    lb8.Caption = Left(CStr(DiaInicial + 7), 5)
    lb9.Caption = Left(CStr(DiaInicial + 8), 5)
    lb10.Caption = Left(CStr(DiaInicial + 9), 5)
    lb11.Caption = Left(CStr(DiaInicial + 10), 5)
    lb12.Caption = Left(CStr(DiaInicial + 11), 5)
    lb13.Caption = Left(CStr(DiaInicial + 12), 5)
    lb14.Caption = Left(CStr(DiaInicial + 13), 5)
    lb15.Caption = Left(CStr(DiaInicial + 14), 5)
    lb16.Caption = Left(CStr(DiaInicial + 15), 5)
    lb17.Caption = Left(CStr(DiaInicial + 16), 5)
    lb18.Caption = Left(CStr(DiaInicial + 17), 5)
    lb19.Caption = Left(CStr(DiaInicial + 18), 5)
    lb20.Caption = Left(CStr(DiaInicial + 19), 5)
    lb21.Caption = Left(CStr(DiaInicial + 20), 5)
    lb22.Caption = Left(CStr(DiaInicial + 21), 5)
    lb23.Caption = Left(CStr(DiaInicial + 22), 5)
    lb24.Caption = Left(CStr(DiaInicial + 23), 5)
    lb25.Caption = Left(CStr(DiaInicial + 24), 5)
    lb26.Caption = Left(CStr(DiaInicial + 25), 5)
    lb27.Caption = Left(CStr(DiaInicial + 26), 5)
    lb28.Caption = Left(CStr(DiaInicial + 27), 5)

    Eu preciso que ao inves de colocar o valor em cada label, uma maneira com o FOR para que passe por cada um e atribua o valor nela.

    O intuito é não deixar o codigo imenso. rsrs
    avatar
    José Machado
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 83
    Registrado : 13/09/2016

    Re: [Resolvido]Alterar varias Labels no Sistema

    Mensagem  José Machado em Sex 15 Dez 2017, 18:26

    Amigo...

    Veja se ajuda esse codigo:

    Dim conexao As New Cls_Conexao

    Private Sub Form_Load()
       Renomear_label
    End Sub

    Sub Renomear_label()
       Dim query As String
       Dim contador As Integer
       Dim controle As Control
       Dim strNum As String
       Dim Label_Index As Integer
       Dim Registro_index
       Dim quantidade_registro As Integer
       
       query = "SELECT * FROM diasemana"

       conexao.Abrir_Conexao
       conexao.Executar_Data_Reader (query)
       
       quantidade_registro = conexao.data_reader.RecordCount
       
    Label_Index = 0
    contador = 0

    While contador < quantidade_registro
       strNum = "" & Label_Index
       
       
       Set controle = Me("Rotulo" & strNum)
       
           controle.Caption = conexao.data_reader![dia_nome]
           conexao.data_reader.MoveNext
       contador = contador + 1
       Label_Index = Label_Index + 1
    Wend

    Set controle = Nothing
    conexao.Fechar_Data_Reader
    End Sub
    Anexos
    Label.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (32 Kb) Baixado 7 vez(es)

    Atrefh
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 09/02/2017

    Re: [Resolvido]Alterar varias Labels no Sistema

    Mensagem  Atrefh em Seg 18 Dez 2017, 11:22

    Bom dia,

    Usei apenas o codigo baixo, adaptando a sua logica com o que eu estava precisando:
    Código:

    Label_Index = 0
    contador = 0

    While contador < quantidade_registro
      strNum = "" & Label_Index
     
     
      Set controle = Me("Rotulo" & strNum)
     
          controle.Caption = conexao.data_reader![dia_nome]
          conexao.data_reader.MoveNext
      contador = contador + 1
      Label_Index = Label_Index + 1
    Wend

    Meu Codigo Final:
    Código:

    Set BD = CurrentDb()
    Set Matab = BD.OpenRecordset("vw_crz_Peso_Medio_PT_Com_Filtro")
    Matab.MoveFirst
    Label_Index = 2
    p1.Value = Round(Matab.Fields(1), 2)
    While Label_Index <= 28
      strNum = "p" & Label_Index
      Set controle = Me(strNum)
          controle.Value = Round(Matab.Fields(Label_Index), 2)
      Label_Index = Label_Index + 1
    Wend
    Matab.Close
    BD.Close

    De 204 linhas, o meu programa caiu para 97 com essa sua logica.

    Muito Obrigado Very Happy
    Att

      Data/hora atual: Seg 18 Jun 2018, 16:16