Rodrigo, acho que o ponto é como criar uma Entity e passar ela como filtro para o relatório no VBA.
Vi que até é possivel criar uma instancia (Entity) de uma Tabela Virtual em VBA, mas como passa-lá ao CSReportPrinter?
Em C# podemos fazer assim (pelo menos aqui funciona):
EntityDefinition entityDefinition =
EntityDefinition.GetByName("TV_FILTRO000");
EntityBase entities = Entity.Create(entityDefinition);
entities.Fields["ESTADO"] = "21";
entities.Fields["PRESTADOR"] = "270";
var processId = AppContext.Report.EmitAsyncReport(
HandleDoRelatorio, "PDF", null, entities, null, true, true);
Acho que se fosse possivel fazer o mesmo em VBA as querys dos relatórios iriam ficar muito mais limpas, para a gente que tem que fazer muitos relatórios serem gerados a partir de botões dentro do sistema.