' Para imprimir
' para essa rotina é preciso adicionar no menu Project->References->Microsoft Scripting Runtime
' Nessa rotina será criado um arquivo texto que depois pode ser impresso
' diretamente para a impressora ou visualizado (com o Edit, por exemplo)
Private Sub CmdImprimir_Click()
sql = "Select * From Banco_de_dados"
Set rs = db.OpenRecordset(sql)
Set fs = CreateObject("Scripting.FileSystemObject")
' aqui é criado o arquivo no caminho especificado entre aspas
Set a = fs.CreateTextFile("c:arquivo", True)
a.Close
' o arquivo é aberto para imprimir os dados
Open "c:arquivo" For Output As #1
CurrentX = 0
CurrentY = 0
' contador de paginas
pagina = 1
' contador de linhas
linha = 1
Print #1, "Cadastro de Alguma Coisa "
Print #1, "===================================="
Print #1, "Campo1 Campo2 Campo3 "
Print #1, "===================================="
Print #1, ""
Do Until rs.EOF
Print #1, Tab(0); rs("campo1"); Tab(10); rs("campo2"); Tab(20); rs("campo3")
linha = linha + 1
rs.MoveNext
' quando o total de linhas impressas for igual a 50
' é incluido um caracter de salto de página
If linha = 50 then
print #1, Chr(12)
' retorna o contador de linhas
linha = 1
' acrescenta uma nova página no contador
pagina = pagina + 1
' monta o cabecalho novamente
Print #1, "Cadastro de Alguma Coisa "
Print #1, "===================================="
Print #1, "Campo1 Campo2 Campo3 "
Print #1, "===================================="
Print #1, ""
End If
Loop
Print #1, "===================================="
' fecha o arquivo impresso
Close #1
* ''''''
* ' a partir deste ponto, escolha uma das opções abaixo para imprimir
* ' diretamente na impressora ou visualizar antes de imprimir
' para imprimir diretamente para a impressora faça assim:
' abre o arquivo para impressao diretamente na impressora em LPT1
Open "c:arquivo" For Input As #1
Open "LPT1" For Output As #2
Print #2, Input(LOF(1), #1)
' fecha o arquivo
Close
' para visualizar o arquivo (com Edit, por exemplo) antes de imprimir, faça assim:
Shell ("c:windowscommandedit.com c:arquivo"), vbMaximizedFocus
''''''
CmdNovo.Value=True
End Sub
Espero que isso o ajude,
Qualquer dúvida poste novamente ou mande um e-mail.
Bye