MONTAR RELATORIO

GNCNET 11/06/2011 08:41:26
#376483
Estou tentando montar o seguinte relatório que me retorne esta estrutura:

Vencimento Pagamento Descrição Valor

Material Escritório
01/06/2011 02/06/2011 Lápis 10,00
01/06/2011 02/06/2011 Lápis 10,00
Sub Total = 20,00

Material Limpeza
01/06/2011 02/06/2011 Alcool 10,00
01/06/2011 02/06/2011 Sabão 10,00
Sub Total = 20,00

Total = 40,00

Como prosseguir?
Por enquanto, o que tenho de consultas é isto:
BD Acess


[ô][ô]/-/ Relatório saídas
Set bb = OpenDatabase(caminho)
Set consulta = bb.OpenRecordset([Ô]SELECT distinct transacao FROM tblfincli where data BETWEEN #[Ô] & Format(data_ini, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format(data_fim, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô])

If consulta.RecordCount > 0 Then
consulta.MoveFirst

Do While Not consulta.EOF
Rtb_rel.Text = Rtb_rel.Text & vbNewLine & consulta([Ô]transacao[Ô])
[ô]()
Set rs = bb.OpenRecordset([Ô]SELECT * FROM tblfincli where data BETWEEN #[Ô] & Format(data_ini, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format(data_fim, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô])

If rs.RecordCount > 0 Then
rs.MoveFirst

Do While Not rs.EOF

[ô] If Not IsNull(rs([Ô]transacao[Ô])) Then
[ô]Rtb_rel.Text = Rtb_rel.Text & vbNewLine & rs([Ô]transacao[Ô]) & vbNewLine
If rs([Ô]valor[Ô]) < 0 Then
venc = IIf(IsNull(rs([Ô]vencimento[Ô])), [Ô][Ô], rs([Ô]vencimento[Ô]))
data = IIf(IsNull(rs([Ô]data[Ô])), [Ô][Ô], rs([Ô]data[Ô]))
Txt_totalsaidas = Txt_totalsaidas - rs([Ô]valor[Ô])
Rtb_rel.Text = Rtb_rel.Text & vbNewLine & venc & [Ô] - [Ô] & vbTab & Format(datapg, [Ô]dd/mm/yyyy[Ô]) & vbTab & rs!historico & vbTab & [Ô]-[Ô] & vbTab & [Ô]R$ [Ô] & rs!Valor & vbNewLine & [Ô]Total = [Ô] & Txt_totalsaidas
End If
[ô] End If

rs.MoveNext

Loop

Else
MsgBox [Ô]Não foram encontrados dados para esta busca![Ô]
Exit Sub

End If
[ô]()

Rtb_rel.Text = Rtb_rel.Text [ô]& vbNewLine & consulta([Ô]transacao[Ô]) & rs([Ô]valor[Ô])

consulta.MoveNext

Loop
End If [ô]consulta
GNCNET 11/06/2011 08:43:38
#376484
o campo transacao é o tipo de despesa (material escritório etc)
GNCNET 11/06/2011 12:26:10
#376497
SOLUÇÃO:

[ô]/-/ Relatório saídas
On Error GoTo trataerro_1

Set bb = OpenDatabase(caminho)
Set consulta = bb.OpenRecordset([Ô]SELECT distinct transacao FROM tblfincli where data BETWEEN #[Ô] & Format(data_ini, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format(data_fim, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô])

If consulta.RecordCount > 0 Then
consulta.MoveFirst

Do While Not consulta.EOF
cons = consulta([Ô]transacao[Ô])

[ô] Buscar nome em uma tabela a partir do código em outra
Dim rsx As Recordset
Set BD = OpenDatabase(caminho)
Set rsx = BD.OpenRecordset([Ô]select * from tbltransa where codigo=[Ô] & cons)

If Not IsNull(rsx!descricao) Then
nome_cons = rsx!descricao
Else
nome_cons = [Ô]-[Ô]
End If


Rtb_rel.Text = Rtb_rel.Text & vbNewLine & vbNewLine & [Ô]¨¨¨¨¨¨¨¨¨¨¨[Ô] & nome_cons & vbNewLine

[ô]()
Set rs = bb.OpenRecordset([Ô]SELECT * FROM tblfincli where data BETWEEN #[Ô] & Format(data_ini, [Ô]mm/dd/yyyy[Ô]) & [Ô]# And #[Ô] & Format(data_fim, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô])

If rs.RecordCount > 0 Then
rs.MoveFirst

Do While Not rs.EOF

If rs([Ô]valor[Ô]) < 0 And rs([Ô]transacao[Ô]) = cons Then
venc = IIf(IsNull(rs([Ô]vencimento[Ô])), [Ô][Ô], rs([Ô]vencimento[Ô]))
data = IIf(IsNull(rs([Ô]data[Ô])), [Ô][Ô], rs([Ô]data[Ô]))
sub_totalsaidas = CCur(sub_totalsaidas) - rs([Ô]valor[Ô])
Rtb_rel.Text = Rtb_rel.Text & vbNewLine & venc & [Ô] - [Ô] & Format(data, [Ô]dd/mm/yyyy[Ô]) & vbTab & [Ô]-[Ô] & [Ô] R$ [Ô] & rs!Valor & vbTab & vbTab & rs!historico
End If

rs.MoveNext


Loop

Else
MsgBox [Ô]Não foram encontrados dados para esta busca![Ô]
Exit Sub

End If
[ô]()

Rtb_rel.Text = Rtb_rel.Text & vbNewLine & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & [Ô]Sub Total = [Ô] & CCur(sub_totalsaidas)

consulta.MoveNext

Loop
End If [ô]consulta

Rtb_rel.Text = Rtb_rel.Text & vbNewLine & vbNewLine & vbNewLine & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & [Ô]Total = [Ô] & CCur(sub_totalsaidas)


rs.Close
rsx.Close
consulta.Close
Tópico encerrado , respostas não são mais permitidas