Prezados Colegas,
Tentei buscar soluções no fórum para o problema que me deparei, no entanto não logrei êxito.Parece algo muito simples, desta forma recorro aos colegas mais experientes para me orientar como proceder.
Observação: Encaminho em anexo o BD para que facilite a compreensão e para que manipulem, caso necessário, para adequação a proposta.
Trata-se de um formulário, que possui alguns campos obrigatórios de preenchimento a saber "txtDataCadastro", "txtNomeCompleto" e "txtCarteiraIdentidade", esses dois últimos apenas habilitados quando selecionável o campo sim/não "txtTaxaEmissão".
Desejo que ao selecionar o ícone de avançar registro ou de criar novo registro, somente vá para próximo se estiverem preenchidos os campos "txtNomeCompleto" e "txtCarteiraIdentidade", assim como aplicado para "txtDataCadastro", assim como o seguinte código:
Private Sub btnAvancar_Click()
If IsNull([txtDataCadastro]) Then
MsgBox "Obrigatório o preenchimento da data de cadastro"
DoCmd.GoToControl "txtDataCadastro"
Else
DoCmd.GoToRecord , , acNext
End If
End Sub"
Observe que não quero obrigar que sempre se exija o preenchimento dos campos referenciados, como acontece no campo data. Mas apenas quando estiver "txtTaxaEmissão" selecionado, porque do contrario tais campos inclusive estarão desabilitados, senão vejamos:
Private Sub txtTaxaEmissao_AfterUpdate()
If Me.txtTaxaEmissao = True Then
Me.txtValorPago.Enabled = False
Me.txtNomeCompleto.Enabled = True
Me.txtCarteiraIdentidade.Enabled = True
Else
Me.txtValorPago.Enabled = True
Me.txtNomeCompleto.Enabled = False
Me.txtCarteiraIdentidade.Enabled = False
End If
End Sub"
Portanto gostaria de fazer uma fusão desses comandos, mas não consegui. Noutra Palavras eu desejo que sempre seja obrigatório ao avançar o registro se exigir o preenchimento da data, por outro lado, se o campo "txtTaxaEmissão" estiver selecionado, também obrigar o preenchimento de "txtNomeCompleto" e "txtCarteiraIdentidade", do contrário permitir prosseguir sem seus preenchimentos.
Pensei em algo que juntasse as funções, a exemplo do código abaixo, todavia não deu certo:
Private Sub btnAvancar_Click()
If IsNull([txtDataCadastro]) Then
MsgBox "Obrigatório o preenchimento da data de cadastro"
DoCmd.GoToControl "txtDataCadastro"
Else
If Me.txtTaxaEmissao = True Then
MsgBox "Obrigatório o preenchimento do Nome Completo"
DoCmd.GoToControl "txtNomeCompleto"
Elso
If Me.txtTaxaEmissao = True Then
MsgBox "Obrigatório o preenchimento do RG"
DoCmd.GoToControl "txtCarteiraIdentidade"
Else
DoCmd.GoToRecord , , acNext
End If
End If
End If
End Sub"
INFELIZMENTE isso foi o mais próximo que cheguei.
Tentei de todos os jeitos resolver esse problema, mas não consegui.
Assim peço ajuda dos colegas, para resolução desse problema.
Aguardo apoio e de pronto agradeço as que colaborarem.
Atenciosamente
Tentei buscar soluções no fórum para o problema que me deparei, no entanto não logrei êxito.Parece algo muito simples, desta forma recorro aos colegas mais experientes para me orientar como proceder.
Observação: Encaminho em anexo o BD para que facilite a compreensão e para que manipulem, caso necessário, para adequação a proposta.
Trata-se de um formulário, que possui alguns campos obrigatórios de preenchimento a saber "txtDataCadastro", "txtNomeCompleto" e "txtCarteiraIdentidade", esses dois últimos apenas habilitados quando selecionável o campo sim/não "txtTaxaEmissão".
Desejo que ao selecionar o ícone de avançar registro ou de criar novo registro, somente vá para próximo se estiverem preenchidos os campos "txtNomeCompleto" e "txtCarteiraIdentidade", assim como aplicado para "txtDataCadastro", assim como o seguinte código:
Private Sub btnAvancar_Click()
If IsNull([txtDataCadastro]) Then
MsgBox "Obrigatório o preenchimento da data de cadastro"
DoCmd.GoToControl "txtDataCadastro"
Else
DoCmd.GoToRecord , , acNext
End If
End Sub"
Observe que não quero obrigar que sempre se exija o preenchimento dos campos referenciados, como acontece no campo data. Mas apenas quando estiver "txtTaxaEmissão" selecionado, porque do contrario tais campos inclusive estarão desabilitados, senão vejamos:
Private Sub txtTaxaEmissao_AfterUpdate()
If Me.txtTaxaEmissao = True Then
Me.txtValorPago.Enabled = False
Me.txtNomeCompleto.Enabled = True
Me.txtCarteiraIdentidade.Enabled = True
Else
Me.txtValorPago.Enabled = True
Me.txtNomeCompleto.Enabled = False
Me.txtCarteiraIdentidade.Enabled = False
End If
End Sub"
Portanto gostaria de fazer uma fusão desses comandos, mas não consegui. Noutra Palavras eu desejo que sempre seja obrigatório ao avançar o registro se exigir o preenchimento da data, por outro lado, se o campo "txtTaxaEmissão" estiver selecionado, também obrigar o preenchimento de "txtNomeCompleto" e "txtCarteiraIdentidade", do contrário permitir prosseguir sem seus preenchimentos.
Pensei em algo que juntasse as funções, a exemplo do código abaixo, todavia não deu certo:
Private Sub btnAvancar_Click()
If IsNull([txtDataCadastro]) Then
MsgBox "Obrigatório o preenchimento da data de cadastro"
DoCmd.GoToControl "txtDataCadastro"
Else
If Me.txtTaxaEmissao = True Then
MsgBox "Obrigatório o preenchimento do Nome Completo"
DoCmd.GoToControl "txtNomeCompleto"
Elso
If Me.txtTaxaEmissao = True Then
MsgBox "Obrigatório o preenchimento do RG"
DoCmd.GoToControl "txtCarteiraIdentidade"
Else
DoCmd.GoToRecord , , acNext
End If
End If
End If
End Sub"
INFELIZMENTE isso foi o mais próximo que cheguei.
Tentei de todos os jeitos resolver esse problema, mas não consegui.
Assim peço ajuda dos colegas, para resolução desse problema.
Aguardo apoio e de pronto agradeço as que colaborarem.
Atenciosamente