Newsgroup: it.comp.appl.access
Titolo: stampa file esterno

Buongiorno a tutti.
Ho bisgno di un aiutino.
Da una maschera desidero mandare un file esterno (per esempio un file
di word) in stampa senza aprirlo, come si fa con il pulsante destro
del mouse da gestione risorse per intenderci.
Con la seguente riga di codice apro il file contenuto in [PATH]:
Shell ("rundll32.exe url.dll,FileProtocolHandler " & [PATH])
E' possibile anche richiedere la stampante invece di stampare nella
predefinita?
Grazie a tutti.
Nicola

crea una maschera
crea un pulsante comando0
apri vba ed incollaci il seguente codice:
Option Compare Database
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String,
_
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory
As String, _
ByVal nShowCmd As Long) As Long
Sub PrintFile(NomeFile As String)
    Call ShellExecute(0, "Print", NomeFile, "", "", 0)
End Sub
Private Sub Comando0_Click()
    Dim NomeFile  As String
        NomeFile = "C:\MioFile.doc"
            Call PrintFile(NomeFile)
End Sub
nicola ha scritto:


nicola ha scritto:

No direttamente non è possibile, ma è possibile modificare la
Stampante predefinita, quindi
stampare, e per ultimo reimpostare la stampante originale.
Private Declare Function GetProfileString Lib "kernel32" _
                Alias "GetProfileStringA" _
                (ByVal lpAppName As String, _
                ByVal lpKeyName As String, _
                ByVal lpDefault As String, _
                ByVal lpReturnedString As String, _
                ByVal nSize As Long) As Long
Function GetDefaultPrinter() As String
Dim strDefault As String
Dim lngbuf As Long
    strDefault = String(255, Chr(0))
    lngbuf = GetProfileString("Windows", "Device", "", strDefault,
Len(strDefault))
    If lngbuf > 0 Then
        GetDefaultPrinter = Left$(strDefault, InStr(strDefault, ",") -
1)
    Else
        GetDefaultPrinter = ""
    End If
End Function
Public Sub SetDefaultPrinter(s As String)
'imposta la stampante passata come argomento a predefinita
On Error GoTo Esci
Dim OldPrinter as string
Dim WshNetwork As Object
If IsNull(s) Or s = "" Then Exit Sub
OldPrinter= GetDefaultPrinter()
Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter (s)
' Quì metti la chiamata alla ShellExecute come ti ha suggerito
' BR1
DoEvents
WshNetwork.SetDefaultPrinter (OldPrinter)
Set WshNetwork = Nothing
DoEvents
Esci: 
End Sub 
Dovrebbe funzionare, ma non l'ho provata.
@Alex

@Alex
Innanzitutto grazie.
E mi scuso per l'ignoranza ma.....
non ho ben capito come mandare in esecuzione quello che mi hai
scritto.
Il codice di BR1 ok, l'ho messo e provato e funziona sulla stampante
predefinita.
Non capisco come fare per il resto....cioč
nella maschera che ho creato cosa devo far lanciare con il clic del
mouse? La Public Sub "SetDefaultPrinter" ?
Se sě cosa devo passare come "s"??
Tanto che ci sono aggiungerei anche un'altra cosina.....praticamente
si tratta di stampare dei disegni CAD i quali possono essere di vario
formato...tipo A4, A3......č possibile nel caso passare anche il
formato della pagina (che ho memorizzato in un campo della tabella) o
quello viene "capito" automaticamente durante il lancio della stampa?
Grazie :-)
Nicola



Grazie!
Nicola

Nicola
Mi rispondo da solo al quesito....devo chiamare la sub passando come
"s" il nome della nuova stampante.
Ma c'è un modo per dare la possibilità all'utente di scegliere una
delle stampanti a disposizione?
Tipo un gestione risorse su cui fare una scelta....insomma un modo per
poter visualizzare l'elenco delle stampanti e scegliere quella
desiderata.
Ri-grazie

 Ri-grazie
C'è modo di fare tutto volendo, se usi A>2000 hai a disposizione
l'oggetto Printer
che espone l'elenco delle Printer disponibili, con quello popola una
Combo...!
Ciao
@Alex

nicola ha scritto:

.
vedi il db su
www.sitocomune.com
6.166 Oggetto Printer e gestione stampante

6.166 Oggetto Printer e gestione stampante
Grazie infite!
Con i vostri consigli ho risolto pienamente i miei problemi!
Questo NG è veramente forte, soprattutto grazie a chi come voi
dispensa preziosi consigli a degli ignorantelli come me!
Mi dispiace essere di pochissima utilità...spero che con il tempo e
l'esperienza possa anch'io dare il mio contributo.
Ciao
Nicola


Bravo.
Questo è lo spirito giusto, ti stiamo aspettando
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it