SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Miguelencho en Viernes 7 de Mayo de 2004, 23:17

Título: Validacion De Datos
Publicado por: Miguelencho en Viernes 7 de Mayo de 2004, 23:17
Estimados amigos, mas preguntas jeje, si quiero validar los datos que se introducen en un textbox para que cuando mis varibles la recojan para hacer operaciones no mande error el programa

como diferencio si el usuario introdujo una cadena de caracter o un numero entero

quiero hacer algo asi

dim cantidad as integer
cantidad = txtlectura.text
if cantidad (aqui esta el problema)
msgbox (blablabla)

como hago para saber si el usuario introdujo los datos correcots
Título: Re: Validacion De Datos
Publicado por: Juanolo en Viernes 7 de Mayo de 2004, 23:25
En principio, se me viene a la mente la función Isnumeric().
If Isnumeric(text1.text) then
      'Es Numero
else
      'Es Texto
end if

Independientemente, claro está, de que primero valides que haya algo en el cuadro de texto.

Debes considerar, además, la posibilidad de usar un control Maskedbox en lugar de un cuadro de texto. Así te asegurarías de que el usuario sólo pueda ingresar números (entre otras condiciones que le puedes dar)

Espero sirva.
Título: Re: Validacion De Datos
Publicado por: elmango80 en Sábado 8 de Mayo de 2004, 02:40
El problema de utilizar Isnumeric es que si text1.text es igual a 123a te lo va a tomar como falso osea que es una palabra, lo cual es falso...

Otra cosa, si solamente quieres que el usuario pueda introducir numero y no quieres utilizar un MaskEdit sino un TextBox comun y corriente entonces utiliza el siguiente codigo...

Código: Text
  1.  
  2. Private Sub Text1_KeyPress(KeyAscii As Integer)
  3. Dim strNumeros As String
  4.    
  5.     strNumeros = "1234567890" & Chr(8)
  6.     If InStr(1, strNumeros, Chr(KeyAscii), vbBinaryCompare) = 0 Then
  7.         KeyAscii = 0
  8.     End If
  9. End Sub
  10.  
  11.  
Título: Re: Validacion De Datos
Publicado por: Shiquilla en Sábado 8 de Mayo de 2004, 12:04
Yo utilizo este código, si el carácter que ha metido no es un Número le saco un Beep (sonido vaya).

Código: Text
  1. Private Sub Text1_KeyPress(KeyAscii As Integer)
  2.    If KeyAscii <> 8 Then
  3.       If Not IsNumeric(Chr(KeyAscii)) Then
  4.          Beep
  5.          KeyAscii = 0
  6.       End If
  7.    End If
  8. End Sub
  9.  

Suerte.
Título: Re: Validacion De Datos
Publicado por: general en Lunes 17 de Mayo de 2004, 04:36
Un Saludo a Todos :hola:
..

-   Desearia conocer un procedimiento para evitar que el usuario escriba como primer caracter el "0"

     por ejemplo: no permitir la cadena numerica "034" forzando al usuario
     a escribir "34"

Gracias por su atencion.

pd. faltó agregar a sus soluciones el punto decimal "."   ;)
Título: Re: Validacion De Datos
Publicado por: elmango80 en Lunes 17 de Mayo de 2004, 07:05
Hola general!

Si quieres validar que no se pueda introducir el 0 como primer numero y tambien quieres validar los decimales, entonces no podras introducir ningun numero comprendido entre 0 y 0,9999 ... asi que no deberias validar que el primer numero sea 0... De todos modos aqui esta el codigo que querias pero con ese detalle.

Código: Text
  1.  
  2. Private Sub Text1_KeyPress(KeyAscii As Integer)
  3. Dim strNumeros As String
  4.    
  5.     strNumeros = "1234567890.," & Chr(8)
  6.     If Len(Text1.Text) = 0 And Chr(KeyAscii) = 0 Then
  7.         KeyAscii = 0
  8.     Else
  9.         If InStr(1, strNumeros, Chr(KeyAscii), vbBinaryCompare) = 0 Then
  10.             KeyAscii = 0
  11.         End If
  12.     End If
  13.  
  14. End Sub
  15.  
  16.