Bueno hay que ver si tienes algun DataSet(llámese éste ADODataSet,ADOQuery,etc) que no se ésta ocupando en nada pues tranquilamente puedes usarlo y cambiar su propiedad SQL o ComandText para hacer una consulta SQL espefíca en la BD.
, pero si por el contrario todos estan ocupados(por así decirlo) pues debes Instanciar(create) o utilizar otro.
, cosa que lo veo que es lo mejor en tu caso, ya que segun veo quieres cambiar dinamicamente la consulta SQL e ir mostrando los resultados en un DBGrid, para lo cual debes crearte un DBGrid Específico donde mostrarías los datos que hagas dinamicamente. al cambiar y ejecutar las consultas SQL, éste DBGrid mostraría los cambios y nuevos datos.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7