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


3 participantes

    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código

    MS Kid
    MS Kid
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código Empty [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código

    Mensagem  MS Kid 25/1/2013, 00:18

    boa noite pessoal.

    estou tentando colorir as linhas de um sub-formulario continuo condicionalmente, mas, o formulario acaba ficando "zebrado", o que eu nao quero. nesse sub-formulario continuo existem 6 campos, onde o sexto campo informa a quantidade de dias restantes para a entrega de um material. tudo que quero eh pintar as linhas desse sub-form de vermelho, quando esse valor for 1. esse valor pode estar somente na primeira linha ou na primeira e segunda ou na quinta, sexta e nona linha... onde tiver esse valor, o sistema tem que pintar a linha de vermelho.

    eu tentei usar o codigo do link abaixo no evento paint do sub-form, mas, nao funcionou.

    http://maximoaccess.forumeiros.com/t5490-resolvidoformatacao-condicional-por-codigo-em-formulario-continuo

    o codigo que eu fiz inicialmente foi o seguinte:


    Private Sub Detalhe_Paint()
       Dim Amarelo, Azul, Vermelho, Branco As Long
       
       Amarelo = RGB(255, 255, 102)
       Laranja = RGB(255, 204, 102)
       Vermelho = RGB(255, 0, 0)
       Azul = RGB(16, 75, 125)
       Branco = RGB(255, 255, 255)
       
       If (Me.Expr6.Value = 1) Then
           Me.Detalhe.BackColor = Vermelho
           Me.Texto185.ForeColor = Branco
       Else
           Me.Detalhe.BackColor = Branco
           Me.Texto185.ForeColor = Azul
       End If
    End Sub


    por favor, me ajudem.
    agradeço a atenção de vcs.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código Empty Re: [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código

    Mensagem  Avelino Sampaio 25/1/2013, 08:43

    Olá

    Você está pintando o BackColor da seção detalhes mas também tem que pintar o AlternateBackColor

    Veja mais detalhes neste meu artigo:

    http://www.usandoaccess.com.br/dicas/dica3.asp?id=1#inicio

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    MS Kid
    MS Kid
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código Empty Re: [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código

    Mensagem  MS Kid 25/1/2013, 16:13

    tudo bem, Avelino? espero que sim.

    muito obrigado mesmo pelo pronto atendimento. no momento, eu to tentando adaptar aquele codigo que encontrei aqui no forum e estou perto do meu objetivo. eu ja consigo colorir cada caixa de texto do "sub-form continuo" usando 3 cores, de acordo com os criterios passados no "FormatConditions", dando a impressao de que eu pintei a linha inteira do "form detail". so que dessa forma eh melhor ainda, pois, posso mudar a formatacao de texto das caixas (ótimo).

    da forma que estah agora, tenho que fazer o codigo caixa por caixa. porem, vou readaptar este codigo para automatizar esse processo com o loop "For Each campo In Form.Controls"

    assim que conseguir, irei disponibilizar o codigo aqui no forum.

    mais uma vez, obrigado.
    MS Kid
    MS Kid
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código Empty Re: [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código

    Mensagem  MS Kid 25/1/2013, 17:17

    pessoal.

    a formatacao que eu queria aplicar no sub-formulario continuo de forma automatizada eu consegui fazer. eu copiei um codigo disponibilizado aqui no forum e o readaptei. o codigo ficou da seguinte forma:

    Private Sub Form_Current()
    Dim campo As Control
    Dim MinhaFormatacao As FormatCondition
    Dim Amarelo, Azul, Vermelho, Branco As Long

    Amarelo = RGB(255, 255, 102)
    Laranja = RGB(255, 204, 102)
    Vermelho = RGB(255, 0, 0)
    Azul = RGB(16, 75, 125)
    Branco = RGB(255, 255, 255)

    For Each campo In Me.Form.Controls
    Select Case campo.ControlType
    Case acTextBox
    campo.FormatConditions.Delete

    Set MinhaFormatacao = campo.FormatConditions.Add(acExpression, acEqual, Me.txtCampo6.Name & " = '0'")
    Set MinhaFormatacao = campo.FormatConditions.Add(acExpression, acEqual, Me.txtCampo6.Name & " = '1'")
    Set MinhaFormatacao = campo.FormatConditions.Add(acExpression, acEqual, Me.txtCampo5.Name & " = '1' AND " & Me.txtCampo6.Name & " Not In (""0"",""1"")")

    With campo.FormatConditions(0)
    .BackColor = Vermelho
    .ForeColor = Branco
    .FontBold = True
    End With

    With campo.FormatConditions(1)
    .BackColor = Laranja
    .ForeColor = Azul
    .FontBold = False
    End With

    With campo.FormatConditions(2)
    .BackColor = Amarelo
    .ForeColor = Azul
    .FontBold = False
    End With
    End Select
    Next campo

    Set campo = Nothing
    End Sub


    o bd de exemplo encontra-se no anexo pra quem quiser baixar.

    um abraço a todos.
    avatar
    ass
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 01/05/2012

    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código Empty Duvida

    Mensagem  ass 12/1/2014, 19:07

    Ótimo exemplo mas estou sofrendo pra implementar aqui, como tenho muitos campos esse loop acaba deixando a tela muito lenta, aonde posso estar errando?

    Dim MinhaFormatacao As FormatCondition
    Dim Amarelo, Azul, Vermelho, Vermelho2, Branco, Preto As Long

    Amarelo = RGB(238, 238, 0) 'yellow 2 - ANIVERSARIANTE
    Vermelho = RGB(255, 0, 0) 'red - CREDITO CORTADO
    Azul = RGB(3, 168, 158) 'manganese blue - INATIVO
    Vermelho = RGB(139, 0, 0) 'red4 - CREDITO CORTADO
    Branco = RGB(255, 255, 255) 'FONTE
    Preto = RGB(0, 0, 0) 'FONTE

    'VENDO OS CAMPOS DO SELECT PARA NAO FICAR MUITO LENTO A COLORAÇÃO
    Dim USelect As String
    USelect = Nz(DLookup("[select]", "tblusuariostelas", "[coduser]=" & login.idUser & " AND [form]='frmClientesLista'"), "")
    If Len(USelect & "") = 0 Then
    Exit Sub
    End If

    'VENDO QUANTOS CAMPOS TEMOS PARA NÃO PERDER TEMPO
    Dim k
    k = Split(USelect, ",")
    Dim qtsX As Integer
    qtsX = 0
    For i = 1 To Len(USelect)
    If Mid(USelect, i, 1) = "," Then qtsX = qtsX + 1
    Next

    Dim valIni As Integer
    valIni = 0

    'COLORINDO OS CAMPOS
    While (Not valIni = qtsX + 1)

    Me.Controls(k(valIni)).FormatConditions.Delete

    'SELECIONADO
    Set MinhaFormatacao = Me.Controls(k(valIni)).FormatConditions.Add(acExpression, acEqual, Me.codigo.Name & " = '" & Me.codigo & "'")
    'ANIVERSARIANTE
    Set MinhaFormatacao = Me.Controls(k(valIni)).FormatConditions.Add(acExpression, acEqual, Me.fantasia & " like '3'")
    'INATIVO
    Set MinhaFormatacao = Me.Controls(k(valIni)).FormatConditions.Add(acExpression, acEqual, Me.statusCli & " = 'INATIVO'")


    With Me.Controls(k(valIni)).FormatConditions(0)
    .BackColor = Preto
    .ForeColor = Branco
    .FontBold = True
    End With

    With Me.Controls(k(valIni)).FormatConditions(1)
    .BackColor = Vermelho
    .ForeColor = Preto
    .FontBold = True
    End With

    With Me.Controls(k(valIni)).FormatConditions(2)
    .BackColor = Azul
    .ForeColor = Preto
    .FontBold = True
    End With

    valIni = valIni + 1
    Wend

    Conteúdo patrocinado


    [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código Empty Re: [Resolvido]Formatação Condicional Em Formulário Contínuo Via Código

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 10:54