Limites a un TextBox

03/02/2005 - 00:30 por Esteban | Informe spam
hola amigos, mi nombre es Esteban y hace mucho hice uso de este foro que me ayudo michisimo. Ahora vuelvo a recurrir a uds a ver si me pueden ayudar. Tengo un formulario con 5 textboxs:
1º. un maximo de 6 numeros
2º. un maximo de 5 numeros
3º. un maximo de 40 letras
4º un maximo de 6 numeros
5º. un maximo de 20 numeros

Mi problema es en poner esos limites, porque no se como definir la cantidad de numeros que quiero por textbox, no se si me explico, tal vez no, ya que los textbox siguen haciendo de las suyas :)
espero su pronta ayuda, gracias, Esteban
 

Leer las respuestas

#1 Héctor Miguel
03/02/2005 - 03:45 | Informe spam
hola, Esteban !

... formulario con 5 textboxs:
1º. un maximo de 6 numeros
2º. un maximo de 5 numeros
3º. un maximo de 40 letras
4º un maximo de 6 numeros
5º. un maximo de 20 numeros
... poner esos limites... como definir la cantidad de numeros que quiero por textbox [...]



podrias hacer que el codigo 'revise/valide' si los caracteres en cada textbox son de los 'validos/permitidos'
no se si quisieras 'revisar' ANTES de que el usuario 'abandone' el textbox, o 'en tiempo real' [por cada 'teclazo']
[estoy suponiendo lo segundo]
como seria un codigo [practicamente] 'igual' [y extenso] para los eventos ->'de cada control<-
te propongo una funcion 'generalizada' que 'acepte' parametros que le sean pasados por cada control como...
tipo [numero/texto]... limite [de numeros/caracteres]... largo [cuantos 'llevamos']... y posicion ['en cual vamos']
para el 'tipo' estoy 'usando' el numero 1 para 'validar' numeros y el numero 2 para 'validar' textos/letras
[puedes agregar/modificar para otros/mas 'casos' si fuera necesario]
despues, en el evento '_change' de cada control revisamos [a traves de esa funcion] lo que se va 'tecleando'.
[obviamente es SOLO una forma de varias mas que pudieran surgir de acuerdo a comentarios posteriores] :))

si cualquier duda... ¿comentas?
saludos,
hector.
en el modulo de codigo del formulario ==' primero la funcion...
Private Function Revisar( _
ByVal Tipo As Byte, _
ByVal Limite As Byte, _
ByVal Largo As Byte, _
ByVal Pos As Byte) As Boolean
Dim Mensaje As String
If Largo > Limite Then Mensaje = "Límite excedido": GoTo Avisar
Números:
If Tipo = 2 Then GoTo Textos
Select Case Pos
Case 48 To 57
Case Else: Mensaje = "Introduce sólamente números."
End Select
GoTo Avisar
Textos:
Select Case Pos
Case 65 To 90
Case Else: Mensaje = "Introduce sólamente letras."
End Select
Avisar:
If Mensaje <> "" Then MsgBox Mensaje
End Function
' y en el evento '_change' de cada uno de los textboxes [p.ej.]
Private Sub TextBox1_Change()
With TextBox1
If Len(.Text) > 0 Then Revisar 1, 6, Len(.Text), Asc(UCase(Right(.Text, 1)))
End With
End Sub
Private Sub TextBox2_Change()
With TextBox2
If Len(.Text) > 0 Then Revisar 1, 5, Len(.Text), Asc(UCase(Right(.Text, 1)))
End With
End Sub
Private Sub TextBox3_Change()
With TextBox3
If Len(.Text) > 0 Then Revisar 2, 40, Len(.Text), Asc(UCase(Right(.Text, 1)))
End With
End Sub
Private Sub TextBox4_Change()
With TextBox4
If Len(.Text) > 0 Then Revisar 1, 6, Len(.Text), Asc(UCase(Right(.Text, 1)))
End With
End Sub
Private Sub TextBox5_Change()
With TextBox5
If Len(.Text) > 0 Then Revisar 1, 20, Len(.Text), Asc(UCase(Right(.Text, 1)))
End With
End Sub

Preguntas similares