USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Pesquisa para imprimir
Perci
MATÃO
SP - BRASIL
Postada em 08/02/2008 12:20 hs            
Tenho a seguinte dúvida.

Tenho 3 tabelas: Participantes, Monitores e Carnes
Participantes--> Campos: CodPart, Nomepart
Monitores--> Campos: CodMonitor, NomeMonitor
Carnes--> Campos: NumeroCarne, CodPart, Parcela, Pagto
                                       (no campo Parcela é gravado o mês e o ano da parcela)
                                       (no campo Pagto é gravado a data de pagamento)

Preciso fazer uma consulta: Quais os carnes em aberto por monitor.
Carrego uma ListView com os monitores cadastrados.
Escolho nesta ListView o monitor que preciso pesquisar.
Pesquiso na tabela de participantes quais os que tem o Codigo do Monitor
igual ao selecionado na ListView.
Depois pesquiso na tabela de carnês, quais os que tem o pagamento em aberto e onde
o código do participante é igual ao participante pesquisado.
Imprimo os dados necessários: Número do Carnê - Nome do Partipante - Parcela em Aberto
Este é o código.
 sqlpart = "Select * From Participantes Where codmonit = " & LstMonit.SelectedItem.Text & " Order by nomepart"
 Set rspart = db.OpenRecordset(sqlpart)
 Do Until rspart.EOF
     sqlcarne = "Select * From Carnes Where pagto Like 'XXX' And codpart = " & rspart("codpart") & " Order By numerocarne, parcela"
     Set rscarne = db.OpenRecordset(sqlcarne)
     Do Until rscarne.EOF
         Print #1, Tab(1); Format(rscarne("numerocarne"), "0000"); Tab(15); rspart("nomepart"); Tab(70); rscarne("parcela")
         rscarne.MoveNext
     Loop
     Print #1, Tab(0); ""
     rspart.MoveNext
 Loop

Só que quando imprimo o relatório, sai assim:
Carnê         Participante                                           Parcela
------------------------------------------------------------------------------
0899          ALCIDES ANDRÉ                                      01/2008
0899          ALCIDES ANDRÉ                                      02/2008
0899          ALCIDES ANDRÉ                                      03/2008
0899          ALCIDES ANDRÉ                                      04/2008
0942          ALCIDES ANDRÉ                                      01/2008
0942          ALCIDES ANDRÉ                                      02/2008
0942          ALCIDES ANDRÉ                                      03/2008
0942          ALCIDES ANDRÉ                                      04/2008
0561          LEONIDAS ALMEIDA OLIVEIRA                   01/2008
0561          LEONIDAS ALMEIDA OLIVEIRA                   02/2008
0561          LEONIDAS ALMEIDA OLIVEIRA                   03/2008
0561          LEONIDAS ALMEIDA OLIVEIRA                   04/2008

Eu precisava de uma maneira de não repetir os números de carnê e de participante.
Assim o relatório sairia assim:
Carnê         Participante                                           Parcela
------------------------------------------------------------------------------
0899          ALCIDES ANDRÉ                           
          01/2008
                                                                            02/2008
                                                                            03/2008
                                                                            04/2008
0942          ALCIDES ANDRÉ                                     01/2008
                                                                            02/2008 
                                                                            03/2008
                                                                            04/2008
 
0561          LEONIDAS ALMEIDA OLIVEIRA                  01/2008
                                                                            02/2008
                                                                            03/2008
                                                                            04/2008
------------------------------------------------------------------------------
Será que existe uma maneira?
 
Até mais
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 08/02/2008 19:46 hs            
Tenta ssim perci
 
 sqlpart = "Select * From Participantes Where codmonit = " & LstMonit.SelectedItem.Text & " Order by nomepart"
 Set rspart = db.OpenRecordset(sqlpart)
 Do Until rspart.EOF
     sqlcarne = "Select * From Carnes Where pagto Like 'XXX' And codpart = " & rspart("codpart") & " Order By numerocarne, parcela"
     Set rscarne = db.OpenRecordset(sqlcarne)
Print #1, Tab(1); Format(rscarne("numerocarne"), "0000"); Tab(15); rspart("nomepart"); Tab(70); rscarne("parcela")
     Do Until rscarne.EOF
         Print #1,Tab(70); rscarne("parcela")
         rscarne.MoveNext
     Loop
     Print #1, Tab(0); ""
     rspart.MoveNext
 Loop
 
não tem como eu testar agora mas veja se isto funciona
   
Perci
MATÃO
SP - BRASIL
Postada em 11/02/2008 10:42 hs            
Pois, bem Treze, desse jeito, a impressão está assim:
 
Carnê         Participante                                           Parcela
------------------------------------------------------------------------------
0899          ALCIDES ANDRÉ                                      01/2008
                                                                             02/2008
                                                                             03/2008
                                                                             04/2008
                                                                             01/2008 'aqui deveria ser outro numero de
                                                                             02/2008 'carnê:0947. NÃO ESTÁIMPRIMINDO
                                                                             03/2008 ' O NÚMERO, APENAS AS PARCELAS
                                                                             04/2008
 
0561          LEONIDAS ALMEIDA OLIVEIRA                   01/2008
                                                                             02/2008
                                                                             03/2008
Ou seja, quando são participantes diferentes, está certo assim, mas quando existe um participante com mais de um carnê, não imprime o número do próximo carne, imprime apenas o primeiro carnê e as parcelas de todos os carnês. Falta imprimir o número do carnê quando tiver mais de um.
     
Perci
MATÃO
SP - BRASIL
Postada em 11/02/2008 14:00 hs            
 
Desculpe, a mensagem acima ficou meio confusa, eu não observei a largura da mensagem.
A impressão ficou assim:
 
Carnê         Participante                         Parcela
---------------------------------------------------------
0899          ALCIDES ANDRÉ                    01/2008
                                                           02/2008
                                                           03/2008
                                                           04/2008
                                                           01/2008 'aqui deveria ser outro numero 
                                                           02/2008 'de  carnê: 0947
                                                              03/2008 'Não Está Imprimindo o Nº,
                                                           04/2008 'Apenas As Parcelas
 
0561       LEONIDAS ALMEIDA OLIVEIRA    01/2008
                                                           02/2008
                                                           03/2008
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 11/02/2008 15:26 hs            
Se saiu desta forma então foi meio caminho andado.
 
Vou estudar o código um pouco mais para poder te ar uma resposta exata, o que vi ate então que se fizesse a pesquisa por numero do carne, funcionaria, mas acredito que não ficaria funcional para você.

logo posto a resposta

 

até


     
Perci
MATÃO
SP - BRASIL
Postada em 11/02/2008 16:12 hs            
Valeu, obrigado
 
Até mais.
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página