Discussion:
PDF-Datei über Shell-Anweisung drucken
(zu alt für eine Antwort)
Michael Marschall
2008-10-09 13:00:25 UTC
Permalink
Hallo,
ich würde gerne eine PDF-Datei auf den Standarddrucker ausgeben.
Dies sollte über VBA funktionieren, ich gehe mal davon aus das eine
Shell-Anweisung dafür richtig wäre.
Allerdings fehlt mir das Wissen, wie ich den Befehl so gestallten
sollte, das mir wirklich die PDF-Datei ausgedruckt wird.

Danke im voraus
Ahmed Martens
2008-10-09 13:44:24 UTC
Permalink
Hallo Michael,
Post by Michael Marschall
Hallo,
ich würde gerne eine PDF-Datei auf den Standarddrucker ausgeben.
Dies sollte über VBA funktionieren, ich gehe mal davon aus das eine
Shell-Anweisung dafür richtig wäre.
Allerdings fehlt mir das Wissen, wie ich den Befehl so gestallten
sollte, das mir wirklich die PDF-Datei ausgedruckt wird.
das kannst Du ganz einfach mit der ShellExecute-API erledigen.

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

Public Sub Drucken()
Const SW_SHOWNORMAL = 1

'Ausgabe auf Standarddrucker
ShellExecute(Application.hWndAccessApp, "print", "C:\...\Mein.PDF", "",
"C:\", SW_SHOWNORMAL)

'Ausgabe auf ausgewählten Drucker
ShellExecute(Application.hWndAccessApp, "printto", "C:\...\Mein.PDF",
"MeinDruckerName", "C:\", SW_SHOWNORMAL)

end Sub
Gruß Ahmed
--
Antworten bitte nur in der Newsgroup.
WinXP Prof. / MS-Office 2003 Prof.
Michael Marschall
2008-10-09 13:58:03 UTC
Permalink
Post by Ahmed Martens
Hallo Michael,
Post by Michael Marschall
Hallo,
ich würde gerne eine PDF-Datei auf den Standarddrucker ausgeben.
Dies sollte über VBA funktionieren, ich gehe mal davon aus das eine
Shell-Anweisung dafür richtig wäre.
Allerdings fehlt mir das Wissen, wie ich den Befehl so gestallten
sollte, das mir wirklich die PDF-Datei ausgedruckt wird.
das kannst Du ganz einfach mit der ShellExecute-API erledigen.
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
Public Sub Drucken()
Const SW_SHOWNORMAL = 1
'Ausgabe auf Standarddrucker
ShellExecute(Application.hWndAccessApp, "print", "C:\...\Mein.PDF", "",
"C:\", SW_SHOWNORMAL)
'Ausgabe auf ausgewählten Drucker
ShellExecute(Application.hWndAccessApp, "printto", "C:\...\Mein.PDF",
"MeinDruckerName", "C:\", SW_SHOWNORMAL)
end Sub
Gruß Ahmed
--
Antworten bitte nur in der Newsgroup.
WinXP Prof. / MS-Office 2003 Prof.
Hallo,
leider bekomme ich einen Fehler wenn ich die Zeile so eingebe

-> Fehler beim Kompilieren: Erwartet:=

Hab ich irgendwas vergessen ?

shellexecute(application.hWndAccessApp,"print","O:\S0007401\DATEN
\AUSKUNFT\Strom_Not.pdf","","O:\",SW_SHOWNORMAL)

Danke
Gunter Avenius
2008-10-09 14:04:22 UTC
Permalink
Hallo Michael,
Post by Michael Marschall
Post by Ahmed Martens
Hallo Michael,
Post by Michael Marschall
Hallo,
ich würde gerne eine PDF-Datei auf den Standarddrucker ausgeben.
Dies sollte über VBA funktionieren, ich gehe mal davon aus das eine
Shell-Anweisung dafür richtig wäre.
Allerdings fehlt mir das Wissen, wie ich den Befehl so gestallten
sollte, das mir wirklich die PDF-Datei ausgedruckt wird.
das kannst Du ganz einfach mit der ShellExecute-API erledigen.
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
Public Sub Drucken()
Const SW_SHOWNORMAL = 1
'Ausgabe auf Standarddrucker
ShellExecute(Application.hWndAccessApp, "print", "C:\...\Mein.PDF", "",
"C:\", SW_SHOWNORMAL)
'Ausgabe auf ausgewählten Drucker
ShellExecute(Application.hWndAccessApp, "printto", "C:\...\Mein.PDF",
"MeinDruckerName", "C:\", SW_SHOWNORMAL)
end Sub
Gruß Ahmed
--
Antworten bitte nur in der Newsgroup.
WinXP Prof. / MS-Office 2003 Prof.
Hallo,
leider bekomme ich einen Fehler wenn ich die Zeile so eingebe
-> Fehler beim Kompilieren: Erwartet:=
Hab ich irgendwas vergessen ?
shellexecute(application.hWndAccessApp,"print","O:\S0007401\DATEN
\AUSKUNFT\Strom_Not.pdf","","O:\",SW_SHOWNORMAL)
call shellexecute(...

oder

shellexecute
application.hWndAccessApp,"print","O:\S0007401\DATEN\AUSKUNFT\Strom_Not.pdf","","O:\",SW_SHOWNORMAL

Gruß
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
11. Access-Entwickler-Konferenz http://donkarl.com/?AEK
Nürnberg, 11./12.10. + 18./19.10. + 25./26.10.2008

home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de
Ahmed Martens
2008-10-09 14:03:22 UTC
Permalink
Sorry,
Post by Michael Marschall
Hallo,
leider bekomme ich einen Fehler wenn ich die Zeile so eingebe
-> Fehler beim Kompilieren: Erwartet:=
Hab ich irgendwas vergessen ?
shellexecute(application.hWndAccessApp,"print","O:\S0007401\DATEN
\AUSKUNFT\Strom_Not.pdf","","O:\",SW_SHOWNORMAL)
Danke
mach mal:
dim result as Integer

result = shellexecute(application.hWndAccessApp,"print","O:\S0007401\DATEN\AUSKUNFT\Strom_Not.pdf","","O:\",SW_SHOWNORMAL)

Die ShellExecute kann ein Rückgabewert zurückgegeben, mit dem Du Prüfen
kannst, ob der Aufruf erfolgreich war.

Möchtest Du ohne Rückgabewert arbeiten, so musst Du lediglich

call ShellExecute(...) verwenden.

Gruß Ahmed
--
Antworten bitte nur in der Newsgroup.
WinXP Prof. / MS-Office 2003 Prof.
Sascha Trowitzsch
2008-10-10 18:06:48 UTC
Permalink
Hi,
Post by Ahmed Martens
Hallo Michael,
Post by Michael Marschall
Hallo,
ich würde gerne eine PDF-Datei auf den Standarddrucker ausgeben.
Dies sollte über VBA funktionieren, ich gehe mal davon aus das eine
Shell-Anweisung dafür richtig wäre.
Allerdings fehlt mir das Wissen, wie ich den Befehl so gestallten
sollte, das mir wirklich die PDF-Datei ausgedruckt wird.
das kannst Du ganz einfach mit der ShellExecute-API erledigen.
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
Public Sub Drucken()
Const SW_SHOWNORMAL = 1
'Ausgabe auf Standarddrucker
ShellExecute(Application.hWndAccessApp, "print", "C:\...\Mein.PDF", "",
"C:\", SW_SHOWNORMAL)
'Ausgabe auf ausgewählten Drucker
ShellExecute(Application.hWndAccessApp, "printto", "C:\...\Mein.PDF",
"MeinDruckerName", "C:\", SW_SHOWNORMAL)
Funktioniert nicht.
Siehe einen quasi identischen Thread unter
http://ms-office-forum.net/forum/showthread.php?t=235418
ab Beitrag #13.

Ciao, Sascha
Ahmed Martens
2008-10-10 21:51:48 UTC
Permalink
Post by Sascha Trowitzsch
Hi,
Post by Ahmed Martens
Hallo Michael,
Post by Michael Marschall
Hallo,
ich würde gerne eine PDF-Datei auf den Standarddrucker ausgeben.
Dies sollte über VBA funktionieren, ich gehe mal davon aus das eine
Shell-Anweisung dafür richtig wäre.
Allerdings fehlt mir das Wissen, wie ich den Befehl so gestallten
sollte, das mir wirklich die PDF-Datei ausgedruckt wird.
das kannst Du ganz einfach mit der ShellExecute-API erledigen.
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
Public Sub Drucken()
Const SW_SHOWNORMAL = 1
'Ausgabe auf Standarddrucker
ShellExecute(Application.hWndAccessApp, "print", "C:\...\Mein.PDF", "",
"C:\", SW_SHOWNORMAL)
'Ausgabe auf ausgewählten Drucker
ShellExecute(Application.hWndAccessApp, "printto", "C:\...\Mein.PDF",
"MeinDruckerName", "C:\", SW_SHOWNORMAL)
Funktioniert nicht.
Siehe einen quasi identischen Thread unter
http://ms-office-forum.net/forum/showthread.php?t=235418
ab Beitrag #13.
Ciao, Sascha
bei mir schon. Genau diese Funktion habe ich schon mehrfach verwendet
und nie Probleme gehabt.

Gruß Ahmed
--
Antworten bitte nur in der Newsgroup
Loading...