No permitir ingreso de caracteres especiales, números y de la Ñ en un text

Me puedes ayudar indicándome como puedo hacer para 'No permitir ingreso de caracteres especiales, números y de la Ñ en un text'.

Y por favor y si ya tengo guardados estos datos con caracteres especiales, números y/o Ñ en mi base como puedo validar para detectar estos registros.

1 Respuesta

Respuesta
1

Para evitar el ingreso, coloca siempre una A en la propiedad format del text. 'A' Solo permite el ingreso de caracteres alfabéticos en el control... el problema es que no te permite espacios entre las cadenas de texto... :/ Con ésto, evitas también la digitación de caracteres espciales, tales como los signos de puntuación o los signos o símbolos del teclado (&%$·?@)...

Para evitar ingresar una ñ, no se puede usar un validador basado en el KeyPress del texto a través de la asignación de la "llave o código" de tecla...! :(

Pero podes usar la misma validación anterior... solo que esta ves, si en el enevto keypress y no el valid... osea, esto por si deseas 'desencadenar' la validación a medida que escribes y no cuando intentas salir del text.

La única linea que vas a cambia es esta:

lcMaEmp1 = StrTran(ALLTRIM(THISFORM.Text2.Value), "Ñ", " " )

Ves que cambiamos el espacio en blanco por una Ñ, con esto le decimos a la función que detecte la primera aparición de una Ñ en la cadena o valor del texto y que la borre, dejando el espacio en blanco " "... tu puedes colocar otra regla si quieres si

Bien... proba y me avisas! :) :)

Cualquier cosa avisame... si no te contesto de inemdiato, es porque ando fuera, pero en cuanto regrese por la tarde, atenderé todas las consultas con mucho gusto!

No olvides visitar mi blog... algo desactualizado pero ya pronto le meteré nuevo material!

Saludos!

Desde Managua, Nicaragua!

11:25am

Estimado RAVENN, por favor me puedes ayudar indicándome como puedo hacer para 'No permitir ingreso de caracteres especiales, números y de la Ñ en un text'.


Y por favor y si ya tengo guardados estos datos con caracteres especiales, números y/o Ñ en mi base como puedo validar para detectar estos registros, mil gracias.

La respuesta que te escribí anteriormente, ¿cuándo abriste esta consulta no te funciono? ¿OO? Yo lo probé en un formulario y me funciono. Avisame man!

no mi estimado no me sirvió, mas bien te hago nuevamente las preguntas ya que me indicaste que estabas fuera, mira encontré este código en google en parte sirve pero en parte no, al querer borrar un carácter con supr me borra hacia la izquierda y no a la derecha como debe ser, es decir es un poco molesto, no se si tu me lo puedes aclarar un poco por favor, mi
permitido='ABCDEFGHIJKabcdefghijk '+CHR(127)+CHR(27)+CHR(13)
IF !(CHR(LASTKEY()) $ permitido)
KEYBOARD CHR(127)
Endif

Disculpa la tardanza pero ayersetuve fuera de la ciudad. Según el código que tenes ahí, también lo podes hacer así! :)

Te falta declarar 'permitido' como variable LOCAL. Mmmmm... ese código creo que es mas funcional si esta dentro del evento InteractiveChange... aunque pruébalo en el valid también.

LOCAL permitido
**--
permitido='ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz'+CHR(127)+CHR(27)+CHR(13)
**--
IF !(CHR(LASTKEY()) $ permitido)
**--Simulamos BackSpace
**--para borrar el carácter
KEYBOARD CHR(127)
Endif
**--//

'permitido' almacena precisamente los caracteres permitidos que se pueden introducir mediante el teclado. Si te fijas, hay solo letras mayúsculas (menos la Ñ) y minúsculas. También hay un espacio entre mayúsculas y minúsculas, con lo cual podes meter espacios en blanco también. Con 'permitido' validamos si la ultima tecla presionada corresponde a uno de los caracteres permitidos y si no corresponde, borramos con un backspace autosimulado. :) :)

Ahora... para validar una serie de datos guardados en un campo de una tabla, podes usar esto. Yo uso un cusor temporal llamado 'temp1' con un campo 'nombre' donde cargo algunos nombres con signos y números entre sus letras y algunas 'ñ'. Luego le aplico la validación y me funciona al 100%. Con esto, 'desarmamos' la cadena que comprenden los caracteres contenidos en el campo. Escaneamos el cursor (o tabla en tu caso) y por cada registro procesamos. Separamos una a una las letras de toda la cadena del registro y evaluamos si dicho carácter esta "contenido" en la cadena de caracteres permitidos (variable 'permitido'). Si esta contenido, la evaluación pasa por alto el carácter y continua al otro... hasta terminar la cadena. Luego, pasamos al siguiente registro de la tabla hasta llegar al final. Si tenemos "Juan Yañez" en el campo, podes ver que hay una ñ no permitida. Entonces, evaluamos: J (permitida) - u (permitida) - a (permitida) - n (permitida) - " " (espacio permitido) - Y (permitida) - a (permitida) ñ (NO PERMITIDA, AQUÍ TOMAS LA ACCIÓN QUE QUIERES PARA TRATAR EL CARÁCTER) ... y así hasta terminar la cadena. Aquí el código:

LOCAL lcNombre, lnLen, lnConteo, lcNuevoNombre
LOCAL permitido
**--Extension de cadena: siempre
**--inicia en 1
lnConteo = 1
**--Caracteres permitido
permitido='ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz'
**--
**--
SELECT temp1
GO TOP
**--Iniciamos escaneo
SCAN
**--Cargamos el valor del campo
lcNombre = ALLTRIM(temp1.nombre)
**--Cargamos extensión de caracteres
lnLen = LEN(ALLTRIM(lcNombre))
**======================
**--Desencadenamos bucle
FOR i = lnLen TO 1 STEP -1
**--Validamos carácter por carácter de la cadena
lcNuevoNombre = (SUBSTR(lcNombre, lnConteo, 1))
**--Si el carácter no está incluido
**--en 'permitido', se valida.
IF !(lcNuevoNombre) $ permitido
**--Si hay un carácter no permitido,
**--tomamos acción aquí.
**Nombre que contiente el carácter no permitido
MESSAGEBOX(lcNombre)
**Carácter no permitido
MESSAGEBOX(lcNuevoNombre)
ENDIF
**--Recargamos variable para
**--pasar al siguiente carácter
lnConteo = lnConteo + 1
**--Si el conteo es igual a la extensión
**--es porque se termina la expresión.
IF lnConteo = lnLen
lnConteo = 1
ENDIF
**--//
ENDFOR
**--//
ENDSCAN
**--//

Coloca el código e un botón y luego proba.

Avisame cualquier cosa. Estoy a la orden.

Un abrazo, desde Managua, Nicaragua. :D xD

Ravenn :D :D :D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas