PDA

Vollständige Version anzeigen : Detailbereich; Ereignis beim Drucken


fjusbi
22.03.2004, 20:27
Liebe ACCESS-Profis,

was ich möchte:
in einem Bericht möchte ich mir beim Druck zu jedem ausgedruckten Datensatz abspeichern, dass der Datensatz ausgedruckt wurde.

bisherige Lösung:
Im Detailbereich, in dem meine einzelnen Datensätze gedruckt werden, habe ich bei dem Ereignis "beim Druck" einen VBA-Code hinterlegt, der das entsprechende Datenfeld um 1 je Datensatz erhöht.

Verhalten von Access:
Der Druck wird kurzfristig angezeigt, der Bericht wird aber nicht gedruckt. Anschließend steht der Cursor wieder auf dem Eingabefeld des aufrufenden Formulars. Der Code in dem Ereignis "beim Druck" wird nicht durchlaufen (über Haltepunkt im Debug-Modus kontrolliert).
Wenn ich den Code in dem Ereignis "beim Druck" wieder lösche, erfolgt der Ausdruck anstandslos.

Kann mir jemand einen Tip geben?

Hightower_202
23.03.2004, 06:52
Hallo fjusbi,

schick doch Deine DB mal mit rüber (Datei anhängen).

Anne Berg
23.03.2004, 07:54
Zeig mal den Code, das dürfte einfacher sein.

fjusbi
23.03.2004, 19:46
danke für die Nachfragen. Der Code sieht wie folgt aus:

Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)

'Die Anzahl der Ausdrucke je Rechnungsposition um 1 erhöhen
'AnzahlAusdrucke = AnzahlAusdrucke + 1
Dim strTest As String
strTest = "TEST"

End Sub

Dabei habe ich das Hochzählen der Ausdrucke jetzt erst mal als Kommentar gesetzt, da ich mir dabei auch nicht sicher bin, inwieweit das überhaupt richtig ist. Entscheidend ist für mich jetzt erst mal, das der Debugger trotz Haltepunkt nicht auf der Zeile strTest ..... positioniert und Access das oben beschriebene Verhalten an den Tag legt.

Sonnige Grüße
fjusbi

Nouba
23.03.2004, 20:08
Das wird so vermutlich nicht gehen, weil ein Bericht anders als ein Formular arbeitet.

Weil auch Ausdrucke in die Hose gehen können (Hardwareprobleme) holt man sich IMHO am Besten am Ende der Druckprozedur die Information über einen erfolgreichen Ausdruck vom Benutzer und läßt anschließend eine Aktualisierungsabfrage über das Recordset des Berichts ablaufen. Dabei wird [Zaehlfeld] + 1 zum Aktualisieren verwendet.