IMPRESSAO SELECIONAR A IMPRESSORA

USUARIO.EXCLUIDOS 24/08/2007 10:30:40
#232521
Galera primeiro BOM DIA

O problema é o seguinte eu tenho uma CommonDialog.ShowPrinter só que no meu código ele muda a impressora padrão, eu queria que ele impremisse na impressora selecionada pelo usuário e depois voltasse a impressora que estava padrão anteriormente


Meu código


Public Sub imprime_rela(rela As String)
On Error GoTo erro

Dim RelatorioAccess As Object

Set RelatorioAccess = CreateObject("Access.Application")

With RelatorioAccess
.OpenCurrentDatabase filepath:=App.Path & "\TarRegistro.mdb"
.Visible = False
FrmConsulta.CommonDialog.ShowPrinter
.docmd.OpenReport ReportName:=rela
.docmd.Close
.Quit
Impressao = True

End With


Exit Sub

erro:
Impressao = False
MsgBox "Erro no Processo de Relatório" & vbCrLf & _
" Descrição do erro: " & Err.Description, vbExclamation, prod

End Sub



Agradeço desde ja a todos
MJAC 25/08/2007 14:34:10
#232680
Resposta escolhida
Bom dia RAFAEL.DYAS

Para que você possa retornar com a impressora, basta armazenar a impressora padrão e depois retorná-la use isso:

  
Dim ImpInicial As String
ImpInicial = Printer.DeviceName

'Para retornar
Printer.DeviceName = ImpInicial


Abraços...
USUARIO.EXCLUIDOS 27/08/2007 10:48:41
#232803
Vélhinho

Deu Este erro

---------------------------
Microsoft Visual Basic
---------------------------
Compile error:

Wrong number of arguments or invalid property assignment
---------------------------
OK Ajuda
---------------------------


MJAC 27/08/2007 11:55:41
#232825
Opa... falha minha...
Para retornar com a impressora é preciso setar a classe toda, então:

  
Dim x
For Each x In Printers
If ImpInicial = x.DeviceName Then
If Printer.DeviceName <> x.DeviceName Then Set Printer = x
Exit For
End If
Next


agora foi funfar... abraços...
MJAC 27/08/2007 12:00:37
#232828
Sua rotina completa ficará assim:

Public Sub imprime_rela(rela As String)
On Error GoTo erro
Dim ImpInicial As String 'Isso foi add
ImpInicial = Printer.DeviceName 'Isso foi add

Dim RelatorioAccess As Object

Set RelatorioAccess = CreateObject("Access.Application")

With RelatorioAccess
.OpenCurrentDatabase filepath:=App.Path & "\TarRegistro.mdb"
.Visible = False
FrmConsulta.CommonDialog.ShowPrinter
.docmd.OpenReport ReportName:=rela
.docmd.Close
.Quit
Impressao = True

End With

Dim x 'Isso foi add
For Each x In Printers 'Isso foi add
If ImpInicial = x.DeviceName Then
If Printer.DeviceName <> x.DeviceName Then Set Printer = x
Exit For
End If
Next

Exit Sub

erro:
Impressao = False
MsgBox "Erro no Processo de Relatório" & vbCrLf & _
" Descrição do erro: " & Err.Description, vbExclamation, prod

End Sub


USUARIO.EXCLUIDOS 27/08/2007 12:59:06
#232839
MJAC Valeu pela ajuda grato mesmo...[S67][S67][S71][S71][S71][S71][S71][S71][S71][S71][S71]
Tópico encerrado , respostas não são mais permitidas