[VB6] textbox error - run-time 13

Calenulma

Membro
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:
error.png


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...
 
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:
trocar Text2.Text por Val(Text2.Text)
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!!
 
Back
Topo