MONTAR RELATORIO
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
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
o campo transacao é o tipo de despesa (material escritório etc)
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
[ô]/-/ 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