1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[VB6] textbox error - run-time 13

Discussão em 'Programação' iniciada por Calenulma, 12 de Janeiro de 2009. (Respostas: 2; Visualizações: 1609)

  1. Estou a tentar fazer um programa MUITO básico em VB6, apenas de validação de valores, para definir se está tudo OK.
    Uma mariquice que quero introduzir é a alteração de cores de fundo nas caixas de texto.
    A outra é a validação de valores entre 1 e 99.

    Código:
    If Text2.Text > 0 And Text2.Text < 100 Then
        Label1.Caption = "OK"
    Else
    Label1.Caption = "!!"
    End If
    Ou seja:
    Se o valor for entre 1 e 99, a Label diz que o valor está OK mas se for diferente disso, avisa o erro.

    O problema:
    Quando APAGO o texto na TextBox, com a aplicação a correr, dá-me o seguinte erro:
    [​IMG]

    No Debug, ele aponta-me para a linha
    Código:
    If Text2.Text > 0 And Text2.Text < 100 Then
    Escrevo algo e funciona tudo bem mas ao apagar o texto ou escrever texto, berra.


    Alguém tem alguma ideia? Terei que declarar ali alguma variável?
    Os meus conhecimentos limitam-se ao que se dá na escola...
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Type Mismatch = estás a tentar comparar tipos diferentes.

    Text2.Text tem uma String. 0 e 100 são Integers.

    Experimenta trocar Text2.Text por Val(Text2.Text). Em lugar do Val deves usar o CInt, mas o teu problema é o facto da textbox estar vazia. Isso não corresponde a um número. No entanto, o Val transforma a string vazia em 0, o que passa a ser válido.
     
    Última edição: 12 de Janeiro de 2009
  3. Bastou. Pelo menos para aquilo que eu quero.
    Já não mexia nisto há tanto tempo que já nem me lembrava. "Val" para assumir o valor que está dentro da caixa de texto...

    Fiz uma validação para valores >= 1 And <=99 e outro para valores <1 Or >99 e ficou porreiro (ou pelo menos a funcionar).

    Código:
    If Val(Text2.Text) > 0 And Val(Text2.Text) < 100 Then
        Label1.Caption = "OK"
    ElseIf Val(Text2.Text) < 1 Or Val(Text2.Text) > 99 Then
        Label1.Caption = "!!"
    Else
        Label1.Caption = "!!"
    End If
    Obrigado!!
     

Partilhar esta Página