Hallo, wenn ich eine Bericht aufrufe und dieser hat keine Daten habe ich:
Private Sub Report_NoData(Cancel As Integer)
MsgBox "Für die Firma sind keine Datensätze vorhanden"
Cancel = True
End Sub
Klappt natürlich, aber wenn ich die MsgBox schließe, kommt immer noch:
"Aktion OpenReport wurde abgebrochen"
Kann man diese Meldung irgendwie unterdrücken
Gruß Liene
Hallo,
die Fehlermeldung gehört zu dem Code mit dem Du den Bericht öffnest.
Zeige bitte den Code dazu und nenne die Fehlernummer.
Über eine Fehlerbehandlung - die für eine richtige Anwendung obligatorisch sein sollte - kann man diesen Fehler separat abfangen und meldungslos übergehen.
Den Zustand der Datenlosigkeit könnte man aber auch vor Berichtsöffnung ermitteln und das Ganze dann gleich sein lassen: Erst gucken, ob Loch in der Wand, und dann erst Kopf durch.
Hallo Franz,
den Bericht öffne ich schlicht mit
DoCmd.OpenReport ReportName:="Firma", view:=acViewPreview
die genannte Meldung wird im Bericht beim Ereignis: "Bei Ohne Daten" erzeugt
ebs:
Zitat
Den Zustand der Datenlosigkeit könnte man aber auch vor Berichtsöffnung ermitteln und das Ganze dann gleich sein lassen: Erst gucken, ob Loch in der Wand, und dann erst Kopf durch.
Das hört sich gut an, aber wie mache das bei Berichtseröffnung, wie kann dort ermitteln werden das der Bericht keine daten enthält
Hallo,
ZitatHallo Franz,
Wer ist Franz ? ;D
Zitatdie genannte Meldung wird im Bericht beim Ereignis: "Bei Ohne Daten" erzeugt
Nein, das ist ein Irrtum, das scheint nur so. Die Meldung kommt aus dem aufrufenden Ereignis, weil das ja abgebrochen wird.
Du beantwortest auch nicht alle Fragen:
Zitat... und nenne die Fehlernummer.
Zitatwie kann dort ermitteln werden das der Bericht keine daten enthält
Der Bericht beruht doch bestimmt auf einer Abfrage.
Du musst also nur die Datensätze zählen die diese Abfrage liefert.
Wenn Datensatzzahl = 0, Bericht nicht öffnen.
Jede VBA Prozedur/Funktion sollte eine Fehlerbehndlung enthalten, dort kann man gezielt Meldungen bei einer bestimmten Fehlernummer (daher die Frage) unterdrücken und ggf. durch eine eigene Meldung ersetzen.
Sehr geehrte Herr MzKLMu,
entschuldigen Sie bitte, dass ich Sie einfach mit Franz angeredet habe!!
Leider kann ich die Frage nach der Fehlernummer nicht beantworten, da bei mir weder beim Aufruf noch beim Öffnen des Berichtes eine Fehlermeldung erscheint (Fehlerbehandlung vorhanden)
Wie könnte ich das Zählen der Datensätze denn vor öffnen des Berichtes realisieren
Gruß Liene
Hallo,
Zitatda bei mir weder beim Aufruf noch beim Öffnen des Berichtes eine Fehlermeldung erscheint (Fehlerbehandlung vorhanden)
Du hast doch weiter oben geschrieben, dass eine Fehlermeldung kommt ("Aktion OpenReport....) und diese Meldung hat eine Nummer.
In den von Dir gezeigten Codezeilen gibt es nicht die Spur einer Fehlerbehandlung.
Wenn doch vorhanden, den Code bitte vollständig zeigen.
ZitatWie könnte ich das Zählen der Datensätze denn vor öffnen des Berichtes realisieren
Wie lautet die Datenherkunft/Datenquelle des Berichts?
PS:
Hier im Forum wird sich nicht gesiezt.
Hallo,
und hier ist Franz ;D 8)
quick&dirty:
ZitatSub btnPreview_Click()
On Error Resume Next 'aber bitte nur in diesem speziellen Fall!
DoCmd.OpenReport ReportName:="Firma", view:=acViewPreview
End Sub
Hallo,
vielen Dank für die Antwort, leider bleibt die Codeerweiterung ohne Wirkung.
Die MsBox Meldung. "Aktion OpenReport wurde abgebrochen" erscheint auch ohne Fehlermeldung
Gruß Liene
Hallo,
zeig mal Deinen Code (copy&paste), der den Bericht öffnet...
Oder verwendest Du am Ende ein Makro?
Hallo,
ZitatDie MsBox Meldung. "Aktion OpenReport wurde abgebrochen"
Das ist die Fehlermeldung. Und die hat eine Nummer.
Du willst hier Hilfe und beantwortest aber keine Fragen und geht nur unzureichend auf Hinweise ein.
ZitatWie lautet die Datenherkunft/Datenquelle des Berichts?
Zeige bitte den Code vollständig zum Aufruf des Berichts, mit der Fehlerbehandlung die Du ja nach Deiner Aussage hast.
Aufruf zum Drucken
Public Function DruckFirmen()
On Error GoTo Err_Fehler
DoCmd.OpenReport ReportName:="Firma", view:=acViewPreview, _
WhereCondition:="INr=Forms!Firmen!Firmen_UF!INr"
exit_Err_Fehler:
Exit Function
Err_Fehler:
MsgBox Err.Description, vbInformation, " Meine Firma"
Resume exit_Err_Fehler
End Function
Hallo Liene,
MsgBox Err.Number & vbcrlf & Err.Description, vbInformation, " Meine Firma"
Zeigt dir auch die Fehlernummer an.
Kleiner Tipp; - wenn man noch nicht so sicher mit VBA ist, sollte man sich vielleicht
etwas intensiver mit den Anzeigen der IntelliSense beschäftigen. Also nicht einfach
C&P sondern mal selber tippen. Dabei taucht diese Hilfe nämlich auf sobald man den
"." hinter einem Objekt tippt (s. Anlage).
gruss ekkehard
Hallo,
und die Frage nach der Datenherkunft für den Bericht ist immer noch nicht beantwortet.
Über die DAtenherkunft könnte man nämlich prüfen, ob es Datensätze gibt, vor dem Öffnen.
Hallo an Alle,
ich bedanke mich für Eure Hinweise. Nach meiner Ansicht laufen die geschilderten MsBox-Anzeigen alle ohne einen Fehler ab. Es sind doch lediglich Hinweise.
Ich bedanke mich und denke mal über einen anderen Lösungsweg nach
Gruß Liene
Hallo Liene,
irgendwie verstehe ich Dich nicht. Du willst Hilfe haben, aber ignorierst hartnäckig alle Hinweise und Rückfragen.
Das ist eine ganz klassische Fehlermeldung die in Deiner Fehlerbehandlung mit Err.Description über die MsbBox ausgegeben wird. Wenn Du da noch die Erweiterung die Ekkehard in #12 vorgeschlagen hat einbaust, wird auch die Fehlernummer ausgegeben und man kann gezielt diesen Fehler eleminieren. Und wenn Du die Fehlerbehandlung entfernst, kommt diese Meldung immer noch, auch ohne die MsgBox.
Du antwortest auch einfach nicht auf die Frage nach der Datenherkunft für den Bericht. Wenn ich diese kennen würde, könnte ich Dir eine Zeile Code posten womit Du verhindern kannst, dass der Bericht überhaupt geöffnet wird.
Wenn Du da etwas mehr mitarbeiten würdest, wäre das schon längst erledigt.
Hallo,
die Datenquelle ist eine Abfrage aus einigen Tabellen und anderen Abfragen, also kaum darstellbar.
ZitatDas ist eine ganz klassische Fehlermeldung die in Deiner Fehlerbehandlung mit Err.Description über die MsbBox ausgegeben wird. Wenn Du da noch die Erweiterung die Ekkehard in #12 vorgeschlagen hat einbaust, wird auch die Fehlernummer ausgegeben und man kann gezielt diesen Fehler eleminieren. Und wenn Du die Fehlerbehandlung entfernst, kommt diese Meldung immer noch, auch ohne die MsgBox.
sorry, aber eben bei mir nicht 1000mal versucht
Gruß Liene
Hallo,
ist die Abfrage mit einem Namen gespeichert ?
Wenn ja, wie heißt die Abfrage?
Zitatsorry, aber eben bei mir nicht 1000mal versucht
Hast Du die Codeerweiterung aus #12 mal eingebaut?
Du machst es einem wirklich schwer Dir zu helfen.
Ich habe mir jetzt mal die Mühe gemacht und die Fehlernummer (2501) ermittelt.
Erweitere den Code wie folgt:
Public Function DruckFirmen()
On Error GoTo Err_Fehler
DoCmd.OpenReport ReportName:="Firma", view:=acViewPreview, _
WhereCondition:="INr=Forms!Firmen!Firmen_UF!INr"
exit_Err_Fehler:
Exit Function
Err_Fehler:
If Err.Number = 2501 Then
Else
MsgBox Err.Number & " " & Err.Description, vbInformation, " Meine Firma"
End If
End Function
Zitatund denke mal über einen anderen Lösungsweg nach
Nachdenken ist immer gut.
Ganz anders machen ist ein auch gern beschrittener Weg.
Hallo Eberhard,
und vielleicht ist der Weg ja auch erfolgreich.
Alle Tipps habe ich nicht erfolgreich umsetzen können (Ich weiß, ich bin dabei die Schwachstelle)
Deswegen "neu denken"
Gruß Liene
Zitatdie Datenquelle ist eine Abfrage aus einigen Tabellen und anderen Abfragen, also kaum darstellbar
Vielleicht ist sie gespeichert und hat einen Namen.
Aus der Reihe "umgesetzt":
Dim sCriteria AS String
sCriteria = "INr = " & Forms!Firmen!Firmen_UF!INr ' bei Ganzzahl
If DCount("*", "NameAbfrage", sCriteria) > 0 Then
DoCmd.OpenReport "Firma", acViewPreview, sCriteria
Else
' Alternativmeldung?
End If
Hallo Eberhard,
vielen Dank, genau das war's !!!
so sollte mein "neuer Weg" aussehen, leider habe ich aus Ermangelung von Grundkenntnissen die DCount-Funktion immer falsch geschrieben.
nun läuft es , ich bin dir dankbar. Natürlich auch allen anderen, die versucht haben, mir zu helfen!
Gruß Liene
Hallo,
habe vergessen zu erwähnen, das auch Franz und Klaus schon auf die Zählung der DS hingewiesen haben. Leider ist mir das nicht so richtig gelungen.
Also auch Euch vielen Dank!
Gruß Liene
Hallo,
Zitatund Klaus schon auf die Zählung der DS hingewiesen haben.
Daher ja auch meine Frage nach der Datenherkunft und dem Namen der Abfrage. Die Du aber leider nicht beantwortet hast.