FoxPro/Visual FoxPro - Buscar si el registro ya existe

 
Vista:

Buscar si el registro ya existe

Publicado por Juancho (22 intervenciones) el 31/08/2009 17:46:09
Hola señores como estas tengo un problema quiero buscar si el registro en la tabla ventas si ya existe.
Pero con este codigo que esta abajo por mas que no tenga el registro me dice que ya existe. Favor si pueden ayudarme

SELECT ventas
if Thisform.Txtnumorden.Value = numorden
*Locate for numorden = numorden
IF FOUND()
=messagebox("Número de Artículo duplicado" + CHR(13)+ CHR(13)+ "Seleccione otro Artículo",0+48,"Administrador del Sistema")
thisform.txtnumorden.enabled = .t.
Thisform.txtnumorden.Value = ""
Thisform.txtnumorden.Setfocus
Return .F.

ELSE
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 Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Buscar si el registro ya existe

Publicado por Mauricio (1541 intervenciones) el 31/08/2009 18:20:58
Como quieres que te funcione el SEEK si aca no esta porque indice esta ordenada la tabla?
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:Buscar si el registro ya existe

Publicado por Dario (1 intervención) el 31/08/2009 18:41:06
Cuando usas el Locate no hace falta hacer el SEEK.
No lo esta encontrado porque debe haber una diferencia en los campos, si son caracteres fijate de hacer un alltrim().

Lo que si, si la tabla es muy grande te combiene ordenarla y hacer un seek en ves de locate.
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
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Buscar si el registro ya existe

Publicado por Mauricio (1541 intervenciones) el 31/08/2009 22:48:26
Entonces porque esta comentariado LOCATE
Dario, asi funciona FOUND?
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:Buscar si el registro ya existe

Publicado por juan286 (185 intervenciones) el 01/09/2009 03:18:33
Mira tu problema es que haces solo una comparacion. hay varias formas de hacer esto yo empleo cmo 5 formas distintas de buscar un registro pero para tu caso serian 3 una empleado SEEK otra LOCATE y por ultimo empleando una consulya SQL

empezemos con e LOCATE

SELECT ventas
LOCATE FOR(ventas.numorden = VAL((thisform.Txtnumorden.Value)))

IF FOUND()
=messagebox("Número de Artículo duplicado" + CHR(13)+ CHR(13)+ "Seleccione otro Artículo",0+48,"Administrador del Sistema")
thisform.txtnumorden.enabled = .t.
Thisform.txtnumorden.Value = ""
Thisform.txtnumorden.Setfocus
Return .F.
thisform.Refresh
ELSE
MESSAGEBOX("Producto No Registrado ")
ENDIF
seria algo asi la verdad necesitas modificar un poco nada mas.

Ahora es el turno del SEEK

clave = INT(((thisform.Txtnumorden.Value)))
SELECT ventas
IF SEEK(clave)
=messagebox("Número de Artículo duplicado" + CHR(13)+ CHR(13)+ "Seleccione otro Artículo",0+48,"Administrador del Sistema")
thisform.txtnumorden.enabled = .t.
Thisform.txtnumorden.Value = ""
Thisform.txtnumorden.Setfocus
Return .F.
thisform.Refresh

ELSE
MESSAGEBOX("Producto No Registrado ")
ENDIF
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:Buscar si el registro ya existe

Publicado por Juan Pablo (94 intervenciones) el 01/09/2009 22:41:22
Tiguere utiliza la base de datos. Talvez de esta forma te funcione mejor y sin mucho esfuerzo y facil d hacer.

Esto esta para base de datos SQL Server pero asi mismo lo puede adaptar a otra base de datos.

Muy Facil.

LPARAMETERS lcID

thisform.lcnumcur="C_"+SYS(2015)

lnsQLPrestamos = "SELECT * FROM CLIENTES where clientes.idclientes = '"+ALLTRIM(lcID)+"'"
SQLEXEC(tienda,lnsQLPrestamos,thisform.lcnumcur)
SELECT(thisform.lcnumcur)

GO TOP
IF RECCOUNT()>0

RETURN .T.
ELSE
RETURN .F.

ENDIF
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