[resolvido] Impressora específica

Moderador: Avelino Sampaio

drigo_martins
Mensagens: 57
Registrado em: 08 Jun 2015, 16:54

[resolvido] Impressora específica

Mensagempor drigo_martins » 12 Abr 2017, 17:01

Olá.. seria possível alterar via código vba a impressora específica de um determinado relatório?

O problema:
Há várias impressoras no pc (A, B e C). Preciso que o relatório seja impresso em uma impressora específica, por ex. na A.

Já tentei implementar várias rotinas, como escolher a impressora antes da impressão:
Call fncImprimir("relatorio", acViewNormal, criterio, , , Me!ListaImpressoras.ListIndex) - do próprio fórum.

Nesta rotina, até imprimi, mas ele assume o formato do papel da impressora padrão, e não a que esta imprimindo, ou seja, o relatório fica desfigurado e acaba imprimindo várias páginas.

Estou tendo que deixar a impressora como padrão para imprimir corretamente (pois ela tem medidas diferentes), mas esta causando transtorno pois o usuário tem que ficar modificando isso a toda hora.

Já tentei também uma rotina que altere a impressora padrão e volte a que estava, mas neste caso, o código até altera a impressora padrão, mas não surte efeito no access, a não ser que eu feche e abra novamente (e isto é inviável). Isto é outra dúvida, se caso eu altere manualmente, não preciso fechar a aplicação, e o relatório é impresso normalmente. Segue código que altera a impressora padrão que tentei:

Código:
On Error GoTo trataerro_impressora
'Adicionar em References o item: Windows Script Host Object Model (arquivo chamado wshom.ocx)
Dim W As New WshNetwork
Dim ImpPadrao

ImpPadrao = Printer.DeviceName ' guarda a impressora padrão atual
If ImpPadrao <> "EPSON LX-300+ /II" Then
W.SetDefaultPrinter ("EPSON LX-300+ /II") ' seta a impressora padrão

End If

W.SetDefaultPrinter (ImpPadrao) ' seta a impressora padrão

Exit Sub

trataerro_impressora:
If err.number <> 0 Then
MsgBox "É necessário ter a impressora EPSON LX-300+ /II configurada." & vbNewLine & _
vbNewLine & err.number & vbNewLine & err.Description
Exit Sub
End If

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Avelino Sampaio
Mensagens: 1885
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Impressora específica

Mensagempor Avelino Sampaio » 12 Abr 2017, 19:52

Drigo,

volte ao meu artigo e observe que deve definir o formato do papal antes de chamar pela função fncImprimir()

http://usandoaccess.com.br/tutoriais/openreport_alteracoes-margens-papel-e-impressora.asp?id=1#inicio

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

drigo_martins
Mensagens: 57
Registrado em: 08 Jun 2015, 16:54

Re: Impressora específica

Mensagempor drigo_martins » 14 Abr 2017, 15:09

Modifiquei o formato do papel e deu certo... mas não estou conseguindo utilizar a opção NumeroDeCopias
Verifiquei que na função fncimprimir esta variavel não inserida no código, apenas esta referenciada...

Tentei modificar, mas continua imprimindo 1 cópia.

drigo_martins
Mensagens: 57
Registrado em: 08 Jun 2015, 16:54

Re: Impressora específica

Mensagempor drigo_martins » 14 Abr 2017, 15:20

Fiz essa modificação na fncimprimir e deu certo:

Dim i As Integer
For i = 1 To setPrinter.NumeroDeCopias
DoCmd.OpenReport NomeRelatorio, acViewNormal, , Filtro
Next

Obrigado.

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Relatórios”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 1 visitante