En Interbase no sé si soporta EXECUTE STATEMENT, y menos aún en un for select. Intuitivamente y muy propenso a error sería:
El nombre de la tabla lo pasas como varchar(20).
Código SQL
[-]
declare variable strSql varchar(80)
as
strSql = 'select * from ' || nombreTabla || ' where ....';
for EXECUTE STATEMENT strSql do
begin
end;
... Por intentarlo que no quede
.
Saludos