RELATORIO
Segue um exemplo simples.
Para testar, copie esta rotina para o evento CLICK de um COMMANDBUTTON.
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
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.
Agradeço sua ajuda.
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
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
Neste código que postou, não há necessidades de utilização do DE.
Somente um objeto CONNECTION e um RECORDSET.
Somente um objeto CONNECTION e um RECORDSET.
Bom dia Tecla, tinha como fazer um exemplo pra mim.
Obrigado pela ajuda
Obrigado pela ajuda
[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]
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]
Tópico encerrado , respostas não são mais permitidas