¿Cómo le das la instrucción a tu aplicación sobre que registro eliminar? ¿Oo? Este código que usas esta bastante bien! Supongo... creo.. imagino.. que el error puede estar en la forma en que mandas a eliminar el registro! ¿Cómo lo haces? Con este código que tienes... podes conseguir eliminar correctamente los registros.. ubicándote en ellos! Es decir, en tu form, ubica el registro que quieres elimiminar y les das click "eliminar" y listo! Debería fincionar 100% porque así mismo lo hago yo y me funciona bien! Explicame como haces para seleccionar el registro que vas a eliminar y te ayudare a solucionar tu problema!
Ahora... Veo que en tu código usas PACK! PACK elimina los registros de la tabla de manera "fisica" es decir, los borra totalmente...! El comando DELETE "marca los registros para su futura eliminación" pero no los borra físicamente! Y con el comando SET DELETED ON/OFF en el INIT() de tu form podes decidir si ver o no esos registros marcados con DELETE.
Te explico... en mi opinión, no es muy recomendable usar PACK para quitar totalmente los registros de tus tablas. ¿Por qué? Sencillo... pueden haber momentos en los que necesitaras usar los datos eliminados... es decir "traerlos de vuelta" con el comando RECALL! Por tanto, te aconsejo no uses PACK. Con usar DELETE y marcarlos para eliminación es suficiente y con el uso de SET DELETED los quitas o los dejas visibles en tus forms. Cuando un registro se marca para eliminación queda desahibiltado para cualquier acción, es decir, queda precisamente eliminado.. solo que no de forma física. Si probas quitar las utlimas dos lineas de tu código (PACK) y usas solo DELETE podrás comprobar, yendo a tu tabla, que los registros que eliminas siguen ahí, pero que a la izquierda están marcados con color negro... esa es la DELETEMARK, también visible en el control GRID!
Pero bien... si quieres usar PACK y quitarlos completamente, podes hacer esto: quita de tu código esto:
USE empleado EXCLUSIVE
PACK
Y anda a colocarlo en el evento "Release" de tu form. Así no tendrás problemas... puesto que si lo dejas ahí... y seguís usando la aplicación... te podría dar complicaciones porque abrís la tabla en modo exclusivo. Mientras que si lo dejas en el release del form, la tabla se cierra al terminar la aplicación... elimando el registro! Ves! :)
Podes leer un poco en mi blog, tengo una entrada especifica que trata sobre este tema. Te podría ser de utilidad. Así como otras cositas que he publicado. Aquí te dejo el link
http://ravennfoxpro.blogspot.com/
Busca la entrada de marcar registros para eliminación.
Bueno... explicame como seleccionas el registro a eliminar, para poder ayudarte a resolver tu problema! Saludos! A tus ordenes! Ravenn! :)