elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ayuda con procedimiento
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con procedimiento  (Leído 3,357 veces)
4D1cTo

Desconectado Desconectado

Mensajes: 168



Ver Perfil
ayuda con procedimiento
« en: 12 Febrero 2008, 05:30 am »

estoy realizando un procedimiento para validar datos que sean solo de tipo numerico

Sub Valida(txtVar, error)
Dim error As String
If IsNumeric(txtVar) = False Then
   MsgBox ("Error en (" & error & ")")
End If
End Sub

No se donde esta el error , lo llamaria de la siguiente manera

Valida (txtValida,Celular)

yo quiero que valide el txtValida y en la parte del error muestre "Error en Celular"

se entiende ?
gracias


En línea

[ Linux Registered User #348950 ]
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: ayuda con procedimiento
« Respuesta #1 en: 12 Febrero 2008, 12:17 pm »

Y por q no haces q el textbox en cuestion solo acepte numeros y ya esta??

Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 8 Then Exit Sub

If KeyAscii < 48 Or KeyAscii > 58 Then
KeyAscii = 0

End If

End Sub


En línea

4D1cTo

Desconectado Desconectado

Mensajes: 168



Ver Perfil
Re: ayuda con procedimiento
« Respuesta #2 en: 12 Febrero 2008, 12:24 pm »

porque tengo alrededor de 30 textbox para validar  :laugh:
En línea

[ Linux Registered User #348950 ]
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: ayuda con procedimiento
« Respuesta #3 en: 12 Febrero 2008, 12:29 pm »

Pues los llamas a todos igual (vamos creas una matriz de controles) y pegas el mismo codigo:

Código:
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub

If KeyAscii < 48 Or KeyAscii > 58 Then
KeyAscii = 0

End If
End Sub

Y solucionado, ninguno admite letras ;)
En línea

4D1cTo

Desconectado Desconectado

Mensajes: 168



Ver Perfil
Re: ayuda con procedimiento
« Respuesta #4 en: 12 Febrero 2008, 12:31 pm »

esos txt despues van a una base de datos

y si todos tienen el mismo nombre se me lia  :-X
En línea

[ Linux Registered User #348950 ]
~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: ayuda con procedimiento
« Respuesta #5 en: 12 Febrero 2008, 12:48 pm »

Te refieres a ellos por su index, por ej text1(25).text...

A mi me parece mas practico q andar llamando a una funcion todo el rato, pero weno si kieres la funcion kedaria asi:

Citar
Sub Validar(txt As TextBox, Error As String)
    Dim n As Integer, Digito As String * 1
    For n = 1 To Len(txt.Text)
        Digito = Mid(txt.Text, n, 1)
        If Asc(Digito) < 48 Or Asc(Digito) > 58 Then
            MsgBox "Error en (" & Error & ")"
            Exit Sub
        End If
    Next n
End Sub


Private Sub Command1_Click()
    Call Validar(Text1, "Celular")
End Sub

Si tiene una sla letra el textbox salta error, si no no ;)
En línea

4D1cTo

Desconectado Desconectado

Mensajes: 168



Ver Perfil
Re: ayuda con procedimiento
« Respuesta #6 en: 12 Febrero 2008, 13:15 pm »

muchas gracias , ahora a renegar con el ado  ;D
En línea

[ Linux Registered User #348950 ]
black_jjk

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: ayuda con procedimiento
« Respuesta #7 en: 18 Febrero 2008, 20:08 pm »

Lo que ha dicho EON es correcto, ese es el camino que deberías seguir si estas apenas diseñando tu programa o si tuvieras ganas de cambiarle el nombre a tus controles y crear una matríz de controles, pero por lo visto de da flojera o simplemente no te gusta la idea, tú código esta mal desde un principio:

Citar
Sub Valida(txtVar, error)
Dim error As String
Si pretendes pasar "error" como argumento para tu función debería de quedar así:
Código:
Fuction Validar(ElTexto As String, QueError As String)
If Not IsNumeric(ElTexto)Then
   MsgBox ("Error en (" & QueError & ")")
End If

Porque al declarar otra vez la error como String en la segunda linea de tu código eliminas el argumento que habías pasado.
End Function
En línea

Chefito

Desconectado Desconectado

Mensajes: 122



Ver Perfil WWW
Re: ayuda con procedimiento
« Respuesta #8 en: 19 Febrero 2008, 03:54 am »

Mmmmm, por lo que veo es un número de teléfono lo que quiere tratar (por lo de celular). Hay que tener en cuenta que la función IsNumeric da como verdadero a un número con una coma o varios puntos (incluso puntos seguidos, haz la prueba), según la configuración del caracter decimal. Por eso, cuidado! que lo mismo no le interesa que le entre esos caracteres ;) (y menos puntos a gogo :)). Una forma de solucionarlo sería quitando estos caracteres con la función replace (ejem: texto=replace(texto,",",""). Pero hay no solo acaba el problema, sino que tambien acepta números como 2,342342E+22, ya que vienen de los tipos single y double del vb. Más para sustituir con replace jajajajaja. Pero sigue habiendo más problemas........ también da como verdadero los números hexadecimales (&had) y octales (&34)....también el signo más y menos (+,-) al principio del número....puffffff Más sustituciones. Y quien sabe que más aceptará  :rolleyes:.
Ya se que son casos raros de ver, pero todo puede pasar.....y son fallos.
Al final pienso que se debe restringir la entrada de teclas con el evento keypress o hacer lo que dice eon....revisar los caracteres uno a uno.
Saludos.
P.D. Todas estas sustituciones se deberían realizar despues de que IsNumeric hubiese dado verdadero al número. Pero sigo pensando que no es lo más correcto.
« Última modificación: 19 Febrero 2008, 04:03 am por Chefito » En línea

Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda procedimiento Pascal
Programación General
manu3742 3 2,858 Último mensaje 20 Abril 2011, 17:48 pm
por manu3742
AYUDA.PROCEDIMIENTO PARA DAR DE ALTA. PASCAL
Programación General
manu3742 3 4,834 Último mensaje 25 Abril 2011, 17:44 pm
por d(-_-)b
Ayuda con procedimiento
.NET (C#, VB.NET, ASP)
SγиtαxEяяoя 3 2,500 Último mensaje 10 Julio 2013, 21:10 pm
por SγиtαxEяяoя
Ayuda: Detener procedimiento
.NET (C#, VB.NET, ASP)
Tomas1982 1 1,764 Último mensaje 8 Septiembre 2016, 23:14 pm
por Eleкtro
MOVIDO: Ayuda: Detener procedimiento
Programación Visual Basic
Eleкtro 0 1,831 Último mensaje 8 Septiembre 2016, 22:35 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines