Quizá puedas solucionarlo usandos distintas consulta para cada caso:
Código Delphi
[-]
function TMain.Abrir_Consulta(SQL: String; Valores: Array of Variant): Boolean;
var
i: Integer;
begin
ADOQuery_1.Active:= false;
ADOQuery_1.SQL:= SQL;
for i:= 0 to High(Valores) do
ADOQuery_1.Parameters[i].Value:= Valores[i];
ADOQuery_1.Active:= true;
end;
procedure TMain.Consulta_Inicial;
begin
Abrir_Consulta( 'SELECT * FROM MiTabla;', [])
end;
procedure TMain.Consulta_Usuario(User: String);
begin
Abrir_Consulta( 'SELECT * FROM MiTabla WHERE Usuario = :P0;', [User]])
end;
...
Otra posibilidad es utiliar la propiedad Filter del componente.
Un Saludo.