Update en tabla de Access desde VFP

126 views
Skip to first unread message

Enrique Martinez Regalado

unread,
Sep 20, 2017, 3:35:56 PM9/20/17
to Comunidad de Visual Foxpro en Español
Hola Saludos a todos los del grupo

mi pregunta es la siguiente si alguien me puede orientar por que no me hace el update en un campo de una tabla de access.

Tengo una tabla llamada pesadas y hago la consulta y todo bien pero cuando quiero hacer un update para actualizar un campo que esta vacio no me lo actualiza.
adjunto la imagen de la tabla y acontinuación pongo el codigo de lo que estoy haciendo.

De antemano les agradezco como siempre su ayuda.

Saludos

Enrique Martinez
Puerto Vallarta
********************************************************************

SET DATE TO dmy
SET CENTURY on

CREATE CURSOR curpesadas ;
  (numid n(4,0), codigo c(15), peso_uni n(14,4), precio n(14,4), tipo c(1), fecha d(10), hora c(10), vendedor c(3), procesado c(1))


lcArchivoMDB="c:\paso\pesadas.accdb" && Mi base de Access 
lcConnStrin="DSN=MS Access Database;Dbq="+lcArchivoMDB+";Uid=;Pwd=;" && Estos datos dependen de la configuración del ODBC 
lnNHandle = SQLSTRINGCONNECT(lcConnStrin) && Realizamos la conexión 
IF lnNHandle > 0 && Si el resultado no es negativo, la conexión fue exitosa 
* extrear informacion 
lcSQL = "select * from pesadas" 
*lcCursor = "pesadas" 
lcCursor = "cpesadas" 
SQLEXEC(lnNHandle,lcSQL,lccursor) 
*SELECT lcSQL

SELECT COUNT(*) FROM cpesadas INTO ARRAY lnCount

if lncount > 0
   select cpesadas
   go top
   do while .not. eof()
      vxid       = (cpesadas.id)
      vxcodigo   = alltrim((cpesadas.codigo))
      vxpeso_uni = val(alltrim((cpesadas.peso_unidad)))
      vxprecio   = val(alltrim(cpesadas.precio))
      vxtipo     = alltrim(cpesadas.tipo)
      vxfecha    = alltrim(cpesadas.fecha)
      vanio      = SUBSTR(vxfecha,1,4)
      vmes       = SUBSTR(vxfecha,6,2)
      vdia       = SUBSTR(vxfecha,9,2)
      vxfecha    = ctod(vdia+'/'+vmes+'/'+vanio)
      vxhora     = alltrim(cpesadas.hora)
      vxvendedor = alltrim(cpesadas.vendedor)
      insert into curpesadas (numid,codigo,peso_uni,precio,tipo,fecha,hora,vendedor,procesado) values (vxid,vxcodigo,vxpeso_uni,vxprecio,vxtipo,vxfecha,vxhora,vxvendedor,'S')

      select cpesadas
      skip
      loop
   enddo
endif
SET STEP ON 

LcTxUpdate="update pesadas set procesado='S' where procesado = ' '" 
retorno = sqlexec(LnNHandle,LcTxUpdate) 



select curpesadas
browse


*-* Cerramos la conexión 
SQLDISCONNECT(lnNHandle) 
endif 
tabla access.jpg

Víctor Hugo Espínola Domínguez

unread,
Sep 20, 2017, 7:15:11 PM9/20/17
to publice...@googlegroups.com
en vez de where procesado = ' '"

Puedes probar

where LEN(TRIM(procesado)) = 0

Saludos,
Víctor.
Lambaré - Paraguay.

Enrique Martinez

unread,
Sep 20, 2017, 7:26:18 PM9/20/17
to Comunidad de Visual Foxpro en Español
muchas gracias por contestar victor hugo lo intenté como me dices, pero me dice que otro dia con mas calma jejejeje, es broma

pero no hace nada.

saludos

Víctor Hugo Espínola Domínguez

unread,
Sep 20, 2017, 7:30:04 PM9/20/17
to publice...@googlegroups.com
Debes averiguar que contiene el campo procesado, tráelo a un cursor y anliza el contenido.

Saludos,
Víctor.
Lambaré - Paraguay.


Enrique Martinez

unread,
Sep 20, 2017, 7:50:07 PM9/20/17
to Comunidad de Visual Foxpro en Español
ok eso voy a hacer, muchas gracias y saludos

Enrique Martinez

unread,
Sep 22, 2017, 2:24:31 PM9/22/17
to Comunidad de Visual Foxpro en Español
Victor Hugo revise el cursor y el valor que trae ese campo es .NULL.

por eso no reemplazaba nada

Víctor Hugo Espínola Domínguez

unread,
Sep 22, 2017, 5:56:14 PM9/22/17
to publice...@googlegroups.com
where ISNULL(procesado)

Saludos,
Víctor.
Lambaré - Paraguay.


Enrique Martinez

unread,
Sep 22, 2017, 7:55:30 PM9/22/17
to Comunidad de Visual Foxpro en Español
si asi le hice y funcionó muchas gracias por tu ayuda y saludos a todos

Enrique Martinez

unread,
Sep 23, 2017, 3:04:21 PM9/23/17
to Comunidad de Visual Foxpro en Español
muchas gracias como siempre por su ayuda y quedó tal como lo comentas Victor Hugo

LcTxUpdate="update pesadas set procesado='S' where ISNULL(procesado)" 

de antemano agradezco mucho su ayuda

Saludos
Desde Puerto Vallarta, Jalisco México

Víctor Hugo Espínola Domínguez

unread,
Sep 23, 2017, 3:15:26 PM9/23/17
to publice...@googlegroups.com
👍

Saludos,
Víctor.
Lambaré - Paraguay.


Reply all
Reply to author
Forward
0 new messages