Podrías hacerlo con una sola consulta de la siguiente manera :
Código SQL
[-]Select first 1 dato1, dato2, ..., daton
from facturas
where cliente = :ClienteFact [and num_fa < :FactAct]
order by idfac desc
Como no indicas el gestor de bases de datos utilizado te puse la sentencia para
firebird, en caso de que utilices otro puede que tengas que modificar el
first. Lo que va entre corchetes sólo lo tienes que poner si los datos los solicitas después de grabar la factura actual.
Espero que te sirva.
Un saúdo.