FoxPro/Visual FoxPro - Por favor necesito una ayuda

 
Vista:

Por favor necesito una ayuda

Publicado por Viviana (3 intervenciones) el 29/01/2007 02:39:48
Buenas noches a todos, estoy muy agradecida que estos sitios existan, bueno soy nueva en foxpro, y tengo un pequeño problema, estoy realizando un modulo de seguridad y me da un error de incompatibilidad de operando.... por favor si alguien me puede ayudar le estaria muy agradecida, esta e sla programacion que estoy colocando:
USE usuario

go top

locate for thisform.combo1.value=usuario and thisform.text1.value=clave

if found()

messagebox("Bienvenido a S.I.A.V.I")

*release thisform

else
messagebox("ERROR, POR FAVOR INTENTE NUEVAMENTE")
ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de juanjo

RE:Por favor necesito una ayuda

Publicado por juanjo (110 intervenciones) el 29/01/2007 03:22:16
tienes razon en tu opinion sobre esta pagina
te voy dar programacion que he aprendido aca y si ahun estoy mal los masters de esta pagina seguro lo optimizaran.
USE usuario

go top

locate for thisform.combo1.value=usuario and thisform.text1.value=clave

if found()

messagebox("Bienvenido a S.I.A.V.I")

*release thisform

else
messagebox("ERROR, POR FAVOR INTENTE NUEVAMENTE")
ENDIF
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
lo cambiaria yo por:

select 1
use nombredetabla

locate for (thisform.combo?.value)==str(<depende de tu tipo de dato>usuario) and (thisform.text?.value)==str(clave)
if found()
messagebox("Bienvenido a S.I.A.V.I")
else
messagebox("ERROR, POR FAVOR INTENTE NUEVAMENTE")
thisform release
endif

p.d
tambien soy novato to esto lo he aprendido aqui.
saludos desde MEX.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Por favor necesito una ayuda

Publicado por neo (1604 intervenciones) el 30/01/2007 03:15:58
Saludos...

Otra opcion:

select 1
go top
locate for Usuario.clave=thisform.text1.value and usuario.nombre=Thisform.combo1.value
if found() then
messagebox("Bienvenido a S.I.A.V.I")
else
messagebox("ERROR, POR FAVOR INTENTE NUEVAMENTE",0+48,"ERROR")
Thisform.combo1.value=""
Thisform.text1.value=0

Thisform.combo1.Setfocus()
ENDIF


Suerte►
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por favor necesito una ayuda

Publicado por Viviana (3 intervenciones) el 30/01/2007 16:05:51
Hola buenos dias, aun estoy con mi problema de vfp con decirte que me subio anoche la tension por este sistema que tengo que entregar, a lo que voy, bueno coloque este codigo que me pasastes y bueno persiste el problema, me percate que el valor de la clave esta en numerico y bueno no creo que ese sea el problema de todo esto porque en el codigo que me enviastes le das velor de =0, bueno amigo disculpa si digo incohernecias, a veces las novatas como yo cometen este tipo de problemas..
Saludos desde venezuela, espero puedas aconsejarme si no es mucha molestia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Por favor necesito una ayuda

Publicado por Luighi (105 intervenciones) el 30/01/2007 06:01:44
hola
bueno, ante todo es importante entender algunos conceptos a la hora de programar en vfp
pero vayamos directo al error
el error que dice: incompatibilidad de operando
sucede por dos cosas
uno, al proporcionarle un valor a un programa o funcion del tipo que no es el esperado, ejemplo, val(20), eso da error porque esa funcion espera una cadena de caracteres y no un numero
el otro caso de error se da cuando comparamos dos valores que no son del mismo tipo de dato, eso creo que es lo que te esta sucediendo
el error se esta dando en la siguiente linea que pones:

locate for thisform.combo1.value=usuario and thisform.text1.value=clave

supongo que usuario y clave son campos de la tabla usuario
pero no se de que tipo de dato lo seran
es posible que estes inicializando valores para combo1 y text1
quizas en el evento init o load del formulario
como veras, los datos que proporcionas son insuficientes pero vamos a suponer algunas cosas...

estoy casi convencido de que al comparar

thisform.combo1.value = usuario ó thisform.text1.value = clave

este pasando que alguno de los cuatro elementos: combo1, usuario, text1 y clave; no este teniendo el tipo de dato esperado

por lo que veo y la experiencia, deben tratarse de datos del tipo caracter
si es asi entonces aseguramente solamente de que tanto el combo1 como text1 se esten inicializando como valores del tipo caracter

quizas el campo clave es numerico entonces debes cerciorarte de que text1 mantenga un valor numerico tambien, eso lo puedes establecer en el evento init del formulario:

thisform.text1.value=0

es solo una forma de averiguar el problema y darle una solucion sin embargo tu mejor que todos nosotros conoces mejor como es que estas haciendo las cosas alli

si tienes algunas otras dudas no dudes en preguntar que para eso estamos

saludos desde peru
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar