Newsgroup: it.comp.appl.access
Titolo: OT Traduzione FAQ 5.1

*****************************
5.1 Change the printer or printer/page settings
Problem
In an MDB/MDE you want to change the printer and/or any
settings for the print process dynamically at runtime.
Solution
Until AX there's the Printer object and the Printer collection (see <F1>
in the VBE). Using them makes it easy to change the current printer
of a certain report e.g.
DoCmd.OpenReport "MyReport", acViewPreview, , , acHidden
Reports!MyReport.Printer = Application.Printers("NameOfAnotherPrinter")
This assignment of a printer will not be saved but is only valid for
the current printing process.
In a similar way it works for most printer settings:
http://support.microsoft.com/?kbid=284286
Another method is to change the default printer:
'************* CODE START *************
'save the original default printer in a variable
Dim strPrinterOld As String
strPrinterOld = Application.Printer.DeviceName
'change the default printer Access wide
Application.Printer = Application.Printers("NameEinesAnderenDruckers")
'here you make some brilliant prints
'at the end reset the original default printer
Application.Printer = Application.Printers(strPrinterOld)
'************* CODE END **************
If you want to fill a combo box (e.g. "cbo_Printers") with all available
printers you only have to set the RowSourceType property to "Value List"
and use the following code in the Open event of the form or the Enter event
of the combo box:
Dim prtloop As Printer
Me!cbo_Printers.RowSource = ""
For Each prtloop In Application.Printers
  Me!cbo_Printers.AddItem prtloop.DeviceName
Next prtloop
Here is some information for older versions of Access that don't
have a Printer object:
Until A00 you have to use workarounds or complicated APIs or the
properties PrtMip and PrtDevMode. (see <F1>)
You can open the report in print preview and then call the print dialog
for the user:
DoCmd.OpenReport "MyReport", acViewPreview
RunCommand acCmdPrint
If you only want to use different paper trays or other settings of a printer
you can install the printer several times for Windows and individually
set the differing properties like another tray etc.
then in the report you use the printer with the desired tray respectively
multiple reports with the according printer.
Here's an example for a programmatic way to change the tray:
http://support.microsoft.com/?kbid=200546
Otherwise you need complex code to change the printer:
http://www.microsoft.com/accessdev/articles/getzch10.htm
At the following pages you can find further examples:
http://ourworld.compuserve.com/homepages/attac-cg/acgsoft.htm
http://www.mcwtech.com/downloads.htm
*********************
Ho omesso i link a siti in tedesco e solo lasciato i link in inglese.
Volentieri includo link ad esempi italiani se esistono.
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
+info sulla prima Conferenza Italiana per Sviluppatori di Access (CISA1) 

 Solution

















5.1 Cambiare la stampante o le impostazioni stampante/pagina
Problema
In un MDB/MDE vuoi cambiare la stampante e /o qualunque
delle impostazioni per un processo di stampa in maniera dinamica,
a run-time.
Da AXP vi è l’oggetto Printer e l’insieme Printer (vedi F1 Help
in VBA). Usandoli diviene più facile cambiare la stampante corrente
di un certo report. P. e.:
DoCmd.OpenReport "MioReport", acViewPreview, , , acHidden
Reports!MioReport.Printer = Application.Printers("NomeDiAltraStampante")
Questa assegnazione di una stampante non sarà salvata ma è soltanto
valida per il corrente processo di stampa.
In maniera similare funziona per le impostazioni della maggior parte delle
stampanti.
http://support.microsoft.com/?kbid=284286
Un altro metodo è cambiare la stampante predefinita:
*******INIZIO CODICE********
‘salva la stampante originale predefinita in una variabile
Dim strPrinterOld As String
strPrinterOld = Application.Printer.DeviceName
'cambia del tutto la stampante predefinita di Access
Application.Printer = Application.Printers("NomeDiAltraStampante")
'qui puoi fare delle spendide stampe
'alla fine resettare alla stampante predefinita originale
Application.Printer = Application.Printers(strPrinterOld)
******** FINE CODICE *********
Se vuoi avere in una casella combinata (p. e., “cbo_Stampanti”) tutte le
stampanti disponibili devi soltanto impostare la proprietà
“Tipo origine riga” a “Elenco valori” ed utilizzare il seguente codice
nell’evento “Su apertura” della maschera o nell’evento “Su INVIO”
della casella combinata.
Dim prtloop As Printer
Me!cbo_Stampanti.RowSource = ""
For Each prtloop In Application.Printers
Me!cbo_Stampanti.AddItem prtloop.DeviceName
Next prtloop
Qui trovi alcune informazioni per le versioni precedenti di Access
che non hanno l’oggetto Printer:
Fino ad A00 devi utilizzare delle scappatoie o complicate API o le
Proprietà PrtMip e PrtDevMode. (vedi F1 Help)
Puoi aprire il report in anteprima stampa e poi richiamare la finestra di
dialogo stampa per l’utente:
DoCmd.OpenReport "MioReport", acViewPreview
RunCommand acCmdPrint
Se vuoi soltanto utilizzare differenti cassetti di alimentazione della
carta o altre impostazioni di una stampante, puoi installare più di una
volta la stampante per Windows e impostare individualmente le differenti
proprietà come altro cassetto etc., poi nel report utilizzi la stampante
con il cassetto desiderato relativamente a report multipli secondo la
stampante (??? Vorresti dire che stampi le varie pagine di
un report in cassetti diversi ???)
Qui vi è un esempio per cambiare il cassetto in modo programmatico:
http://support.microsoft.com/?kbid=200546
Altrimenti hai bisogno di un codice complesso per cambiare la stampante:
http://www.microsoft.com/accessdev/articles/getzch10.htm
Alle seguenti pagine puoi trovare ulteriori esempi:
http://ourworld.compuserve.com/homepages/attac-cg/acgsoft.htm
http://www.mcwtech.com/downloads.htm
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 un report in cassetti diversi ???)
In una stampante che ha diversi cassetti (in cui puoi mettere carta libera o 
intestata
o carat A4 e A5) puoi selezionare il cassetto.
Lui ti dice di predisporre una stampante per ogni cassetto che hai.
MAssimiliano 

MA ha scritto:


Sì questa è la prima parte della frase e va bene.
Infatti trascrivo "puoi installare più di una volta la stampante per
Windows e impostare...." ma quella che non mi riesce chiara è la: 
"then in the report you use the printer with the desired tray respectively
multiple reports with the according printer".
Sembra che manchi qualcosa o che "respectively multiple reports" debba
essere "and respectively multiple pages with the according printer".
Cioè quello che intendo è che si possano stampare le pagine di un report
in maniera diversa:
La prima pagina nella stampante con il cassetto predefinito 1 (Ad esempio
carta intestata);
La seconda pagina e le successive nella stampante con il cassetto
predefinito 2 (carta bianca) e così di seguito...;
Mi sbaglio???


 ha scritto nel messaggio 
news:ctne8h$id5$1...@news.newsland.it...

Non l'avevo vista così, ma se lo è sicuramente hai intuito e di conseguenza 
aggiunto qualcosa da quello che si legge.
MAssimiliano 

 respectively multiple reports with the according printer".
Il compito più frequente in questo contesto è che c'è bisogno
di una copia del intero report (p.e. una fattura) su un'altra carta,
vuol dire da un cassetto diverso.
Allora puoi salvare il report 2 o 3 volte sempre con una stampante
diversa (nella verità solo cassetto diverso) e stampare prima il
report sulla carta bianca, poi un report sulla carta gialla da un'altro
cassetto, poi un report sulla carta rossa... Tutto per avere 3 copie
dello stesso documento.


Karl Donaubauer ha scritto:







Capito. Non erano le pagine dello stesso report ma report da stampare su
cassetti (stampanti) diversi.
Allora :
"poi nel report utilizzi la stampante con il cassetto desiderato
relativamente a report multipli secondo la stampante"
diventa, se va bene per te:
poi nel report utilizzi la stampante con il cassetto desiderato e relative
copie su diverse stampanti (cassetti)."


 relative copie su diverse stampanti (cassetti)."
Credo che c'č ancora un malinteso a causo del "respectively" che
qui č quasi solo un riempitivo (cosě dice il mio dizionario ;-) e
si potrebbe anche usare "or" o meglio "in case you need it".
Cosa pensi se prendiamo 2 frasi. Forse:
"Poi nel report utilizzi la stampante con il cassetto desiderato.
Casomai anche piů copie del report con relative stampanti (cassetti)."


 Casomai anche piů copie del report con relative stampanti (cassetti)."
Va bene cosě
MAssimiliano

 Casomai anche piů copie del report con relative stampanti (cassetti)."
OK
***
Allora:
"Casomai anche piů copie del report con relative stampanti (cassetti)."
Diventa:
"Caso mai anche piů copie del report con relative stampanti (cassetti)."
Oppure (suona meglio):
"Eventualmente anche piů copie del report con relative stampanti
(cassetti).
--
