PDA

Vollständige Version anzeigen : Laufzeitfehler 2501


jungerhans
03.05.2011, 15:42
Hallo,

habe bisher meine Berichte mit einem Marko ausgeführt.
Wenn ein Bericht keine Daten hatte, so habe ich im Bericht im Ereignis "Bei ohne Daten" Canel = True dies abgebrochen.

Heute habe ich das ganze in VBA umgewandelt und starte nun die Berichte über ein Modul. Jetzt hängt sich das Modul auf, da keine Daten vorhanden waren.

Habe schon versucht mit Docmd.Setwarnings die Meldungen zu deaktivieren, aber ohne Erfolg.

Hat jemand eine Idee wie ich die Lösen kann!!!!

Vielen Dank

Micha_DU
03.05.2011, 15:44
ja, am besten erstmal dein Modul zeigen :-)

Thomas Möller
03.05.2011, 17:23
Hallo!

Wenn ein Bericht keine Daten hatte, so habe ich im Bericht im Ereignis "Bei ohne Daten" Canel = True dies abgebrochen.
Heute habe ich das ganze in VBA umgewandelt und starte nun die Berichte über ein Modul. Jetzt hängt sich das Modul auf, da keine Daten vorhanden waren.

Den auftretenden Fehler kannst Du in Deiner Fehlerbehandlungsroutine auffangen und gezielt übergehen, z.B. so:

On Error Got Handle_Error

DoCmd.OpenReport "rpt_DeinBericht"

Exit_Here:
On Error Resume Next
Exit Sub

Handle_Error:
Select Cse Err.Number
Case 2501 'DoCmd abgebrochen
Resume Next
Case Else
Msgbox Err.Description, vbCritical, Err.Number
End Select

HTH

Lanz Rudolf
03.05.2011, 18:12
Hallo
da Du Deinen Code nicht zeigst
zeige ich Dir wie ich das gelöst habe:
Private Sub Report_NoData(Cancel As Integer)
MsgBox “Es gibt Keine Daten für diesen Bericht!“ & vbCrLf & “Der Bericht wird geschlossen“, _
VbInformation, “Keine Daten“
Cancel = True
End Sub
oder
Schliese Berich wenn Summe = 0
Private Sub Report_Open(Cancel As Integer)
If DSum("Rechnungsposten", "DeineAbfrageFürDenBericht") < 1 Then Cancel = True
End Sub

jungerhans
04.05.2011, 10:53
Das Modul ist kein Hexenwerk
ich öffene den Bericht

DoCmd.OpenReport "B_IW_LA", acViewNormal, "", ""


und habe im Bericht

Private Sub Report_NoData(Cancel As Integer)
cancel = True
End Sub


Ziel ist nur, dass der Bericht nicht gedruckt wird, sofern keine Daten exitieren!!!

Lanz Rudolf
04.05.2011, 11:05
Hallo
und das geht nicht ?
schon versucht beim Open nur
DoCmd.OpenReport "B_IW_LA", acViewNormal

ohne , "", ""

und :
Cancel = True
nicht
canel = True

jungerhans
04.05.2011, 11:14
Ja das habe ich auch schon probiert.
Sorry war nur ein Schreibfehler natürlich steht cancel drin!

Es läuft alles bis zum cancel=true und dann bringt er den Laufzeitfehler 2501. Dh. Das Modul hat ein Problem mit dem Abbruch des Reports?!?!?!

hab jetzt den Report erweitert. Jetzt wird der Report ohne Fehler geschlossen, aber das Modul auch beendet?!??!

Private Sub Report_NoData(Cancel As Integer)
Cancel = True
DoCmd.SetWarnings = True
End Sub

Lanz Rudolf
04.05.2011, 11:38
Hallo
Wo Hast Du Diesen Code ?
doch im Objekt-Modul des Berichts ( Report ) oder ?

aber das Modul auch beendet?!??!
das ist doch richtig was soller den noch da ?

ich mache die Meldung MSGBOX vor Cacel = True s. mein Bspl oben

Scorefun
04.05.2011, 11:53
Ja das habe ich auch schon probiert.
Sorry war nur ein Schreibfehler natürlich steht cancel drin!

Es läuft alles bis zum cancel=true und dann bringt er den Laufzeitfehler 2501. Dh. Das Modul hat ein Problem mit dem Abbruch des Reports?!?!?!


Den Vorschlag von Thomas aus Beitrag #3 noch nicht übernommen?
Das löst Dein Problem.

jungerhans
04.05.2011, 13:04
Habe die Funktion aus Beitrag 3 eingebaut und es funkt!!!!

Jungs ihr seit Spitze!!!