Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
Formularios : MaxChar. Limitar el número de caracteres
Autor/es:
Juan M Afán de Ribera
Pregunta : ¿Hay alguna manera en que pueda limitar el número de caracteres que se puedan introducir en un cuadro de texto de un formulario?
Respuesta : Puedes utilizar una función personalizada para la ocasión. Sólo tienes que asociarla al evento Al cambiar (Change) del cuadro de texto correspondiente. Esta función tiene los siguientes

Argumentos

ArgumentoDescripción
nCharRequerido. El número límite de caracteres que se podrán introducir en el cuadro de texto
MsgOpcional. Un valor de tipo cadena, con el mensaje que se mostrará cada vez que se intente escribir más allá del límite establecido.
Ejemplo de uso
' Asociándolo directamente a la casilla del evento
= MaxChar(15)

' o asociándolo dentro del código del evento
Call MaxChar(15)
puedes copiar este código en un módulo estandar
'---------------------------------------------------------
'
' MaxChar
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
'     accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Public Function MaxChar( _
                        nChar As Long, _
                        Optional Msg As String)
    
    With Screen.ActiveControl
        ' si el número de caracteres supera
        ' el límite impuesto por el usuario
        If Len(.Text) > nChar Then
            ' eliminamos todos los caracteres
            ' que excedan del número
            .Text = Left$(.Text, nChar)
            ' ponemos el cursor al final
            .SelStart = nChar
            ' sonido de alarma
            Beep
            ' si se quiere dar un mensaje...
            If Len(Msg) > 0 Then MsgBox Msg
        End If
    End With
    
End Function
'---------------------------------------------------------

Ejemplos:

 

Temas relacionados:

OnlyNumbers. Permitir sólo la entrada de números en un cuadro de texto

OnlyChar. Permitir sólo la entrada de letras en un cuadro de texto

AlphaChar

 

Última actualización: 7/10/2005