La query con lo shape gliela passo, e il dataenv. la prende in pasto senza darmi errori, il problema sta nel fatto che non riesco a cambiare la query che ha di base con quella che gli passo io. Ora posto il codice che ho scritto così potete capire meglio.

sSql = ""
sSql = " SHAPE {SELECT IDV_Iter, Controparte, DataProposta, DataValidita, "
sSql = sSql & "DataCompromessoPrevisto, DataRogitoPrevisto, DataApprovazione, "
sSql = sSql & "Cd_Prop, DataCompromesso, DataRevoca, DataRevocaApprovazione, "
sSql = sSql & "ImportoCompromesso, AccontoPrenotazione, ImportoAlRogito, Nota, "
sSql = sSql & "NotaCompromesso, NotaApprovazione, NotaPagamento, ImportoDilazionato "
sSql = sSql & "FROM V_Iter WHERE (IDV_Iter = " & DatiImmobile.ID_PROPOSTA & ")} AS DatiProposta "
sSql = sSql & "APPEND "
sSql = sSql & "({SELECT V_Iter.Cd_Prop, Usys_FABB.DS_FABB, "
sSql = sSql & "SUM(V_IterDett.PrezzoVenditaProposta) AS TotProposta, "
sSql = sSql & "V_IterDett.V_IDIter "
sSql = sSql & "FROM V_IterDett INNER JOIN V_OffertaDett "
sSql = sSql & "ON V_IterDett.IDV_OffertaDett = V_OffertaDett.IDV_OffertaDett "
sSql = sSql & "INNER JOIN V_Iter ON V_IterDett.V_IDIter = V_Iter.IDV_Iter "
sSql = sSql & "INNER JOIN V_Offerta ON V_OffertaDett.IDV_Offerta = V_Offerta.IDV_Offerta "
sSql = sSql & "INNER JOIN Usys_FABB ON V_Offerta.Fabb_ID = Usys_FABB.ID "
sSql = sSql & "GROUP BY V_IterDett.V_IDIter, V_Iter.Cd_Prop, Usys_FABB.DS_FABB} AS DettaglioProposta "
sSql = sSql & "RELATE 'IDV_Iter' TO 'V_IDIter') AS DettaglioProposta"

If DataEnvReport.ConnessioneSQL.State = 0 Then
DataEnvReport.ConnessioneSQL.Open
End If
DataEnvReport.ConnessioneSQL.Execute sSql
DataRptApprovazione.WindowState = vbMaximized
DataRptApprovazione.Show

Passandogli così la query apre il report ma con la query di base che ho usato per creare il command all'interno del dataenv. , di questa non ne tiene conto.

Ciao e grazie a tutti.