Codigo de validacion

Maricela
29 de Noviembre del 2003
me gustaria que alguien me ayudara para cvalidar un campo de caracter, es decir, que solo me acepte letras para introducir nombres, lo he hecho con la validacion normal pero no me acepta ni espacios en blanco ayudenme porfavor es para un trabajo de la escuela y me urge gracias
Maricela

sergio_jg
29 de Noviembre del 2003
En el evento KeyPress poné el siguiente código
IF UPPER(CHR(m.nKeyCode)) < "A" OR UPPER(CHR(m.nKeyCode)) > "Z") AND m.nKeyCode != 32 AND m.nKeyCode != 127
NODEFAULT
KEYBOARD ""
ENDIF

* El valor 32 hace referencia al espacio en blanco
* y el valor 127 es el BackSpace (para poder borrar)
* deberías agregar otras teclas como las flechas y el tabulador

Luisen98
29 de Noviembre del 2003
EJ:
? TieneNumeros("VFP")
? TieneNumeros("VFP8")

por Carlos Yohn Zubiria
FUNCTION TieneNumeros
lparameters m.cadena
RETURN isdigit(m.cadena) or iif(len(m.cadena) < 2, .f.,TieneNumeros(substr(m.cadena, 2)))


por Luis María Guayán
FUNCTION TieneNumeros(tcCadena)
RETURN tcCadena # CHRTRAN(tcCadena,"0123456789","")


rdavidsm
29 de Noviembre del 2003
Prueba con esta máscara: !

David S.

Luisen98
29 de Noviembre del 2003
mmm que raro que no funcione.

>que solo me acepte letras
>pero no me acepta ni espacios en blanco
Prueba esto, en el VALID de tu cuadro de Texto.

LOCAL mVartxt,mLargo,mCarac

mVarTxt=ALLTRIM(This.Value)
mLargo=LEN(mVarTxt)
mCarac=""
FOR i=1 TO mlargo
mCarac=SUBSTR(mVarTxt,i,1)
* 65-90 -->A-Z 32=espacio en blanco
DO CASE
CASE ASC(mCarac)>=65 AND ASC(mCarac)<=90
* Todo bien
CASE ASC(mCarac)=32
* Todo bien
OTHERWISE
RETURN .F.
* Exit
ENDCASE
ENDFOR