RELATORIO

TECLA 01/06/2010 20:59:34
#343602
Segue um exemplo simples.
Para testar, copie esta rotina para o evento CLICK de um COMMANDBUTTON.

Dim con As Object, rs As Object
Set con = CreateObject([Ô]ADODB.Connection[Ô])
Set rs = CreateObject([Ô]ADODB.Recordset[Ô])

con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source=[Ô] & App.Path & [Ô]\Pocket.mdb[Ô]
rs.Open [Ô]SELECT p.* [Ô] & _
[Ô]FROM (TblPocket p [Ô] & _
[Ô]INNER JOIN TblAcessorio a [Ô] & _
[Ô]ON p.Codigo = a.CodAcess) [Ô] & _
[Ô]WHERE p.Codigo=1[Ô], con, 1, 3

Printer.Print Tab(10); [Ô]RELATÓRIO DE TESTE[Ô]
Printer.Print Tab(10); [Ô]Emitido as [Ô] & Time
Printer.Print
Do While Not rs.EOF
[txt-color=#007100] [ô]Para exibir todos os campos, utilize os números de 0 a 9, conforme a linha abaixo[/txt-color]
Printer.Print rs.Fields(0) & [Ô] - [Ô] & rs.Fields(1) & [Ô] - [Ô] & rs.Fields(2) & [Ô] - [Ô] & rs.Fields(3) & [Ô] - [Ô] & rs.Fields(4)
rs.MoveNext
Loop

Printer.EndDoc
rs.Close
con.Close
JPAULO101 02/06/2010 09:10:01
#343631
Oi Tecla tudo bém, teste seu código, mais ele só está imprimindo apenas os dados da TBLPOCKET, e também só imprimi o primeiro registro da tabela. Existem uma forma de colocar o cabeçalho e imprimir em paisagem, e colocar um espasamento maior entre os campos.


Agradeço sua ajuda.
JPAULO101 02/06/2010 17:18:10
#343739
Fiz da seguinte forma usando o DataEnvironment, existe alguma maneira de colocar um app.Path do banco de dados, ou outra forma de imprimir sem usar o DataEnvironment.

Agradeço.

Private Sub cmdImprimir_Click()

Dim rs As ADODB.Recordset

Dim Linha As Integer

If MsgBox([Ô]Inicia a Impressão?[Ô], 36, [Ô]Relação de Equipamento[Ô]) = 7 Then [ô]
Exit Sub
End If

Linha = 1


Set rs = BD.rsTBLPOCKET
rs.Index = [Ô]codigo[Ô]

Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 10
Printer.PaperSize = 9
Printer.Orientation = 2

BD.rsTBLPOCKET.Open

Do While Not rs.EOF

If Linha = 1 Then [ô]define linha 1 é cabeçalho

Cabeçalho

End If


Printer.Print Tab(3); String(240, [Ô]-[Ô])
Printer.Print Tab(3); Format(rs([Ô]Codigo[Ô]), [Ô]00#[Ô]);
Printer.Print Tab(15); rs([Ô]SML[Ô]);
Printer.Print Tab(35); rs([Ô]ESCRITORIO[Ô]);
Printer.Print Tab(55); rs([Ô]APARELHO[Ô]);
Printer.Print Tab(70); rs([Ô]SN[Ô]);
Printer.Print Tab(90); rs([Ô]IMEI[Ô]);
Printer.Print Tab(112); rs([Ô]CHIPTIMNOVO[Ô]);
Printer.Print Tab(133); rs([Ô]RESPONSAVEL[Ô]);
Printer.Print Tab(153); rs([Ô]MANUTENCAO[Ô]);
Printer.Print Tab(172); rs([Ô]REPARO[Ô]);

Linha = Linha + 1
rs.MoveNext

If Linha >= 50 Then
Printer.NewPage
Linha = 1
End If


Loop

Printer.EndDoc
rs.Close

End Sub

Private Function Cabeçalho()


Printer.Print Tab(70); [Ô]RELAÇÃO DE POCKET - REGIONAL GARANHUNS[Ô]
Printer.Print Tab(77); [Ô]EMITIDO EM [Ô] & Date; [Ô] AS [Ô] & Time

Printer.CurrentY = 800
Printer.Print Tab(3); String(240, [Ô]-[Ô])
Printer.Print Tab(3); [Ô]NÚMERO[Ô]; [ô] cabeçalho dos campos a serem imprimidos
Printer.Print Tab(15); [Ô]SML[Ô];
Printer.Print Tab(35); [Ô]ESCRITORIO[Ô];
Printer.Print Tab(55); [Ô]APARELHO[Ô];
Printer.Print Tab(70); [Ô]SN[Ô];
Printer.Print Tab(90); [Ô]IMEI[Ô];
Printer.Print Tab(112); [Ô]CHIP[Ô];
Printer.Print Tab(133); [Ô]RESPONSAVEL[Ô];
Printer.Print Tab(153); [Ô]MANUTENCAO[Ô];
Printer.Print Tab(172); [Ô]REPARO[Ô];
Printer.Print

End Function
TECLA 02/06/2010 21:56:02
#343766
Neste código que postou, não há necessidades de utilização do DE.
Somente um objeto CONNECTION e um RECORDSET.
JPAULO101 04/06/2010 07:49:11
#343850
Bom dia Tecla, tinha como fazer um exemplo pra mim.

Obrigado pela ajuda
JPAULO101 04/06/2010 11:08:33
#343867
[txt-color=#e80000] pessoal consegui resolver aqui, fiz da seguinte maneira. Só que dessa forma só consigo imprimir a TBLPOCKET do banco, como faço para imprimir a TBLACESSORIO também.[/txt-color]

Private Sub cmdImprimir_Click()

Dim con As Object, rs As Object
Dim Linha As Integer [ô] varialvél para a contagem de linhas
Set con = CreateObject([Ô]ADODB.Connection[Ô])
Set rs = CreateObject([Ô]ADODB.Recordset[Ô])

con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source=[Ô] & App.Path & [Ô]\Banco\Pocket.mdb[Ô]
rs.Open [Ô]SELECT * FROM tblpocket ORDER BY codigo[Ô], con, adOpenKeyset, adLockOptimistic


If MsgBox([Ô]Inicia a Impressão?[Ô], 36, [Ô]Relação de Equipamento[Ô]) = 7 Then [ô]
Exit Sub
End If

Linha = 1

Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 10
Printer.PaperSize = 9 [ô] modelo de papel folha = A4
Printer.Orientation = 2 [ô] Orientação do papel = paisagem

Do While Not rs.EOF

If Linha = 1 Then [ô]define linha 1 é cabeçalho

Cabeçalho

End If

[ô]campos a serem imprimidos
Printer.Print Tab(3); String(240, [Ô]-[Ô])
Printer.Print Tab(3); Format(rs([Ô]Codigo[Ô]), [Ô]00#[Ô]);
Printer.Print Tab(15); rs([Ô]SML[Ô]);
Printer.Print Tab(35); rs([Ô]ESCRITORIO[Ô]);
Printer.Print Tab(55); rs([Ô]APARELHO[Ô]);
Printer.Print Tab(70); rs([Ô]SN[Ô]);
Printer.Print Tab(90); rs([Ô]IMEI[Ô]);
Printer.Print Tab(112); rs([Ô]CHIPTIMNOVO[Ô]);
Printer.Print Tab(133); rs([Ô]RESPONSAVEL[Ô]);
Printer.Print Tab(153); rs([Ô]MANUTENCAO[Ô]);
Printer.Print Tab(172); rs([Ô]REPARO[Ô]);

Linha = Linha + 1 [ô] montando as linhas
rs.MoveNext [ô]proximo registro da tabela

If Linha >= 50 Then [ô] se tiver mais de 50 linhas iniciar uma nova pagina
Printer.NewPage
Linha = 1
End If


Loop

Printer.EndDoc [ô]finaliza a impressao
rs.Close [ô]fecha a tabela pocket

[txt-color=#0000f0]End Sub[/txt-color][txt-size=2] [/txt-size]
Página 3 de 3 [26 registro(s)]
Tópico encerrado , respostas não são mais permitidas