IMPRIMIR DBGRID

CRCJ 26/08/2014 08:52:38
#440702
Srs, Bom Dia a Todos
Tenho um comando que imprime uma DbGrid com conexão com Access 2007. Quando mando o comando para imprimir, ele me imprime das 7 colunas 3 ficam alinhadas, mas a partir da 4ª coluna pula uma linha, não sei o que estou fazendo de errado, abaixo segue o código, e em anexo um exemplo de como fica a impressão. Ficarei muito grato pela ajuda.

Private Sub Command1_Click()
Set area = DBEngine.Workspaces(0)
Set db = area.OpenDatabase(App.Path & [Ô]\Dados.mdb[Ô])
Set rs = db.OpenRecordset([Ô]Temp[Ô], dbOpenTable)
Printer.FontName = [Ô]Arial[Ô]
Printer.FontSize = 7
If MsgBox([Ô]Deseja Continuar A Impressão ?[Ô], 36, [Ô]Impressora[Ô]) = vbYes Then
Command1.Enabled = False
Dim contagem As Integer
Dim Pagina As Integer
Pagina = 1
contagem = rs.RecordCount
rs.MoveFirst
Printer.Print ; Tab(5); [Ô]WMENDES CONSTRUÇÕES E COMéRCIO LTDA [Ô]; [Ô]Data: [Ô]; Date; [Ô] [Ô]; [Ô]Hora: [Ô]; Time; [Ô] [Ô]; [Ô]PÁGINA: [Ô]; Pagina
Printer.Print ; Tab(5); [Ô]Relatório Das Contas: [Ô]; Consulta; [Ô] Do Fornecedor: [Ô]; ComboCliente
Printer.Print ; Tab(5); [Ô]DE: [Ô]; (Format(DataInicial.Text, [Ô]00/00/0000[Ô])); [Ô] [Ô]; [Ô]Até: [Ô]; (Format(DataFinal.Text, [Ô]00/00/0000[Ô]))
Printer.Print ; Tab(5); [Ô][Ô]
Printer.Print ; Tab(0); [Ô]CÓDIGO[Ô]; Tab(13); [Ô]VENCIMENTO[Ô]; Tab(30); [Ô]HISTÓRICO[Ô]; Tab(100); [Ô]VALOR[Ô]; Tab(115); [Ô]NOVO VENCIMENTO[Ô]; Tab(140); [Ô]NOVO VALOR[Ô]; Tab(160); [Ô]ACRéSCIMO[Ô]
Printer.Print ; Tab(0); [Ô]------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[Ô]
Do While contagem >= 1
Printer.Print ; Tab(0); rs([Ô]Codigo[Ô]);
Printer.Print ; Tab(13); rs([Ô]DataVencimento[Ô]);
Printer.Print ; Tab(30); rs([Ô]Historico[Ô]);
Printer.Print ; Tab(100); rs([Ô]Valor[Ô]);
Printer.Print ; Tab(115); rs([Ô]NovoVencimento[Ô]);
Printer.Print ; Tab(140); rs([Ô]NovoValor[Ô]);
Printer.Print ; Tab(160); rs([Ô]Acrescimo[Ô])
If contagem > 1 Then
rs.MoveNext
Else
rs.MoveFirst
End If
contagem = contagem - 1
linha = linha + 1
If linha >= 90 Then
Printer.Print ; Tab(5); [Ô]------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[Ô]
Printer.NewPage
linha = 1
Pagina = Pagina + 1
Printer.Print ; Tab(5); [Ô]WMENDES CONSTRUÇÕES E COMéRCIO LTDA [Ô]; [Ô]Data: [Ô]; Date; [Ô] [Ô]; [Ô]Hora: [Ô]; Time; [Ô] [Ô]; [Ô]PÁGINA: [Ô]; Pagina
Printer.Print ; Tab(5); [Ô]Relatório Das Contas: [Ô]; Consulta; [Ô] Do Fornecedor: [Ô]; ComboCliente
Printer.Print ; Tab(5); [Ô]DE: [Ô]; (Format(DataInicial.Text, [Ô]00/00/0000[Ô])); [Ô] [Ô]; [Ô]Até: [Ô]; (Format(DataFinal.Text, [Ô]00/00/0000[Ô]))
Printer.Print ; Tab(5); [Ô][Ô]
Printer.Print ; Tab(0); [Ô]CÓDIGO[Ô]; Tab(13); [Ô]VENCIMENTO[Ô]; Tab(30); [Ô]HISTÓRICO[Ô]; Tab(100); [Ô]VALOR[Ô]; Tab(115); [Ô]NOVO VENCIMENTO[Ô]; Tab(140); [Ô]NOVO VALOR[Ô]; Tab(160); [Ô]ACRéSCIMO[Ô]
Printer.Print ; Tab(0); [Ô]------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[Ô]
End If
Loop
Printer.EndDoc
Command1.Enabled = True
End If
End Sub
ALVAROVB2009 01/09/2014 15:16:40
#440830
Não sei se já conseguiu resolver, más o que vejo ai é que o espaço dado ao histórico é pequeno e ele acaba invadindo o espaço do valor, por isso que ele acaba descendo uma linha, nesse caso vc pode diminuir a fonte e / ou colocar mais espaço
CRCJ 02/09/2014 15:20:18
#440864
Alvaro, boa tarde
Eu já tinha notado isso, mas não estou conseguindo configurar, mas vou sair de outra maneira. Aproveitando a sua ajuda, aonde tem valores não estou conseguindo configurar para #.###,##, você poeria me ajudar.
OMAR2011 02/09/2014 16:12:10
#440870
Cabra, testei esse código e posso dizer que não teve um salto da linha.
Imprimiu normal. Coloque 9 registros na tabela para teste e, normal.
Formatei as colunas para moeda.

Printer.Print ; Tab(0); rs([Ô]Codigo[Ô]);
Printer.Print ; Tab(13); rs([Ô]DataVencimento[Ô]);
Printer.Print ; Tab(30); rs([Ô]Historico[Ô]);
Printer.Print ; Tab(100); Format(rs([Ô]Valor[Ô]), [Ô]Currency[Ô]);
Printer.Print ; Tab(115); rs([Ô]NovoVencimento[Ô]);
Printer.Print ; Tab(140); Format(rs([Ô]NovoValor[Ô]), [Ô]Currency[Ô]);
Printer.Print ; Tab(160); Format(rs([Ô]Acréscimo[Ô]), [Ô]Currency[Ô]);
CRCJ 02/09/2014 16:51:59
#440873
Ok Osmar2011
As colunas com formato em moeda estão imprimindo corretamente. Quanto pular as linhas eu acho que o problema esta no Access, como esse sistema foi feito no Access 2003, e depois foi configurado para 2007, na tabela onde está o histórico o tamanho do campo está com 255, e deveria estar com menor valor.
Tópico encerrado , respostas não são mais permitidas