Lo he leido rápidamente, a ver si esta noche le puedo dedicar un poco de tiempo.
Cuando añades una ADOQUERY, pon el codigo SQL que te indiqué pero en tiempo de DISEÑO. No hace falta que vuelvas a añadir el codigo sql en tiempo de ejecución.
En diseño, cuando pones "WHERE idFactura=
arametro", accede a la propiedad parametros de la query y verás que aparece un parámetro llamado "parametro".
Si pones en la query WHERE campo1=
arametro1 AND campo2=
arametro2, si accedes a la propiedad parámetros, apareceran parametro1 y parametro2.
Es en tiempo de ejecución cuando deben actualizar SOLAMENTE los parámetros dandoles el valor que desees. Abres de nuevo la query y aparecen los registros que cumplen la condición con esos valores
Para probar, crea un proyecto vacío con una query, un dataset y un dbgrid, pon un Tedit y juega con ello, para que veas cómo funciona. El resto es añadirlo a tu proyecto de la manera que te convenga.
En los ejemplos que trae la aplicación esto está explicado creo que de manera más que suficiente.
Un saludo