none
Validação de erro RRS feed

  • Pergunta

  • Olá Pessoal.

    Novamente venho me socorrer dos ensinamentos do pessoal deste Fórum.

    Estou validando alguns campos de um formulário. Todos os campos, a exceção de um, já consegui validar.

    O problema e que apesar do código que escrevi me parecer correto não consigo validar o campo.

    Trata-se de dois textbox, que recebem datas. A validação consiste verificar se a data do txt2 é maior do que a data do txt1; se for deverá gerar erro.

    Com o código que escrevi, executando-o passo-a-passo verifiquei o seguinte:
    - se a data do txt2 for maior do que a do txt1- oK, o código roda, gera o erro e consigo alterá-la.

    - ocorre que mesmo se a data do txt2 for menor que a do txt1, o código gera o erro.

    Então, de qualquer forma o cógido gera o erro, vai para a linha do erro.

    Por mais que eu mude, analise, não consigo mudar essa situação.

    Segue o código que fiz:

    'VALIDAÇÃO DO CAMPO: DATA FINAL COM DATA INICIAL
    'A DATA FINAL NÃO PODE SER MAIOR QUE A DATA INICIAL
    
       On Error GoTo ErroDataFinal
      If txt2 > txt1 Then GoTo ErroDataFinal 'ErroDataFinal: Resposta = MsgBox("A data final informada é MAIOR que a data inicial! CONFIRMA?", vbCritical + vbYesNo) If Resposta = vbYes Then Validar = True Else: Resposta = vbNo txt2.SetFocus txt2 = "" 'End If
    Poderiam me ajudar indicando o erro no código ou mesmo indicando um código melhor.

    Muito Obrigado!
    sábado, 4 de julho de 2009 17:45

Respostas

  • Olá Luiz....


    No seu código faltou o exit sub..

        On Error GoTo ErroDataFinal
        If txt2 > txt1 Then GoTo ErroDataFinal
        exit sub' se txt2<txt1 sai do código

    ErroDataFinal:
        Resposta = MsgBox("A data final informada é MAIOR que a data inicial! CONFIRMA?", vbCritical + vbYesNo)
            If Resposta = vbYes Then
                Validar = True
            Else: Resposta = vbNo
                txt2.SetFocus
                txt2 = ""
           'End If

    Eu faço assim...


        If CDate(Txt_DataInicial) > CDate(Txt_DataFinal) Then
           MsgBox "Data Inicial Não pode ser maior que Data Final...", vbExclamation, "Erro"
           Txt_DataInicial.SetFocus
           Exit Sub
        End If

    Até..
    segunda-feira, 6 de julho de 2009 04:05

Todas as Respostas

  • Olá Luiz....


    No seu código faltou o exit sub..

        On Error GoTo ErroDataFinal
        If txt2 > txt1 Then GoTo ErroDataFinal
        exit sub' se txt2<txt1 sai do código

    ErroDataFinal:
        Resposta = MsgBox("A data final informada é MAIOR que a data inicial! CONFIRMA?", vbCritical + vbYesNo)
            If Resposta = vbYes Then
                Validar = True
            Else: Resposta = vbNo
                txt2.SetFocus
                txt2 = ""
           'End If

    Eu faço assim...


        If CDate(Txt_DataInicial) > CDate(Txt_DataFinal) Then
           MsgBox "Data Inicial Não pode ser maior que Data Final...", vbExclamation, "Erro"
           Txt_DataInicial.SetFocus
           Exit Sub
        End If

    Até..
    segunda-feira, 6 de julho de 2009 04:05
  • Olá EvangelistaLion

    Muito Obrigdo!

    A sua resposta, mais uma vez, me ajudou muito.

    Valeu.

    Felicidades.

    Até ...
    segunda-feira, 6 de julho de 2009 13:55