Olá Pessoal.
2 Problemas:
1) Estou com dificuldade de conseguir Validar a entrada de dados de um formulário meu, que tem o seguinte:
Campo 1: [____________] (txtRgRg) - Caixa de Texto
Campo 2: [___________v] (cboRgVia) - Caixa de Combinação
Campo 3: [___________v] (cboRgTipoPagto) - Caixa de Combinação
Campo 4: [ ] (chkRgSms ) - Check Box ---\ Se não estiver Marcado (Sim) o Campo 5 DEVE ser Preenchido (Not IsNull)
Campo 5: [____________] (txtRgMotivo) - Caixa de Texto ---/
[Novo Registro] [Voltar]
Meu Código:
As regras são:
- Campos 1, 2 e 3 Não podem ser vazias
- Campo 4: Se Não for Marcado, DEVE ser escrito algo no Campo 5
Meu código abaixo, funciona para o campo 1 (texto), mas não valida os 2 campos depois (Caixa de Combinação), sempre gravando um registro com esses 2 campos vazios.
----- ATUALIZAÇÃO ------
Após alguns testes, sempre com erro, pois não validava as Caixas de Combinação, pensei, então em forçar iniciar cada uma das Caixas de Combinação com o seguinte comando:
Private Sub Form_Load()
' COMEÇAR AS CAIXAS DE COMBINAÇAO COM OS 1os ITENS 26/02
Me!cboRgVia = Me!cboRgVia.ItemData(0)
Me!cboRgTipoPagto = Me!cboRgTipoPagto.ItemData(0)
End Sub
O novo código ficou assim:
Private Sub Comando_Salvar_Registro_Click()
If IsNull(Me.txtRgRg) Then
MsgBox "Informe o RG!", vbCritical, "Campo em Branco"
Me.txtRgRg.SetFocus
'DoCmd.CancelEvent
Exit Sub
ElseIf IsNull(Me.cboRgVia) Or Len(Me.cboRgVia) = 0 Then
MsgBox "Informe a Via!", vbCritical, "Campo em Branco"
Me.cboRgVia.SetFocus
'DoCmd.CancelEvent
Exit Sub
ElseIf IsNull(Me.cboRgTipoPagto) Or Len(Me.cboRgTipoPagto) = 0 Then
MsgBox "Informe o Tipo de Pagto!", vbCritical, "Campo em Branco"
Me.cboRgTipoPagto.SetFocus
'DoCmd.CancelEvent
Exit Sub
ElseIf Me.chkRgSms = True And IsNull(Me.txtRgMotivo) Then
MsgBox "Informe o Motivo!", vbCritical, "Campo em Branco"
Me.txtRgMotivo.SetFocus
'DoCmd.CancelEvent
Exit Sub
Else
DoCmd.GoToRecord , , acNewRec ' <<<----------- ERRO AQUI !!
End If
End Sub
Agora dá ERRO na linha que vai para o próximo registro, gravando o atual.
NÃO MOSTRA mais a DATA que foi escolhida no formulário anterior
Segue ANEXO
2) Como impedir a navegação de registros anteriores, pois este Formulário só deve permitir Inclusão, ou seja, sempre começa num Novo Registro, mas hoje, se eu pressionar seta para cima ou [Shift] [Tab] o usuário consegue visualizar os registros anteriores. Pensei em colocar algo como, se estiver no Campo 1, se pressionar [Seta-para-cima] ou [Shift][Tab] ele mantém o foco no Campo 1.
No aguardo...Obrigado a todos...
2 Problemas:
1) Estou com dificuldade de conseguir Validar a entrada de dados de um formulário meu, que tem o seguinte:
Campo 1: [____________] (txtRgRg) - Caixa de Texto
Campo 2: [___________v] (cboRgVia) - Caixa de Combinação
Campo 3: [___________v] (cboRgTipoPagto) - Caixa de Combinação
Campo 4: [ ] (chkRgSms ) - Check Box ---\ Se não estiver Marcado (Sim) o Campo 5 DEVE ser Preenchido (Not IsNull)
Campo 5: [____________] (txtRgMotivo) - Caixa de Texto ---/
[Novo Registro] [Voltar]
Meu Código:
As regras são:
- Campos 1, 2 e 3 Não podem ser vazias
- Campo 4: Se Não for Marcado, DEVE ser escrito algo no Campo 5
Meu código abaixo, funciona para o campo 1 (texto), mas não valida os 2 campos depois (Caixa de Combinação), sempre gravando um registro com esses 2 campos vazios.
----- ATUALIZAÇÃO ------
Após alguns testes, sempre com erro, pois não validava as Caixas de Combinação, pensei, então em forçar iniciar cada uma das Caixas de Combinação com o seguinte comando:
Private Sub Form_Load()
' COMEÇAR AS CAIXAS DE COMBINAÇAO COM OS 1os ITENS 26/02
Me!cboRgVia = Me!cboRgVia.ItemData(0)
Me!cboRgTipoPagto = Me!cboRgTipoPagto.ItemData(0)
End Sub
O novo código ficou assim:
Private Sub Comando_Salvar_Registro_Click()
If IsNull(Me.txtRgRg) Then
MsgBox "Informe o RG!", vbCritical, "Campo em Branco"
Me.txtRgRg.SetFocus
'DoCmd.CancelEvent
Exit Sub
ElseIf IsNull(Me.cboRgVia) Or Len(Me.cboRgVia) = 0 Then
MsgBox "Informe a Via!", vbCritical, "Campo em Branco"
Me.cboRgVia.SetFocus
'DoCmd.CancelEvent
Exit Sub
ElseIf IsNull(Me.cboRgTipoPagto) Or Len(Me.cboRgTipoPagto) = 0 Then
MsgBox "Informe o Tipo de Pagto!", vbCritical, "Campo em Branco"
Me.cboRgTipoPagto.SetFocus
'DoCmd.CancelEvent
Exit Sub
ElseIf Me.chkRgSms = True And IsNull(Me.txtRgMotivo) Then
MsgBox "Informe o Motivo!", vbCritical, "Campo em Branco"
Me.txtRgMotivo.SetFocus
'DoCmd.CancelEvent
Exit Sub
Else
DoCmd.GoToRecord , , acNewRec ' <<<----------- ERRO AQUI !!
End If
End Sub
Agora dá ERRO na linha que vai para o próximo registro, gravando o atual.
NÃO MOSTRA mais a DATA que foi escolhida no formulário anterior
Segue ANEXO
2) Como impedir a navegação de registros anteriores, pois este Formulário só deve permitir Inclusão, ou seja, sempre começa num Novo Registro, mas hoje, se eu pressionar seta para cima ou [Shift] [Tab] o usuário consegue visualizar os registros anteriores. Pensei em colocar algo como, se estiver no Campo 1, se pressionar [Seta-para-cima] ou [Shift][Tab] ele mantém o foco no Campo 1.
No aguardo...Obrigado a todos...
- Anexos
Cópia2_RG.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (595 Kb) Baixado 5 vez(es)