COMO IMPRIMIR UM RECIBO SIMPLES
E ae Pessoal, blz?
Bem é o seguinte: tenho um formulário de recibo com dados para serem preenchidos, nome, valor, referente a, pagamento, etc. E gostaria de imprimir esse recibo como numa folha do word.
Gostaria que me ajudasse mesmo, procurei na net alguns códigos e não achei um que funcionasse. O que tem agora é este, que qdo eu rodo ele me dá erro 424 na msg.
Private Sub Imprimir_Click()
Dim temp As String
On Error GoTo trata_erro
Set ObjWord = New Word.Application
ObjWord.Documents.Open ([Ô]C:\Documents and Settingseinaldo\Meus documentos\Reinaldo\Sistema SPY\RECIBO.doc[Ô])
Call Substitui_Var([Ô]@nome[Ô], txtnome)
Call Substitui_Var([Ô]@valor[Ô], maskvalor)
Call Substitui_Var([Ô]@descrição[Ô], cboreferente)
Call Substitui_Var([Ô]@extenso[Ô], txtextenso)
Call Substitui_Var([Ô]@valor1[Ô], maskvalor1)
Call Substitui_Var([Ô]@valor2[Ô], maskvalor2)
Call Substitui_Var([Ô]@valor3[Ô], maskvalor3)
Call Substitui_Var([Ô]@valor4[Ô], maskvalor4)
Call Substitui_Var([Ô]@valor5[Ô], maskvalor5)
Call Substitui_Var([Ô]@data1[Ô], txtdata1)
Call Substitui_Var([Ô]@data2[Ô], txtdata2)
Call Substitui_Var([Ô]@data3[Ô], txtdata3)
Call Substitui_Var([Ô]@data4[Ô], txtdata4)
Call Substitui_Var([Ô]@data5[Ô], txtdata5)
Call Substitui_Var([Ô]@datadia[Ô], datadodia)
Call Substitui_Var([Ô]@contratante[Ô], Data1.Recordset([Ô]nomeresp[Ô]))
Call Substitui_Var([Ô]@nome[Ô], dados.Recordset([Ô]nome[Ô]))
Call Substitui_Var([Ô]@valor[Ô], dados.Recordset([Ô]valor[Ô]))
Call Substitui_Var([Ô]@descrição[Ô], dados.Recordset([Ô]referente[Ô]))
Call Substitui_Var([Ô]@extenso[Ô], dados.Recordset([Ô]extenso[Ô]))
Call Substitui_Var([Ô]@pagamento[Ô], dados.Recordset([Ô]pagamento[Ô]))
Call Substitui_Var([Ô]@valor1[Ô], dados.Recordset([Ô]valor1[Ô]))
Call Substitui_Var([Ô]@valor2[Ô], dados.Recordset([Ô]valor2[Ô]))
Call Substitui_Var([Ô]@valor3[Ô], dados.Recordset([Ô]valor3[Ô]))
Call Substitui_Var([Ô]@valor4[Ô], dados.Recordset([Ô]valor4[Ô]))
Call Substitui_Var([Ô]@valor5[Ô], dados.Recordset([Ô]valor5[Ô]))
Call Substitui_Var([Ô]@data1[Ô], dados.Recordset([Ô]data1[Ô]))
Call Substitui_Var([Ô]@data2[Ô], dados.Recordset([Ô]data2[Ô]))
Call Substitui_Var([Ô]@data3[Ô], dados.Recordset([Ô]data3[Ô]))
Call Substitui_Var([Ô]@data4[Ô], dados.Recordset([Ô]data4[Ô]))
Call Substitui_Var([Ô]@data5[Ô], dados.Recordset([Ô]data5[Ô]))
[ô]Call Substitui_Var([Ô]@datadia[Ô], datadodia)
[ô] Salva o documento com um novo nome
ObjWord.ActiveDocument.SaveAs (txtrecibo)
[ô]Encerra o word
ObjWord.Quit
[ô] informa ao usuario que o contrato foi gerado
MsgBox [Ô]Contrato gerado com sucesso! em : [Ô] & txtcontrato, vbInformation, [Ô] Recibo Gerado [Ô]
[ô] libera memoria
Set ObjWord = Nothing
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu um erro durante o processamento [Ô] & [Ô] - Erro numero : [Ô] & Err.Number
End Sub
Private Sub Substitui_Var(Header As String, Data As String)
With ObjWord.Selection.Find
.ClearFormatting
.Text = Header
.Execute Forward:=True
End With
Clipboard.Clear
Clipboard.SetText (Data)
ObjWord.Selection.Paste
Clipboard.Clear
End Sub
Bem é o seguinte: tenho um formulário de recibo com dados para serem preenchidos, nome, valor, referente a, pagamento, etc. E gostaria de imprimir esse recibo como numa folha do word.
Gostaria que me ajudasse mesmo, procurei na net alguns códigos e não achei um que funcionasse. O que tem agora é este, que qdo eu rodo ele me dá erro 424 na msg.
Private Sub Imprimir_Click()
Dim temp As String
On Error GoTo trata_erro
Set ObjWord = New Word.Application
ObjWord.Documents.Open ([Ô]C:\Documents and Settingseinaldo\Meus documentos\Reinaldo\Sistema SPY\RECIBO.doc[Ô])
Call Substitui_Var([Ô]@nome[Ô], txtnome)
Call Substitui_Var([Ô]@valor[Ô], maskvalor)
Call Substitui_Var([Ô]@descrição[Ô], cboreferente)
Call Substitui_Var([Ô]@extenso[Ô], txtextenso)
Call Substitui_Var([Ô]@valor1[Ô], maskvalor1)
Call Substitui_Var([Ô]@valor2[Ô], maskvalor2)
Call Substitui_Var([Ô]@valor3[Ô], maskvalor3)
Call Substitui_Var([Ô]@valor4[Ô], maskvalor4)
Call Substitui_Var([Ô]@valor5[Ô], maskvalor5)
Call Substitui_Var([Ô]@data1[Ô], txtdata1)
Call Substitui_Var([Ô]@data2[Ô], txtdata2)
Call Substitui_Var([Ô]@data3[Ô], txtdata3)
Call Substitui_Var([Ô]@data4[Ô], txtdata4)
Call Substitui_Var([Ô]@data5[Ô], txtdata5)
Call Substitui_Var([Ô]@datadia[Ô], datadodia)
Call Substitui_Var([Ô]@contratante[Ô], Data1.Recordset([Ô]nomeresp[Ô]))
Call Substitui_Var([Ô]@nome[Ô], dados.Recordset([Ô]nome[Ô]))
Call Substitui_Var([Ô]@valor[Ô], dados.Recordset([Ô]valor[Ô]))
Call Substitui_Var([Ô]@descrição[Ô], dados.Recordset([Ô]referente[Ô]))
Call Substitui_Var([Ô]@extenso[Ô], dados.Recordset([Ô]extenso[Ô]))
Call Substitui_Var([Ô]@pagamento[Ô], dados.Recordset([Ô]pagamento[Ô]))
Call Substitui_Var([Ô]@valor1[Ô], dados.Recordset([Ô]valor1[Ô]))
Call Substitui_Var([Ô]@valor2[Ô], dados.Recordset([Ô]valor2[Ô]))
Call Substitui_Var([Ô]@valor3[Ô], dados.Recordset([Ô]valor3[Ô]))
Call Substitui_Var([Ô]@valor4[Ô], dados.Recordset([Ô]valor4[Ô]))
Call Substitui_Var([Ô]@valor5[Ô], dados.Recordset([Ô]valor5[Ô]))
Call Substitui_Var([Ô]@data1[Ô], dados.Recordset([Ô]data1[Ô]))
Call Substitui_Var([Ô]@data2[Ô], dados.Recordset([Ô]data2[Ô]))
Call Substitui_Var([Ô]@data3[Ô], dados.Recordset([Ô]data3[Ô]))
Call Substitui_Var([Ô]@data4[Ô], dados.Recordset([Ô]data4[Ô]))
Call Substitui_Var([Ô]@data5[Ô], dados.Recordset([Ô]data5[Ô]))
[ô]Call Substitui_Var([Ô]@datadia[Ô], datadodia)
[ô] Salva o documento com um novo nome
ObjWord.ActiveDocument.SaveAs (txtrecibo)
[ô]Encerra o word
ObjWord.Quit
[ô] informa ao usuario que o contrato foi gerado
MsgBox [Ô]Contrato gerado com sucesso! em : [Ô] & txtcontrato, vbInformation, [Ô] Recibo Gerado [Ô]
[ô] libera memoria
Set ObjWord = Nothing
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu um erro durante o processamento [Ô] & [Ô] - Erro numero : [Ô] & Err.Number
End Sub
Private Sub Substitui_Var(Header As String, Data As String)
With ObjWord.Selection.Find
.ClearFormatting
.Text = Header
.Execute Forward:=True
End With
Clipboard.Clear
Clipboard.SetText (Data)
ObjWord.Selection.Paste
Clipboard.Clear
End Sub
Porque não utiliza um gerador de relatórios (DataReport, Crystal, Active...)?
Então Tecla, até vi algumas maneiras de imprimir pelo crystal e tal, mas eu aprendi vb no colegial em 98, num cheguei a aprender como imprimir. Eu vi esse exemplo ai no site do macoratti e achei fácil por isso copiei, rsrs. Mas se vc tiver algum exemplo de como imprimir em crystal em algum site q seja confiável ai eu agradeço muito.
Fazia muito tempo q num programava em VB, só estou voltando pq queria fazer um sisteminha legal aqui pra empresa onde eu colocasse todas as informações em um lugar só.
Abraço
Fazia muito tempo q num programava em VB, só estou voltando pq queria fazer um sisteminha legal aqui pra empresa onde eu colocasse todas as informações em um lugar só.
Abraço
amigo com certeza utilzar o crystal report e bem mais facil, da uma olhada no propio site do macorati que tem varios exemplos !
REINALDOSPINDOL na verdade a maneira mais simples de fazer isto, se for um formulario, seria tipo assim:
cmdimprimir.visible=false
cmdnovo.visible=false
cmdsair.visible=false
me.printform
cmdimprimir.visible=true
cmdnovo.visible=true
cmdsair.visible=true
Não é a maneira mais correta, mas ele vai imprimir esta tela ai direto na impressora padrão.
Mas se você puder usar outras maneiras, seria muito melhor.
cmdimprimir.visible=false
cmdnovo.visible=false
cmdsair.visible=false
me.printform
cmdimprimir.visible=true
cmdnovo.visible=true
cmdsair.visible=true
Não é a maneira mais correta, mas ele vai imprimir esta tela ai direto na impressora padrão.
Mas se você puder usar outras maneiras, seria muito melhor.
Oh menudo, blz?
Gostei do exemplo que me deu, seria isso ai que eu queria mesmo, só queria saber se tem como eu imprimir direto, sem precisar salvar o documento no word.
Obrigado pela ajuda.
Gostei do exemplo que me deu, seria isso ai que eu queria mesmo, só queria saber se tem como eu imprimir direto, sem precisar salvar o documento no word.
Obrigado pela ajuda.
Então INFOSISTEMAS eu acho q no crystal até ficaria mais funcional a parte da impressão, eu só num parei ainda pra estudar o método. Tô me atualizando agora sobre vb, mas se eu num conseguir um outro jeito vou partir pra cima mesmo.
PauloHSV esse jeito que vc me falou é pra imprimir o form né? Mas acho q imprimindo o form vai aparecer tbm os botões e etc. Eu gostaria de imprimir como num exemplo que eu tenho de recibo, mesmo assim, obrigado pela ajuda pessoal.
Vou testando as possÃveis fontes e postando os resultados pra vcs.
Valeu, abraço
PauloHSV esse jeito que vc me falou é pra imprimir o form né? Mas acho q imprimindo o form vai aparecer tbm os botões e etc. Eu gostaria de imprimir como num exemplo que eu tenho de recibo, mesmo assim, obrigado pela ajuda pessoal.
Vou testando as possÃveis fontes e postando os resultados pra vcs.
Valeu, abraço
REINALDOSPINDOL da forma como eu postei vc coloca os botões invisiveis, imprime e depois coloca eles visiveis novamente, com isto eles não vão sair na impressão. Mas é como eu falei se vocÊ puder usar um outro metodo é melhor.
Pessoal tem como eu imprimir direto o recido sem precisar abrir o word antes?
Valeu
Obrigado mais uma vez
Valeu
Obrigado mais uma vez
Tópico encerrado , respostas não são mais permitidas