Hola Alonso necesito otra ayudita

Buenos días Alonso, necesito programar un botón de eliminar registro, estoy usando este código:
    N = 3
    M = 16
    P = 0
    If MessageBox ("¿ Desea Eliminar este registro?", N + M + P ) = 6
           DELETE NEXT 1
    Blank
    Set Deleted On
    GO top
    ThisForm.Show
    ENDIF
    wait window "Registro retirado del sistema..." nowait
El problema es que me borra el registro anterior o el posterior al que quiero borrar en realidad, raras veces me elimina el registro correcto, he tratado quitándole el next 1 y sigue dando el mismo error. Gracias de antemano hermanazo.

1 respuesta

Respuesta
1
¿Podrías hacer el favor de explicarme un poco más detalladamente el inconveniente?, pues no entendí muy bien que digamos.
Tengo un formulario desde el cual llamo información de una tabla por medio de textbox. Desde este formulario quiero eliminar registros de dicha tabla entre otras cosas, ya tengo el botón guardar registros y el de buscar registro. Necesito el de eliminar y modificar. Para eliminar estoy usando el código de arriba pero me sucede el problema antes mencionado. No quiero usar el wizard porque es para una tesis y no debo usarlo.
La verdad no entiendo por qué colocas Delete Next 1 pues si deseas eliminar un registro, basta colocarte en el registro actual así:
En el evento init del Formulario escribes Set deleted On, luego te ubicas en en registro que deseas eliminar y ejecutas delete así:
N = 3
M = 16
P = 0
If MessageBox ("¿ Desea Eliminar este registro?", N + M + P ) = 6
    Delete
    If Eof() And !Bof())
      Skip + 1
    Endif
    Thisform. Refresh()
    wait window "Registro retirado del sistema..." nowait
Endif
Si escribes Delete Next 1 borrarás el siguiente registro al que esté ubicado el puntero de registro ejemplo: si el puntero de registro está ubicado en el registro No. 4 y escribes Delete Next 1 borrarás el registro No. 5 mientras que si escribes simplemente Delete borrarás el registro actual es decir el No. 4.
Hola Alonso, hice lo que me dijiste y le puse el código pero me sale un error: end of file encountered. ¿A qué se deberá?
Parece que es otra forma de eliminar trata con esto:
N = 3
M = 16
P = 0
If MessageBox ("¿ Desea Eliminar este registro?", N + M + P ) = 6
    Delete
    If Eof() And !Bof())
      Skip - 1
    Endif
    Thisform. Refresh()
    wait window "Registro retirado del sistema..." nowait
Endif
Lo anterior es por si eliminas el último registro.
Me comentas cómo te fue...
Hola Alonso, siempre me borra el registro anterior o el posterior. Me parece muy extraño. ¿Qué código usarías tu que no te haya fallado antes para borrar un registro de una tabla desde un comando en un formulario?
El código que utilizo es el siguiente:
If MessageBox ("¿Desea Eliminar este registro?",  3 + 32) = 7
   Return
Endif
Delete
Skip + 1
If Eof() Then
  Skip - 1
  If Bof()
     Preguntar si va a agragar un nuevo registro
     Else
        Thisform. Release() && Cerrar el formulario si está vacía la tabla y no agrega registros.
Endif
Ojo, antes de ejecutar Delete no debes ejecutar ningún código o función que mueva el puntero del registro actual que vas a eliminar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas