Convidado Dom 9 Mar - 10:34
Bem.. creio que não será um desafio.. Fiquei extremamente feliz em ver que a sua solução está condizente com o que eu havia imaginado quando comecei com a ajuda ao colega João Ricardo...
Eu pensei em carregar um recordset com a consulta, e através deste recordset utilizar a contagem de campos e nomes de campos para carregar o controlSource do objeto, bem como o nome do rótulo.
Embora a minha linha de raciocínio estava no caminho correto, a sua solução utilizando as definições de consulta foram simplesmente Fantásticas.
Veja o que eu havia imaginado para aplicar no evento ao carregar do relatório:
Dim StrSQL As String
Dim Rs As DAO.Recordset
StrSQL = "PARAMETERS Me.DataIni DateTime, Me.dataFin DateTime;" _
& " TRANSFORM Avg(qryNotaMuralAloj.Média) AS MédiaDeMédia SELECT qryNotaMuralAloj.Alojamento, Avg(qryNotaMuralAloj.Média) AS ValorMedio" _
& " FROM qryNotaMuralAloj WHERE (((qryNotaMuralAloj.dataAvaliação) Between Me.DataIni" _
& " And Me.dataFin))GROUP BY qryNotaMuralAloj.Alojamento, qryNotaMuralAloj.dataAvaliação" _
& " PIVOT Format$([dataAvaliação],'dd/mm',0,0);"
Set Rs = CurrentDb.OpenRecordset(StrSQL)
CampCount = Rs.Fields.Count
If CampCount = 3 Then
Me.lbData1.Caption = Rs(2).Name
Me.txtData1.ControlSource = "= " & Rs(2).Name & ""
ElseIf CampCount = 4 Then
Me.lbData1.Caption = Rs(2).Name
Me.txtData1.ControlSource = "= " & Rs(2).Name & ""
Me.lbData2.Caption = Rs(3).Name
Me.txtData1.ControlSource = "= " & Rs(3).Name & ""
ElseIf CampCount = 5 Then
Me.lbData1.Caption = Rs(2).Name
Me.txtData1.ControlSource = "= " & Rs(2).Name & ""
Me.lbData2.Caption = Rs(3).Name
Me.txtData2.ControlSource = "= " & Rs(3).Name & ""
Me.lbData3.Caption = Rs(4).Name
Me.txtData3.ControlSource = "= " & Rs(4).Name & ""
End If
Este foi um ótimo aprendizado
Obrigado.