Tienes un formulario de factura en el que has incluido una rejilla de histórico de la tabla de líneas, bien de forma directa o en un separador de pestañas.
Cuando definiste la base de datos has indicado que la tabla de líneas será submaestra de la de facturas o al menos existe entre ellas una relación de histórico, en ambos casos es correcto.
Cuando entras a la factura imagino que primero grabas la fecha y el cliente y luego te pones a dar de alta la primera línea de detalle.
¿Crees que se puede dar de alta una línea de detalle si previamente no se crea la cabecera de factura?
La respuesta es no, ya que en el caso de que la tabla de líneas sea submaestra, su clave primaria estará formada por el código de la tabla de facturas y su código, por ese motivo sin que tú hagas nada Velázquez inteligentemente da de alta el registro de la tabla de cabecera que se corresponde con el que estás visualizando en el formulario.
Espero haberte aclarado porque existe el registro de cabecera, ahora vamos a la resolución de la supresión de la cabecera si no tiene líneas:
Opción1) Pon en formulario además del botón aceptar el botón suprimir, este último debería tener como condición de activo la letra "e" que indica que sólo se activará si el registro existe, y el botón aceptar y también el cancelar podrían estar condicionado a un campo de la cabecera donde acumules el nº de líneas con lo que obligarías al usuario a salir utilizando el botón Suprimir. También puedes mostrar un mensaje al aceptar indicando que la factura no tiene líneas y que debe salir eliminando.
Opción2) En el proceso post del botón aceptar analizar si la factura tiene líneas y en caso negativo carga lista de la tabla de facturas por el índice código, resolviendo con el código actual y ejecuta luego la función recorrer lista eliminando fichas. De todas formas sería conveniente también en este caso mostrar un mensaje avisando de que la factura será eliminada por no tener líneas.