Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tratamento de erro


Gil Kléber

Pergunta

Olá amigos.. trago mais um probleminha pra suas mentes iluminadas me ajudarem....

Estou usando um formulário que utiliza de alguns campos de outro form. Através da propriedade ORIGEM DO CONTROLE eu recupero os dados do cliente do

form CADASTRO. Enfim. Só tem um probleminha. O tamanho do campo do MEU cadastro é livre... no segundo form, que na verdade é um LINK com o sistema de boletos do UNIBANCO, tem restrições quanto aos tamanhos do campo. Por exemplo, NOME = 30 carateres, ENDERECO: 30 Caracteres, CIDADE = 20 caracteres.

Quando abro o segundo form e ele percebe que algum campo é maior que o permitido, ele dá o seguinte erro

Erro tem tempo de execução '-2147352567 (800200009)':

O campo é demasiado pequeno para aceitar o volume de dados que tentou adicionar. Tente inserir ou colar menos dados

Eu coloquei umas instruções pra fazer essa verificação, mas o problema é que o tratamento de erro do VBA me parece ter prioridade maior, então é executado antes do meu. Até tentei fazer tratamento de erro, o que eu acho que deva ser o mais correto, mas não consigo "capturar" o erro pra poder tratá-lo :/

Tentei fazer da seguinte forma:

Private Sub OK_Click()

On Error GoTo OK_Click_Err

o restante do código

OK_Click_Exit:

Exit Sub

OK_Click_Err:

If Err.Number = -2147352567 (80020009) Then

MsgBox "Erro certo"

Else

MsgBox "erro errado"

End If

Resume OK_Click_Exit

Tentei apenas com os numeros 2147352567 não deu certo. -2147352567 tb não deu certo, 80020009 tb não deu. Então tenho 2 perguntas:

- Qual a forma correta de "capturar" esse erro e fazer o tratamento

- Posso ao mesmo tempo identificar qual campo está maior do que o permitido e direcionar o setfocus imediatamente pra ele?

Espero que alguém saiba como resolver isso.

Obrigado amigos pela ajuda!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Pessoal. Me enganei. Não tinha tentado com o numero do erro negativo

If Err.Number = -2147352567 Then
    MsgBox "erro certo"
End If
Deu certo. Ficou assim...
OK_Click_Exit:
    Exit Sub

OK_Click_Err:
    If Err.Number = -2147352567 Then
        If Len(Nome) > 30 Then
           MsgBox "O Campo NOME é maior do que o permitido, por favor, faça algumas abreviações e clique em ATUALIZAR"
           Me.Nome.SetFocus
        ElseIf Len(Endereco) > 30 Then
           MsgBox "O Campo ENDEREÇO é maior do que o permitido, por favor, faça algumas abreviações e clique em ATUALIZAR"
           Me.Endereco.SetFocus
        ElseIf Len(Complemento) > 30 Then
           MsgBox "O Campo COMPLEMENTO é maior do que o permitido, por favor, faça algumas abreviações e clique em ATUALIZAR"
           Me.Complemento.SetFocus
        ElseIf Len(Bairro) > 15 Then
           MsgBox "O Campo BAIRRO é maior do que o permitido, por favor, faça algumas abreviações e clique em ATUALIZAR"
           Me.Bairro.SetFocus
        ElseIf Len(Cidade) > 15 Then
           MsgBox "O Campo Cidade é maior do que o permitido, por favor, faça algumas abreviações e clique em ATUALIZAR"
           Me.Cidade.SetFocus
        End If
End If
Resume OK_Click_Exit
   
End Sub

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...