Ausdrucken mehrere PDF-Dokumente aus Access

12/01/2009 - 21:04 von Nils Berthold | Report spam
Hallo,

zu jedem Artikel in einer MS-Access-2003-Datenbank gehört auch ein
pdf-Datenblatt (mit Pfad, Name und Hyperlink erfasst).

Zu jedem Angebot gehören mehrere Artikel, die nötigen Angaben wie Preis,
Lieferzeit, ... werden als Bericht zu einem Angebot (wie es sich halt so
gehört) zusammengefast ausgedrukt.

Nun würde ich gerne die zugehörigen pdf-Datenblàtter in einer Art
Sammeldruck, das heißt mit einem "Knopfdruck" nacheinander ausdrucken. Die
Datenquelle ist in diesem Fall ein Abfrageergebniss mit den kompletten Pfad
und Namen der auszudruckenden Dateien.

Der Ausdruck eines einzelnen (fest definierten) pdf-Dokumentes im
Hintergrund funktioniert schon über :

call ShellExecute (Me.hwnd, "print", "c:\MeinPfad\MeineDatei.pdf", "", "", 0)

Die funktion ist definiert über :

Public 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

Wie komme ich hier weiter?

Vielen Dank im Vorraus.

Nils Berthold
 

Lesen sie die antworten

#1 Josef Poetzl
12/01/2009 - 22:00 | Warnen spam
Hallo!

Nils Berthold schrieb:
zu jedem Artikel in einer MS-Access-2003-Datenbank gehört auch ein
pdf-Datenblatt (mit Pfad, Name und Hyperlink erfasst).

Zu jedem Angebot gehören mehrere Artikel, die nötigen Angaben wie Preis,
Lieferzeit, ... werden als Bericht zu einem Angebot (wie es sich halt so
gehört) zusammengefast ausgedrukt.

Nun würde ich gerne die zugehörigen pdf-Datenblàtter in einer Art
Sammeldruck, das heißt mit einem "Knopfdruck" nacheinander ausdrucken. Die
Datenquelle ist in diesem Fall ein Abfrageergebniss mit den kompletten Pfad
und Namen der auszudruckenden Dateien.

Der Ausdruck eines einzelnen (fest definierten) pdf-Dokumentes im
Hintergrund funktioniert schon über :

call ShellExecute (Me.hwnd, "print", "c:\MeinPfad\MeineDatei.pdf", "", "", 0)


[...]
Wie komme ich hier weiter?




Eigentlich hast du schon alle Elemente zur Lösung angeführt. ;-)

1. Abfrage mit Dateinamen inkl. Pfad
2. Funktion zum Drucken
=>
Die Abfrage könntest du mit einem Recordset öffnen, dieses in eienr
Schleife durchlaufen, aus den einzelnen DS die Datei auslesen und der
Druckfunktion übergeben.

Prinzip-Code:
public sub PrintFile(byval sFile as string, optional hwnd as long = 0)
ShellExecute hwnd, "print", sFile, "", "", 0
end sub

Schleife für Recordset-Durchlauf:
public sub PrintFilesFromDataSource(sSQL as string)
'sSQL = select-Anweisung mit Datei als erstes Feld
dim rst as dao.recordset

set rst = currentdb.openrecordset(sSQL)
with rst
while not .eof
PrintFile .fields(0)
.movenext
wend
.close
end with
set rst = nothing

end sub


Aufruf:
PrintFilesFromDataSource "select Pfad from tabelle where ..."

(Achtung: ist alles nur Luftcode, der nur das Prinzip zeigen soll.)


mfg
Josef

EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/

Ähnliche fragen