Hallo Zusammen,
ich hab ein FE & BE.
Das Problem ist, wenn mehrere User eingelogged sind, dann dauern Druckvorgänge ewig.
Hat jemand eine Idee wie man das beschleunigen kann bzw an was das liegt ?
Gruss
Bernie
Hier noch der Code, mit dem ich meine Berichte Drucke
If Me!ERFASSUNG_Colli.Form.Recordset.RecordCount > 0 Then
strMsg = "Wollen Sie für dieses Fahrzeug alle Scheine drucken ? "
If MsgBox(strMsg, vbYesNo + vbQuestion, "Abbrechen:") = vbYes Then
'-------------------------------------------------------------------------------------------------------------
' LADELISTE DRUCKEN
'-------------------------------------------------------------------------------------------------------------
On Error GoTo Err_Befehl_Bericht_sendenA_Click
'"TOUR_AKTE"
'----------------------------
DoCmd.OpenReport "TOUR_AKTE", acViewPreview, , "LfdNr=" & Me!LfdNr, acHidden, sOrder
Dim stDocNameB As String
stDocNameB = "TOUR_AKTE"
DoCmd.OpenReport stDocNameB, acNormal
DoCmd.Close acReport, "TOUR_AKTE", acSaveNo
'"Ladeliste"
'----------------------------
DoCmd.OpenReport "Ladeliste", acViewPreview, , "TourNr=" & Me!LfdNr, acHidden, sOrder
Dim stDocName As String
stDocName = "LADELISTE"
DoCmd.OpenReport stDocName, acNormal
DoCmd.Close acReport, "Ladeliste", acSaveNo
'"SPEDITIONSÜBERGABESCHEIN"
'----------------------------
DoCmd.OpenReport "SPEDITIONSÜBERGABESCHEIN", acViewPreview, , "TourNr=" & Me!LfdNr, acHidden, sOrder
Dim stDocNameA As String
stDocNameA = "SPEDITIONSÜBERGABESCHEIN"
DoCmd.OpenReport stDocNameA, acNormal
DoCmd.Close acReport, "SPEDITIONSÜBERGABESCHEIN", acSaveNo
Exit_Befehl_Bericht_sendenA_Click:
DoCmd.Close acReport, "SPEDITIONSÜBERGABESCHEIN", acSaveNo
DoCmd.Close acReport, "Ladeliste", acSaveNo
DoCmd.Close acReport, "TOUR_AKTE", acSaveNo
Exit Sub
Err_Befehl_Bericht_sendenA_Click:
DoCmd.Close acReport, "SPEDITIONSÜBERGABESCHEIN", acSaveNo
DoCmd.Close acReport, "Ladeliste", acSaveNo
DoCmd.Close acReport, "TOUR_AKTE", acSaveNo
MsgBox Err.Description
Resume Exit_Befehl_Bericht_sendenA_Click
DoCmd.Close acReport, "SPEDITIONSÜBERGABESCHEIN", acSaveNo
DoCmd.Close acReport, "Ladeliste", acSaveNo
DoCmd.Close acReport, "TOUR_AKTE", acSaveNo
End If
DoCmd.Close acReport, "Ladeliste", acSaveNo
DoCmd.Close acReport, "SPEDITIONSÜBERGABESCHEIN", acSaveNo
DoCmd.Close acReport, "TOUR_AKTE", acSaveNo
End If
Hallo,
putz mal den Code...
Private Sub Befehl_Bericht_sendenA_Click()
On Error GoTo Err_Befehl_Bericht_sendenA_Click
If Me!ERFASSUNG_Colli.Form.Recordset.RecordCount > 0 Then
If MsgBox("Wollen Sie für dieses Fahrzeug alle Scheine drucken ? ", vbYesNo + vbQuestion, "Abbrechen:") = vbYes Then
DoCmd.OpenReport "TOUR_AKTE", acNormal, , "LfdNr=" & Me!LfdNr, , sOrder 'Wo kommt das "sOrder" her?
DoCmd.OpenReport "Ladeliste", acNormal, , "TourNr=" & Me!LfdNr, , sOrder
DoCmd.OpenReport "SPEDITIONSÜBERGABESCHEIN", acNormal, , "TourNr=" & Me!LfdNr, , sOrder
End If
End If
Exit_Befehl_Bericht_sendenA_Click:
Exit Sub
Err_Befehl_Bericht_sendenA_Click:
'Msgbox "Fehler"
Resume Exit_Befehl_Bericht_sendenA_Click:
End Sub
Danke Franz,
scheint schneller zu sein.
Aber ich teste das noch ein bisschen.
Wenn mehrere UFOs in einem Bericht sind die auf Abfragen basieren, kann das auf die Geschwindigkeit einfluss haben ?
Gruss
Bernie
Hallo,
m. E. hat das mit UFOs gar nichts zu tun. Die Berichte basieren (hoffentlich) auf Tabellen (oder besser Abfragen) , die die Daten unabhängig (bis auf das Filterkriterium) von UFOs liefern.
Ich habe Deinen Code bzgl. der "acHidden"-Geschichte und der "multiplen Fehlerbehandlung" nicht verstanden ... ???
Hi,
:-\ ich hab natürlich mal wieder Ufos in den Berichten. Kann irgendwie nicht alles in einer Abfragezusammenfassen. Hängt mit der schlechten Datenquali aus unserem Warenwirtschaftssystem zusammen ::)
bezgl. Code.
Den hab ich hier aus dem Forum. die achiddengeschichte sollte den Bericht beim Druckvorgang verstecken.
Aber wie man sieht funzt das auch ohne ..dank deinem verbesserten code.
Das " sOrder" ...hmm keine Ahnung, stand so in diesem kopierten Code ;D
Scheint aber keien Auswirkung zuhaben oder ?
Gruss Bernie
Hallo,
naja, copy&paste von Code in eine Anwendung, von dem man nicht weiß , was er genau tut, ist eh ziemlich sportlich.... :o
bei "sOrder" kann ich mir vorstellen, dass damit durch Openargs-Übergabe die Sortierreihenfolge im Bericht dynamisch eingestellt werden soll. Dazu muss aber diese Variable irgendwo mindestens deklariert worden sein. Schreib mal in ALLE Modulköpfe
Option Explicit
hinein und kompiliere die Anwendung im VBA-Editor unter Extras/Debuggen/Kompilieren
Hi Franz,
naja ich will dich ja nicht immer nerven müssen ;D
Also test ich einfach was passiert
"sOrder" ist nicht definiert.. lösch ich einfach raus.
danke für deine Hilfe gruss
Bernie
Hallo,
gegen "testen" hab ich gar nichts, wenn der Effekt auch zum Verstehen des Codes führt... ;)
Zum "Testen" gehört aber unbedingt "Option Explicit" in (ich sag es nochmal) JEDEM Modul (Formular-, Berichts-, Klassen-, Standard-Modul)
Ich bemühe mich ja es zu verstehen.
;D
Ich kenne dich jetzt virtuell seit 7 Jahren..
Ich hoffe es hat sich bei mir und meinen Fragen etwas gebessert oder ? ;D
Gruss Bernie
mhmmm.. ;D ;D :D ;)
ok die Antwort war deutlich ;D
hehe
Danke nochmals !
Lg Bernie