PDF-Erzeugung – Teil 1

Hilfsfunktionen

Darüber hinaus benötigen Sie zur Nutzung der Komponente noch ein paar Hilfsfunktionen getDBPfad, Warten, Dateiinbenutzung und Dateivorhanden. (Listing 2).

Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As
Integer, ByVal dwMilliseconds As Integer) As Integer
Public Function Warten(ByVal intSek As Integer)
WaitForSingleObject -1, intSek
End Function
Function getDBPfad() As String
getDBPfad = Left(CurrentDb.Name, _
Len(CurrentDb.Name) - _
Len(Dir(CurrentDb.Name)))
End Function
Function Dateivorhanden(strDatei As String)
If Dir(strDatei) <> "" Then
Dateivorhanden = True
Else
Dateivorhanden = False
End If
End Function
Function Dateiinbenutzung(strDatei As String) As Boolean
Dim intD As Integer
Dateiinbenutzung = True
On Error GoTo FEHLER
'Versuchen, die Datei exklusiv zu öffnen
intD = FreeFile
Open strDatei For Binary Lock Read Write As #intD
Close #intD
Exit Function
FEHLER:
If Err.Number = 70 Then
Dateiinbenutzung = False
Resume Next
End If
End Function

Die Funktion Warten sorgt dafür, dass Access eine vorgegebene Zeitspanne wartet, bevor mit der nächsten Anweisung fortgefahren wird. Das ist deshalb notwendig, weil mit der Übergabe des Druckauftrags an den Druckertreiber der Auftrag aus Sicht von Access abgeschlossen ist. Die Komponente erfordert es jedoch, dass eine Wartezeit nach Initialisierung eingehalten wird, bis die Postscript-Datei erzeugt ist, aus der dann die PDF-Datei erstellt wird. Mit der Funktion Dateivorhanden können Sie prüfen, ob die Ausgabedatei schon vorhanden ist. Falls ja, können Sie mit der Funktion Dateiinbenutzung feststellen, ob diese noch geöffnet und damit noch nicht vollständig erzeugt wurde. Um das zu prüfen, versucht die Funktion einfach, die Datei binär zu öffnen. Gelingt dies nicht, wird die Datei noch verwendet, ansonsten wird sie geschlossen.