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

    [Resolvido]Condição Visível True ou False para campos em subformulário contínuo

    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Condição Visível True ou False para campos em subformulário contínuo Empty [Resolvido]Condição Visível True ou False para campos em subformulário contínuo

    Mensagem  Chamon Consultoria 8/7/2016, 23:15

    Boa noite!


    Dentre os tópicos pesquisados o que mais parece com o meu caso é o seguinte:

    https://www.maximoaccess.com/t1322-resolvidocampo-visivel-e-nao-visivel-em-form-continuo

    Bd em Access 2010.

    Formulário (Simples): Orcamentos composto pelos campos: txtTipoGrade, 23, 24, 25 ... até o 44. Abaixo explicarei as grades:

    Grade Infantil: campos 23, 24, 25 ... até 33. txtTipoGrade = 3

    Grade Adulto: campos 34, 35, 36 ... até 44. txtTipoGrade = 2

    txtTipoGrade = 1 quando não houver seleção de grade.


    Subformuário (Contínuo): OrcamentosSub composto pelos mesmos campos do formulário Orcamentos, porém com algumas alterações nos nomes:
    TIPOGRADE
    Ctl23, Ctl24, Ctl25 ... até Ctl44.

    Os dados são inseridos no formulário orçamento e "enviados" para o subformulário OrcamentosSub. Assim, não existe digitação nesse subformulário, pois os dados são inseridos nele de forma automática.

    Seguindo as orientações do link citado acima, fiz dois testes:
    Primeiro:
    No evento Ao pintar do subformulário:

    Private Sub Detalhe_Paint()
    If TIPOGRADE = "1" Then

    Ctl23.visible = False
    Ctl24.visible = False
    Ctl25.visible = False 'False até Ctl44, ou seja, como não há grade selecionada todos os campos ficariam invisíveis
    Else

    If TIPOGRADE = "2" Then
    Ctl23.visible = False
    Ctl24.visible = False
    Ctl25.visible = False 'False até Ctl33 ou seja, como o tipo da grade é =2 (adulto) deixaria a grade do 23 ao 33 invisível
    Ctl34.visible = True
    Ctl35.visible = True
    Ctl36.visible = True 'True até o Ctl44

    Else

    If TIPOGRADE = "3" Then


    Ctl23.visible = True
    Ctl24.visible = True
    Ctl25.visible = True 'True até o Ctl33
    Ctl34.visible = False
    Ctl35.visible = False
    Ctl36.visible = False 'False até o Ctl44


    End If
    End If
    End If
    End Sub

    Porém aparece o seguinte erro:
    Erro em tempo de execução: 32521 - Você não pode alterar o valor desta propriedade no evento OnPaint.

    De acordo com o criquio, no Access 2007/2010 pode usar o evento "Ao pintar" do detalhe do formulário. Como o meu Bd é em Access
    2010, acredito que eu tenha inserido o código de maneira errada.


    O segundo teste, foi seguindo a orientação do JPaulo usando a formatação condicional.
    Funcionou em parte em relação aos campos, porém os rótulos não foram ou aparentemente não aceitam ser pintados.


    Se puderem me ajudar com alguma sugestão.

    Desde já agradeço!








    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Condição Visível True ou False para campos em subformulário contínuo Empty Re: [Resolvido]Condição Visível True ou False para campos em subformulário contínuo

    Mensagem  Avelino Sampaio 9/7/2016, 10:03

    Olá!

    No evento ao pintar, vc consegue alterar as cores sem problemas. Experimente primeiro com um campo.  Algo assim:

    Private Sub Detalhe_Paint()
    If Me!TipoGrade = "1" Then
       Me!NomeRótuloCtl23.ForeColor = vbWhite
       Me!ctl23.BorderColor = vbWhite
    Else
       Me!NomeRótuloCtl23.ForeColor = vbBlack
       Me!ctl23.BorderColor = vbBlack
    End If
    End Sub


    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Chamon Consultoria
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 266
    Registrado : 31/08/2012

    [Resolvido]Condição Visível True ou False para campos em subformulário contínuo Empty Re: [Resolvido]Condição Visível True ou False para campos em subformulário contínuo

    Mensagem  Chamon Consultoria 10/7/2016, 22:01

    Avelino, obrigado pela sugestão, ela funcionou. Fiz apenas um incremento para pintar o conteúdo dos campos.
    Em resumo ficou assim:

    If TIPOGRADE = "1" Then
    Me.RótuloCtl23.ForeColor = vbWhite
    Me.Ctl23.BorderColor = vbWhite
    Me.Ctl23.ForeColor = vbWhite

    Else

    Me.RótuloCtl3.ForeColor = vbBlack
    Me.Ctl23.BorderColor = vbBlack
    Me.Ctl23.ForeColor = vbBlack

    End If


    Para a aplicação ficar 100% o ideal seria se a função Visible funcionasse nessa situação, pois minha ideia para poupar espaço no formulário, era de deixar a grade adulto sobre a infantil. Assim, quando a grade fosse adulto, a infantil não ficaria visível e vice-versa.
    Já nesse modo de pintar, as grades precisam ficar lado a lado, ocupando todo espaço da linha. Se colocar uma grade sobre a outra, quando uma grade é selecionada, a outra que deveria ficar oculta é pintada de branco, sobrepondo a outra grade e não mostra nada.

    Mais uma vez, muito obrigado!

    Abraço



    Conteúdo patrocinado


    [Resolvido]Condição Visível True ou False para campos em subformulário contínuo Empty Re: [Resolvido]Condição Visível True ou False para campos em subformulário contínuo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 23:16