No actualiza campos en tabla

Hola muy buenos días.
Tengo un formulario con el siguiente método para hacer la búsqueda de un nombre y las conincidencias me las muestre en un grid:
PUBLIC mbusqueda as string
with thisform.lista
      thisform.lista.recordSource="" 
      thisform.lista.column1.ControlSource="" 
      thisform.lista.column2.controlSource=""
      thisform.lista.column3.controlSource=""
      thisform.lista.column4.controlSource=""
endwith 
mBusqueda= alltrim(UPPER(thisform.tnombre.value))
SELECT 2
select nombres, telefono1, telefono2, telefono3, departamento, extension;
from contactos;
where nombres=mBusqueda into cursor resultado
with thisform.lista
      thisform.lista.recordSource="resultado" 
      thisform.lista.column1.controlSource="resultado.nombres" 
      thisform.lista.column2.controlSource="resultado.telefono1"
      thisform.lista.column3.controlSource="resultado.telefono2"
      thisform.lista.column4.controlSource="resultado.telefono3"
endwith 
PUBLIC mbusqueda as stringwith thisform.lista    
  thisform.lista.recordSource="" thisform.lista.column1.ControlSource=""        thisform.lista.column2.controlSource=""thisform.lista.column3.controlSource=""       thisform.lista.column4.controlSource=""endwith 
mBusqueda= alltrim(UPPER(thisform.tnombre.value))
SELECT 2
select nombres, telefono1, telefono2, telefono3, departamento, extension;from contactos;where nombres=mBusqueda into cursor resultado
with thisform.lista    
  thisform.lista.recordSource="resultado"        thisform.lista.column1.controlSource="resultado.nombres"        thisform.lista.column2.controlSource="resultado.telefono1"       thisform.lista.column3.controlSource="resultado.telefono2"       thisform.lista.column4.controlSource="resultado.telefono3"
endwith
El problema esta en cuando intento actualizar los datos de un registro, siempre me reemplaza el los campos del primer registro, quisiera saber como podría solucionar este inconveniente.
Coloque 2 botones y 1 me guarda registros nuevos haciendo un append blank y sin problemas, el detalles es cuando intento actualizar.
Se me ocurre que el puntero no esta desplazándose en la tabla y que podría capturar el numero de registro y antes de actualizar hacer que el puntero baje hasta ese registro en la tabla.
Creo que se hace con recno() más desconozco la sintaxis del mismo.
De todos modos cualquier solución sera bienvenida, gracias de antemano.

1 Respuesta

Respuesta
1
Con toda la chipazon anterior lo único que estas haciendo es cargar en un cursor tu búsqueda obviamente no actualizara nada por que la haces en el cursor y no la tabla.
with thisform.lista
     .recordSource="" 
 endwith 
mBusqueda= alltrim(UPPER(thisform.tnombre.value))
select nombres, telefono1, telefono2, telefono3, departamento, extension;
from contactos;
where nombres=mBusqueda into cursor resultado READWRITE
with thisform.lista
      .recordSource="resultado" 
      .column1.controlSource="resultado.nombres" 
      .column2.controlSource="resultado.telefono1"
      .column3.controlSource="resultado.telefono2"
      .column4.controlSource="resultado.telefono3"
      .refresh
Endwith
Nada más en vez de todo el código que pusiste arriba, hasta allí te carga el grid .
Si quieres cargar uno nuevo pones un botón que haga un appen blank y llenas todo en el grid pero en realidad los cambios o lo nuevo que agregues se esta hacien do ene l temporal una vez que terminen pasa todo este temporal a la base o tabla original desde el principio hasta el final sin saber que cambiaraon y que no cambiaron.
La otra solución no profesional seria que trabajes directamente sobre la tabla para esto el codi debería ser.
with thisform.lista
     .recordSource="nombres" 
 endwith 
mBusqueda= alltrim(UPPER(thisform.tnombre.value))
sele nombres
set filter to nombres=mBusqueda
with thisform.lista
       .column1.controlSource="resultado.nombres" 
      .column2.controlSource="resultado.telefono1"
      .column3.controlSource="resultado.telefono2"
      .column4.controlSource="resultado.telefono3"
      .refresh
Endwith
Nada más te darás cuenta que hará los cambios directamente en la tabla.
Espero te sirva no te enrredes con el código organizate usa mejor la lógica .
Bendiciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas