Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Liene am April 04, 2020, 12:42:31

Titel: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 12:42:31
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 13:00:58
Hallo,
die Fehlermeldung gehört zu dem Code mit dem Du den Bericht öffnest.
Zeige bitte den Code dazu und nenne die Fehlernummer.
Titel: Re: Bericht schliessen
Beitrag von: ebs17 am April 04, 2020, 13:02:30
Ü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.
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 14:09:33
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 14:22:16
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.
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 14:40:55
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 14:51:16
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.

Titel: Re: Bericht schliessen
Beitrag von: DF6GL am April 04, 2020, 15:09:37
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
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 15:24:53
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
Titel: Re: Bericht schliessen
Beitrag von: DF6GL am April 04, 2020, 15:27:37
Hallo,
  zeig mal Deinen Code (copy&paste), der den Bericht öffnet...

Oder verwendest Du am Ende ein Makro?
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 15:29:47
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.
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 16:18:16
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


Titel: Re: Bericht schliessen
Beitrag von: Beaker s.a. am April 04, 2020, 17:19:41
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 17:41:47
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.
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 18:04:47
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 18:14:54
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.
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 19:26:26
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 04, 2020, 19:40:22
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
Titel: Re: Bericht schliessen
Beitrag von: ebs17 am April 04, 2020, 21:23:24
Zitatund denke mal über einen anderen Lösungsweg nach
Nachdenken ist immer gut.
Ganz anders machen ist ein auch gern beschrittener Weg.
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 04, 2020, 22:47:24
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
Titel: Re: Bericht schliessen
Beitrag von: ebs17 am April 04, 2020, 22:56:06
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
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 05, 2020, 10:49:20
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
Titel: Re: Bericht schliessen
Beitrag von: Liene am April 05, 2020, 11:05:20
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
Titel: Re: Bericht schliessen
Beitrag von: MzKlMu am April 05, 2020, 11:23:52
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.