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

Referência a um campo do subformulário

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

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

 


 

 


1 comentário(s)

Silvio   01/04/2019 17:39:54

Estou com um projeto onde tenho dois subformularios, no primeiro o usuario ira realizar a bipagem da chave de acesso da nota fiscal, no segundo irá mostrar o numero da nota fiscal, até ai tranquilo, o problem ´que essa nota fiscal deve ser vinculada a um numero de pedido onde o campo esta em um formulario.
A ideia é que os campos do subformulario onde irá ser bipado a chave de acesso seja liberado apenas quando os dados dos campos do formulario sejam preenchidos e mostre apenas as notas referentes aos pedidos que está no campo do formulario.


Envie seu comentário: