Newsgroup: it.comp.appl.access
Titolo: stampa da codice

ciao a tutti, il mio quesito è questo:
è possibile che sia da excel che da word è possibile stampare su file da 
codice decidendo il nome del file direttamente da codice, mentre con Access 
non è possibile?
Oppure si puo' fare ma non ho trovato il modo?
grazie
Riccardo 


Se ho capito bene la tua domanda. Prova cosě
Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA" (ByVal 
hwnd As Long, ByVal lpOperation As String, ByVal lpFile As Any, ByVal 
lpParameters As Any, ByVal lpDirectory As Any, ByVal nShowCmd As Long) As 
Long
Public Sub PrintFile(NomeFile As String)
    ShellExecute 0, "Print", NomeFile, "", "", 1
End Sub

 End Sub
_______________________________
se ho ben capito il tuo esempio stampa il file che viene indicato come 
nomefile,
invece io voglio stampare i reports direttamente su file assegnandogli un 
nome, ad esempio
voglio stampare il Report TabulatoVendite direttamente in 
"c:\tabulati\tabulatovendite_maggio05"
e' possibile con access?
con il metodo PrintOut non è possibile assegnare il nome e sinceramente non 
trovo altro.
grazie
Riccardo 

 wrote in message
news:d5sih2$a5l$
1...@news.panservice.it

Innanzitutto occorre capire che tipo di File stampa pensi
di ottenere.
Con Access puoi ottenere una stampa su File di un formato
SNP(Snapshot), altrimenti hai, in base all'HELP altri formati
non nativi di Access ma supportati.
Ovviamente hai la possibilità di specificare il Nome del File
e la destinazione.
A tal proposito ti suggerisco di valutare questa Funzione:
DoCmd.OutputTo acOutputReport, _
               stDocName, _
               "Snapshot Format", _
               "c:\file.snp", True 
Nell'Help ci sono esempi per la stampa in formato 
acFormatASP
acFormatHTML
acFormatIIS
acFormatRTF
acFormatTXT
acFormatXLS
Saluti.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 non nativi di Access ma supportati.
devo stampare un file postscript in modo da poterlo convertire in pdf con 
ghostscript.
e' possibile?
ciao e grazie
Riccardo



A report aperto CTRL+P spunti stampa su file e gli dai il nome.
Questo ti permette di salvare il report con la codifica per la tua stampante 
ma non ha molto senso a mio avviso.
I report di Access non possono essere salvati al modo di un documento word o 
meglio possono essere salvati (con limitazioni) come file rtf, xls, testo, 
html.
Per fare questo non serve il PrintOut ma l'esportazione.
Leggiti il Metodo OutputTo credo faccia al caso tuo
Ciao, Carlo 

 Riccardo
Si č possibile, devi seguire le impostazioni specifiche
ed impostare la stampante non il modo di Stampa.
Non ha nulla a che vedere Access con questo, ma l'impostazione
della Stampante(Fittizia) che devi avere impostato.
Le istruzioni a riguardo sono abbastanza dettagliate
e trovi un mio Post di qualche mese fą in cui spiegavo
come fare.
Io mi ero appoggiato alla DLL di Ghostscript, direttamente
per evitare il PrinterDialog, ma č una tecnica che non uso
avendo a disposizione Acrobat_Writer, in ogni caso se trovo
il codice te lo posto.
Ciao


 @Alex
___________________
io praticamente faccio questo:
per stampare su file da word
    objDoc.Application.ActivePrinter = "AppleC"
    objDoc.Application.PrintOut OutputFileName:=nomeFile, Filename:="", 
Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", 
PageType:=wdPrintAllPages, _
        Collate:=True, Background:=True, PrintToFile:=True, 
PrintZoomColumn:=0, _
        PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
    objDoc.Application.ActivePrinter = stpPred
per stampare su file da excel
    objXls.ActiveWindow.SelectedSheets.PrintOut Copies:=1, 
PrintToFile:=True, _
        ActivePrinter:="AppleC", Collate:=True, PrToFileName:=nomeFile
dove AppleC è una stampante Apple Color Laser Writer 12/660 PS
ed ho risolto in questo modo, ma con access non ci sono riuscito, in quanto 
il metodo PrintOut di access non prevede
OutputFileName (come in word) oppure  PrToFileName (come in excel).
se trovi quel codice mi faresti un grande favore.
ciao
Riccardo 

 Ciao, Carlo
___________--
se lo esporto come dici tu perdo tutta la formattazione, e poi debbo 
convertirlo in pdf.
ciao
Riccardo 

 Riccardo
Purtroppo il DEMO che feci non lo trovo più, non stupirti con
me è normale, se mi ricordassi dove metto tutti gli esperimenti
che faccio.......!
In ogni caso ho recuperato un pò di codice da un vecchio post
che potrebbe aiutarti:
Devi crearti una stampante a Colori 
che supporta il salvataggio in formato PS (ad esempio Apple Color 
LaserWriter 12/600) e la chiami ad esempio "2PDF" ad esempio.
Quindi imposti nelle proprietà la Porta a stampa su File e gli indichi
il
Nome 
FISSO del File : c:\Temp.ps (questo nome lo userai anche dopo) 
Fai una stampa di prova e verifica che crei il file in C:\ 
Quindi sei a posto: 
Ora la Sub PrintReport può essere migliorata estraendo il Nome 
della Stampande di Default in modo tale da evitare di doverla 
scrivere a mano, con WSH è possibile, ma la cosa è assai più complessa 
per chi non ha familiarità con le classi di SDK che farlo con le API. 
Public Sub CreaFilePDF(ReportName as string, PDF As String) 
        Dim Comando As String 
        Dim FileInput As String 
        Dim TipoOutput As String 
        Dim FileOutput As String 
        call PrintReport (ReportName, acviewpreview) 
        '    Quì ci và il Path dell'eseguibile gswin32c.exe 
        Comando = "c:\gs\gs7.04\bin\gswin32c " 
        FileInput = " c:\Temp.ps " 
        TipoOutput = " -sDEVICE=pdfwrite " 
        FileOutput = " -sOutputFile=" & PDF & " " 
        retVal=Shell (Comando & " -dNOPAUSE -dBATCH -dNOPROMPT " & _ 
                                  FileOutput & _ 
                                 TipoOutput & _ 
                                 FileInput, vbMinimizedNoFocus) 
End Sub 
Sub PrintReport(strReport as String, optional eView As Access.AcView = 
acViewNormal) 
    Const PDF_PRINTER as String = "2PDF" 
    Const ORIGINAL_PRINTER as String = "NOME STAMPANTE PREDEFINITA" 
    Dim net as WScript.Network 
    Dim fso as Scripting.FileSystemObject 
    Set net = new WScript.Network 
    net.setDefaultPrinter PDF_PRINTER 
    DoCmd.OpenReport strReport, eView 
    DoEvents 
net.setDefaultPrinter ORIGINAL_PRINTER 
Set net = Nothing 
End Sub 
Spero possa essere utile. 


 FISSO del File : c:\Temp.ps (questo nome lo userai anche dopo)
E proprio qui inizia il problema :-(
Ho Windows XP, uso già la stampante che mi hai consigliato, ma non mi 
permette
(o almeno io non trovo il modo) di impostare la stampante in modo che
crei il file c:\Temp.ps .... mi permette di specificare solo gce deve 
stampare su file.
come risolvo?
grazie
Riccardo