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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Como imprimir um relatório com intervalos de datas
Patricia
não registrado
Postada em 19/10/2007 11:13 hs   
Olá pessoal estou tentando fazer um relatório de uma tabela do access usando o objeto printer, só que eu preciso que este relatório imprima os dados dentro de um intervalo de datas, tipo eu digito a data inicial e a data final ai o vb filtra estas informações no relatório, porém usando o objeto printer, algém poderia me ajudar??

Obrigada - Patrícia
     
Belthor
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 19/10/2007 11:21 hs            
voce pode criar duas variaveis do tipo date
ex: dim datamin,datamax as date
entaum selecionar as datas com sql ex:
set intervalo = dbalgumacoisa.openrecordset("Select * from algo where data >=" & datamin & " and data <=" & datamax)
e então criar uma variavel texto para adicionar os conteudos do recordset
dim a as string
dim b as integer
b=0
intervalo .moveMin
do while not intervalo.eof
string = intervalo!campo1
string = intervalo!campo2 ...
printer.print string,0,b
b=b+100
intervalo.movenext
ou alguma coisa do genero
   
Patricia
não registrado
Postada em 19/10/2007 13:03 hs   
Obrigado, veja a msg de erro que está acontecendo, por favor me ajude!!
 
Beijos Patrícia.
     
Roßerto
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 19/10/2007 20:17 hs            
qual a msg do erro ?
 
quando for fazer uma pesquisa por data deve usar o #
e use o operador BETWEEN
 
SELECT  * FROM TABELA WHERE DATA BETWEEN #MM/DD/YYYY# AND #MM/DD/YYYY#
 
 
 
   
Agenor Henrique
não registrado
Postada em 20/10/2007 17:11 hs   
Patrícia faça desta maneira que funcionará, vi os seus códigos e alterei e funcionou perfeitamente, estava dando errado era a instrução SQL estava faltando "/" entre ddmmyyy, vc deverá escrever assim dd/mm/yyyy
Private Sub Command1_Click()
Dim db As Database
Dim tb As Recordset
Dim DTI As Date
Dim DTF As Date
Dim Linha As Integer
Dim XData As Date
Dim XSolicitante As String
Dim XTelefone As String
Dim XEvento As String
Dim XSituacao As String
Linha = 1
DTI = Text1.Text
DTF = Text2.Text
If MsgBox("Incicia a impresão?", 36, "Situação de Pedidos da Praça de Esportes") = 7 Then
   Exit Sub
End If
Set db = OpenDatabase(App.Path & "Praca.mdb")
Set tb = db.OpenRecordset("SELECT * FROM Praca8 WHERE data BETWEEN #" & Format(DTI, "mm/dd/yyyy") & "# AND # " & Format(DTF, "dd/mm/yyyy") & "#")  ' aqui que estava errado, vc não estava colocando o separador "/".
Pinter.FontName = "Arial"
Printer.FontSize = 7
Do While Not tb.EOF
If Linha = 1 Then
   Cabecalho
End If
XData = tb!Data
XSolicitante = tb!Solicitante
XTelefone = tb!Telefone
XEvento = tb!Evento
XSituacao = tb!Situacao
Printer.CurrentX = 300
Printer.Print Tab(3); XData;
Printer.Print Tab(17); XSolicitante;
Printer.Print Tab(65); XTelefone;
Printer.Print Tab(80); XEvento;
Printer.Print Tab(130); XSituacao
Linha = Linha + 1
tb.MoveNext
If Linha >= 50 Then
   Printer.NewPage
   Linha = 1
End If
Loop
Linha = Linha + 2
Printer.Print String(238, "-")
Linha = Linha + 1
Printer.Print Tab(1); "*** FIM DO RELATÓRIO ***"
Printer.EndDoc
db.Close
tb.Close
End Sub
Private Function Cabecalho()
Printer.Print Tab(5); " Data ";
Printer.Print Tab(17); "Solicitante";
Printer.Print Tab(65); "Telefone";
Printer.Print Tab(80); "Evento";
Printer.Print Tab(130); "Situação"
Printer.Print String(238, "-")
Printer.Print
End Function
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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