CONSULTA DE REF. CRUZADA EM UMA FLEXGRID

USUARIO.EXCLUIDOS 18/06/2004 14:18:39
#30252
Tenho uma tabela tb_MatCons com ordem de compra "ordcompmatcons" (chave primaria), e a data de cadastro "datamatcons". Em uma outra tabela tb_InstMatCons tenho ordem de compra "ordcompmatcons" e o valor da ordem de compra "valorinstmatcons" e seus institutos "instmatcons". Criei uma consulta de referencia cruzada entre as duas tabelas onde ele me fornece os totais somados por meses de cada institutos. A consulta ficou assim:

"TRANSFORM Sum(Tab_InstMatCons.ValorInstMatCons) AS SomaDeValorInstMatCons " _
& "SELECT Tab_InstMatCons.InstMatCons FROM Tab_MatCons " _
& "INNER JOIN Tab_InstMatCons ON Tab_MatCons.OrdCompMatCons = Tab_InstMatCons.OrdCompMatCons " _
& "GROUP BY Tab_InstMatCons.InstMatCons ORDER BY Tab_InstMatCons.InstMatCons " _
& "PIVOT Format(Tab_MatCons.DataInclMatCons,'mmmm') "

Coloquei essa instrução em em um recordset "rsInstMatCons". E referenciei o mesmo em uma FlexGrid para me fornecer os dados necessários:

With flex_SalMatCons
.ColWidth(0) = 1100
Do Until rsInstMatCons.EOF = True
.Rows = .Rows + 1
.Cols = .Cols + 1
.Row = .Rows - 2
.Col = .Cols - 2

.TextMatrix(.Row, 0) = IIf(IsNull(rsInstMatCons!InstMatCons), "", rsInstMatCons!InstMatCons)
.ColWidth(.Col) = 1600
.TextMatrix(???,???) = ???????????????????
.TextMatrix(???,???) = ???????????????????
rsInstMatCons.MoveNext
Loop
.TextMatrix(0, 0) = "INSTITUTOS"
.TextMatrix(.Row, 0) = "TOTAL MÃÅ S"
.TextMatrix(0, .Col) = "TOTAL INSTITUTO"
End With

O problema é que somente consigo exibir os institutos.
Como faço para exibir os outros campos? Se as que eu coloco, diz que não fazem parte da coleção??
Como devo fazer para exibir os dados somado os valores, separados por meses??
Na Consulta do Access eu consigo exibí-las na boa, como teste, porém, vi que no VB a história ficou muito diferente. Não tenho nenhuma noção de como fazer isso. Poderiam me ajudar por favor?? Sou muito Novato e não consigo seguir. Obrigado pela atenção!
Jeff
LCSD 18/06/2004 14:30:10
#30256
Resposta escolhida
Jeff

Você está movendo o RecordSet para o início?

Pelo jeito ele está no final do RecordSet e sai sem alimentar o Grid. Verifique.
LCSD 18/06/2004 15:44:49
#30274
Jefferson

Vamos por partes, para você saber se a Consulta de Referência Cruzada está retornando dados, coloque um Break Point logo após a abertura e verifique se há dados nela. Por exemplo:

Debug.Print rsInstMatCons.RecordCount
isto te informará a quantidade de Registros, OK?

Se a mesma tiver registros, você pode alimentar diretamento o MSHFlexGrid, se for via ADO, por:

Set MSHFlexGrid1.Recordset = rsInstMatCons

Se for via DAO
Set MSFlexGrid1.Recordset = rsInstMatCons

Teste e veja o que retorna. [s68]
Tópico encerrado , respostas não são mais permitidas