bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Referência a um campo do subformulário

... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Referência a um campo do subformulário

Antes de iniciar a sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

Usuário Dico:

Mestre Avelino,

pretendo que a propriedade visível de alguns controles assuma o valor "true", se um determinado campo de um subformulário estiver vazio (IsNull ?).  O subformulário está com as propriedades de inclusão e exclusão de registro desabilitadas, e os dados são limitados por dois campos data, de tal forma que hoje pode aparecer um registro neste subformulário e depois de  passada a data registrada no campo "dt_início", não vai aparecer mais nenhum registro.  Neste momento, o sistema deve permitir que se inclua novo registro para data futura.  Então, sempre terei, no máximo, um registro neste subformulário.

Usei o código abaixo com a MsgBox para servir de teste, mas o sistema exibe continuamente a mensagem e sempre torna o botão visível.

Private Sub Form_Load()
On Error Resume Next
If IsNull([Formulários]![Frm_Pessoas_Edição_Cobrança]![Frm_Pessoas_Edição_Cobrança_Futuras_subform]![Cód_Cobrança]) Then
    MsgBox "Informe os critérios de seleção nos campos próprios!", vbInformation, "Sociedade Harmonia Jaguarão"
    Me!btAtualizar.visible = True
    Me!Combo_Cobrança.SetFocus
    Exit Sub
End If
End Sub

A parte em vermelho é o nome do campo, usando a construção como eu já utilizei como critério de uma consulta-filtro de um formulário de um outro sistema.

Abraço.

Suporte:

Dico, desabilite temporariamente a linha "On Error Resume Next" para  você saber se acusa erro no código.

Se você está no formulário principal, pode substituir o Forms![Frm_Pessoas_Edição_Cobrança] pelo ME!

Private Sub Form_Load()
'On Error Resume Next
If IsNull(me![Frm_Pessoas_Edição_Cobrança_Futuras_subform]![Cód_Cobrança]) Then
    MsgBox "Informe os critérios de seleção nos campos próprios!", vbInformation, "Sociedade Harmonia Jaguarão"
    Me!btAtualizar.visible = True
    Me!Combo_Cobrança.SetFocus
    Exit Sub
End If
End Sub

Leia este meu artigo, sobre referenciar objetos no Access.

Usuário Dico:

Avelino, boa noite.

Avançamos um pouco! Desabilitei a linha "On Error..." e não mudei muito a referência - o nome do controle subformulário é diferente do nome do formulário que está inserido. Também desabilitei a linha da MsgBox, que era um artifício para verificar o funcionamento do código. Então, ficou assim:

Private Sub Form_Load()
'On Error Resume Next
If IsNull(Me![Cobrança_Futura]![Cód_Cobrança]) Then
    Me!btAtualizar.visible = True
    Me!Combo_Cobrança.SetFocus
    Exit Sub
End If
End Sub

É possível afirmar que o código está funcionando, porque não deu erro, mas também não tornou o botão visível. Tenho uma suspeita sobre o que está errado: o subformulário, como falei antes, está montado para exibir nenhuma linha ou apenas uma linha com conteúdo.  Parece que a crítica do campo "Cód_Cobrança" não retorna Null, se não existe nenhuma linha no subformulário.  Assim como não retorna Null, se existe uma linha com conteúdo no campo criticado.

Também experimentei inverter a função (passei para Not IsNull) e trocar por IsEmpty, mas continuou não funcionando.

Suporte:

Dico, então veja se com a contagem de registros do subForm funciona. Exemplo:

Private Sub Form_Load()
'On Error Resume Next
If Me![Cobrança_Futura].Form.RecordsetClone.RecordCount = 0 Then
    Me!btAtualizar.visible = True
    Me!Combo_Cobrança.SetFocus
    Exit Sub
End If
End Sub

Usuário Dico:

Tchê, como é que a Microsoft ainda não te levou para o vale do silício?

O código funcionou com a alteração proposta.

Obrigado

 


 

 


Não há comentário

Envie seu comentário: