Access Bericht drucken

Hi,
habe einen bericht erstellt, sortierung läuft, Druckauswahl wir angezeigt, nur wenn ich sage drucken, dann meldung !
Aktion kann nicht ausgeführt werden, solange berichtsereignis verarbeitet wird.
kann jemand helfen ? Und nach dem Druck soll bericht beendet weden.
Gruss Jürgen
Code:
Private Sub Report_Open(Cancel As Integer)

On Error GoTo Err_cmdDruck_Click

Dim stDocName As String
stDocName = „Druck_Schaden“
DoCmd.OpenReport stDocName, acPreview
If Me.OrderByOn Then
Reports!meinBericht.OrderBy = „Jahr“
Reports!meinBericht.OrderByOn = True
End If
DoCmd.OpenReport stDocName, acViewPreview
DoCmd.RunCommand acCmdPrint
DoCmd.Close acReport, stDocName
Exit_cmdDruck_Click:
Exit Sub
Err_cmdDruck_Click:
MsgBox err.Description
Resume Exit_cmdDruck_Click
End Sub

Hallo echojürgen,

leider kann ich Dir nicht helfen.

Ich hoffe, Du bekommst eine hilfreiche Rückmeldung von den anderen Experten.

Viele Grüße
Alex

Hy Jürgen

'Das Folgende würde ich nicht im Bericht machen sondern die Recordsource das Berichtes schon beim Aufruf des Berichtes entsprechend ändern, das spart jede menge Laufzeit und verhindert warscheinlich auch den auftretenden Laufzeitfehler.

If Me.OrderByOn Then
Reports!meinBericht.OrderBy = „Jahr“
Reports!meinBericht.OrderByOn = True
End If

Das schon beim Aufruf des Berichtes mithilfe eines SQL Strings festlegen.
Beispiel:

dim SQLzeile as string
stSQL = „SELECT * FROM Tabname WHERE Adresse=‚Richardstr. 36A‘“
stDocName = „Berichtname“
'Zunächst wird der Bericht in Designmode geöffnet:
DoCmd.OpenReport stDocName, acViewDesign
'Dann wird der Bericht die SQLZeile als neuer Recordsource zugewiesen:
Reports(stDocName).RecordSource = stSQL
'Und schließlich Bericht in den Preview gewechselt:
DoCmd.OpenReport stDocName, acViewPreview

Hi Frank,
danke mal für die Antwort, der Ansatz ist gut.
Mit einer zeile kann ich nichts anfangen, bzw. wie muss ich diese auf meinen Code anpassen?

stSQL = "SELECT * FROM Tabname WHERE …

Vermutlich fehlt auch die Dim.
Gruss Jürgen

hy Jürgen

Vermutlich fehlt auch die Dim.

Ja! Muss heißen Dim stSQL as string statt dim SQLzeile as string.

Als Vorlage für den SQL Text kannst du den derzeitigen
Recordsource deines Berichtes verwenden.
Beispiel:
stDocName = „Berichtname“
DoCmd.OpenReport stDocName, acViewDesign
debug.print Reports(stDocName).RecordSource

Damit hast du schon einmal eine Vorlage. Dann diese Vorlage verändern. Wenn du dich mit SQL nicht auskennst Poste mir bitte das Ergebniss. Wenn du dich ein bischen auskennst benutze den Abfrage Generator mit der Sql Anweisung die du aus dem Debug.Print hast.(SQL Ansicht) dann auf normale Ansicht und Sortieren nach hinzufügen. Entsprechender SQL Text dann wieder in der SQL Ansicht. Parameter in Hochkommas!