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!
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!