Programación General > Visual Basic 6.0 e inferiores

 Solo Numeros En Textbox

<< < (2/2)

supermancito:

--- Citar ---Private Sub Text1_KeyPress(KeyAscii As Integer)
numeros = Chr(KeyAscii)
Print n
If InStr(n, "1234567890") <> 0 Then
KeyAscii = 0
End If
End Sub

--- Fin de la cita ---

mira amigo a mi parecer no creo que tengas que usar ese codigo yo uso uno diferente que me permite ingresar solo numeros y a las ves me deja usar decimales y  usar la tecla enter para poder entrar aver si lo tomas en cuenta  SUERTEEEEEEEEEEEEEE

YO USO ESTE CODIGO:

--- Citar ---Private Sub telf_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57:
Case 32:
Case Else:
MsgBox ("error solo numeros")
End Select
End Sub

--- Fin de la cita ---


:hola:  :hola:  :hola:  :hola:  :hola:  :hola:  :hola:  :hola:  :hola:  :hola: [/color]

ldvgsmca:

--- Cita de: "abelsql3000" --- Ya estoy algo oxidado en vb. He programado antes, pero como lo he dejado ud comprenderan.
Estoy haciendo esta linea de codigo donde intendto restringir el cuadro de texto a solo numeros.
Como veran uso el evento keypress
y la funcion INSTR
Este es el  codigo
Private Sub Text1_KeyPress(KeyAscii As Integer)
numeros = Chr(KeyAscii)
Print n
If InStr(n, "1234567890") <> 0 Then
KeyAscii = 0
End If
End Sub
En que me estoy equivocando amigos programadores
De ante mano les agradesco su aporte. atte Abel.
--- Fin de la cita ---
bueno amigo te envio un excelente ejemplo que he desarrollado para controlar los datos suministrador por en usuario.


esta funcion controla hasta la coma y el punto en los formato de los numero

gbetancourt:
Estimado tengo el mismo problema que lo solucione con el siguiente codigo:

Private Sub caudal_KeyPress(KeyAscii As Integer)
Dim numeros As String * 12
Dim num As String
Dim v As Integer
 numeros = "0123456789," & vbBack
  num = Chr(KeyAscii)
v = InStr(1, numeros, num)
If v = 0 Then
      KeyAscii = 0
End If
End Sub

pero me da un error cuando borro el ultimo digito, o el primero que ingrese, con el backspace.
creo q es debido a que asigno el valor engresado en el textbox a una variable de esta manera.


Public CAU As Single

Private Sub CAUDAL_Change()
CAU = CAUDAL.Text
End Sub

espero me puedan ayudar, de antemano gracias....

m0skit0:
Me vais a perdonar, pero todos aquellos que estáis usando cadenas de caracteres cuando la función os pasa un entero lo estáis haciendo mal.

Una característica fundamental de un programa es que corra rápido. Y bien es conocido que en Visual Basic las cadenas de caracteres son muy lentas de manejar. Es mejor evitar su uso siempre que sea posible. Y desde luego si ya tenemos un número, manejemos números. En vez de una cadena de caracteres con los caracteres válidos, pues un array de sus códigos ASCII. ¿Para qué llamar a InStr(), que lentifica el proceso, y usar cadenas de caracteres que rellenan memoria inútilmente? En fin, que la mejor manera es usar números, que para eso están hechos los computadores, y encima el parámetro pasado por el evento es un Integer. ¿Por qué será?  ;)

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa