Codigo de validacion
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
Maricela
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
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
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","")
? 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","")
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
>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
