• Jueves 14 de Noviembre de 2024, 04:35

Autor Tema:  Validacion De Datos  (Leído 4577 veces)

Miguelencho

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Validacion De Datos
« en: Viernes 7 de Mayo de 2004, 23:17 »
0
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
"The difference between the dreams and the accomplishment, is pure desire"

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Validacion De Datos
« Respuesta #1 en: Viernes 7 de Mayo de 2004, 23:25 »
0
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.
La luz que sólo se ilumina a sí misma, es oscuridad.

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Validacion De Datos
« Respuesta #2 en: Sábado 8 de Mayo de 2004, 02:40 »
0
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.  
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

Shiquilla

  • Miembro MUY activo
  • ***
  • Mensajes: 188
  • Nacionalidad: es
    • Ver Perfil
    • http://www.songesoft.com
Re: Validacion De Datos
« Respuesta #3 en: Sábado 8 de Mayo de 2004, 12:04 »
0
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.
« §hÿqµïllæ »

general

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Validacion De Datos
« Respuesta #4 en: Lunes 17 de Mayo de 2004, 04:36 »
0
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 "."   ;)

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Validacion De Datos
« Respuesta #5 en: Lunes 17 de Mayo de 2004, 07:05 »
0
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.  
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...