Cambiar valor en grid

Hola experto, tengo un grid el cual muestro unos datos de una tabla
SELECT * FROM tabla1 WHERE fechacita=a ORDER BY examen, hora ASC INTO CURSOR crsGRID
THISFORM.Grid1.RecordSource="crsGRID"
Eso funciona bien, pero necesito que cuando el usuario haga clic sobre un boton el programa me modifique un registro en la tabla. El registro debe ser el que este activo en el grid, el que el usuario haya seleccionado previamente en el grid
select tabla1
UPDATE tabla1 SET ESTADO='CANCELADA' WHERE DOCUMENTO = THISFORM.GRID1.COLUMN1.TEXT1.VALUE AND EXAMEN = THISFORM.GRID1.COLUMN4.TEXT1.VALUE 
esto no funciona, ya que los valores que toma  THISFORM.GRID1.COLUMN4.TEXT1.VALUE es el de la columna 4 y primera fila. De manera que el registro que esta buscando no es el correcto
Muchas Gracias por yu Ayuda

1 respuesta

Respuesta
1
Espero poder ayudarte:
No uses referencia al text del grid. Usa directamente el campo del cursor.
Asi.: where documento=crsGrid.campo1 (o como se llame)
Cuando cambias la fila en un grid, cambia el puntero en crsGrid y se queda ahí salvo que uses comandos como count, scan, etc.. que puedan moverlo.
Yo particularmente uso los text de los grids solamente para programarle algo en el valid, o en el when, pero no hago referencia a ellos para saber su valor.
Por último, recordá que si actualizas algún dato de tabla1, deberías ejecutar otra vez la consulta que arma el grid para que te quede siempre actualizado.
Espero que haya sido de utilidad y si esi, por favor cerrá la pregunta.
Un abrazo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas