online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Erklärbär vom 17.07.2019, 10:09 Options

Access Bericht #Fehler unterdrücken

Hallo!

Ich probiere jetzt schon die gnze Zeit an einem Problem rum und habe trotz Suchen leider keine Hilfe gefunden...

Hintergrund:
Ich habe einen Bericht (rep) der sich auf eine Abfrage (qry) bezieht. Durch die Abfrage werden alle Daten die in einem Monat geändert wurden, angezeigt. Dies wird in diesem Textfeld gemacht:

="Im Bereich " & [FACHBER] & " wurden folgende Neuanagen im " & Monatsname(Monat(Formulare!frm_Berichte!Datum)) & " " & Jahr(Formulare!frm_Berichte!Datum) & " durchgeführt:"

Das ganze Funktioniert fast einwandfrei, solange es Datensätze in diesem Monat gibt!

Problem:
Wenn ich einen Monat auswähle, in dem es keine Änderungen, also Datensätze gab, bekomme ich im Bericht statt der ganzen Zeile #Fehler angezeigt!

Frage:/b]
Wie kann ich diesen Fehler abfangen, so dass statt dessen 0 angezeigt wird?

Über eine Antwort würde ich mich sehr Freuen!!

Schon im Vorraus vielen Dank!

Steffen


Antwort schreiben

Antwort 1 von lleopard vom 17.07.2019, 10:25 Options

hi Erklärbär,

is doch eigentlich trivial:

Du willst, wenn die Abfrage keine Datensätze aufweist, ne 0.

Also wenn der bericht sich öffnet, kannst du doch prüfen, ob die qry was zurückgibt.

Wenn nicht, dann hebst du einfach die Zuweisung für das Textfeld auf und schreibst es neu:

also
if dcount("*","qry) =0 then
textfeld ="Im & Monatsname(Monat(Formulare!frm_Berichte!Datum)) & " " & Jahr(Formulare!frm_Berichte!Datum) & " wurden keine Neuanlagen durchgeführt!"
end if

Gruß leo

Antwort 2 von Erklärbär vom 17.07.2019, 10:48 Options

Vielen Dank für die scnelle Hilfe!

Nur leider bekomme ich die Fehlermeldung

Laufzeitfehler '-2147352567 (80020009)':

Sie können diesem Objekt keinen Wert zuweisen.



Hilfst du mir bitte bitte nochmal! Muss ich den Zugriff erlauben? Wenn ja wie??


Viele Grüße

Steffen

Antwort 3 von lleopard vom 17.07.2019, 11:01 Options

hi steffen,

natürlich mußt du vorab dem textfeld die anbindung an das Tabellenfeld nehmen:

textfeld.rowsource = ""

dann ist das textfeld erst wieder frei für eingaben,,, normalerweise....

Gruß Leo

Antwort 4 von Erklärbär vom 17.07.2019, 11:16 Options

Danke für die Antwort!

Ich will ja echt nicht nerven, und hoffentlich bin ich nicht zu doof, aber jetzt bekomme ich:

Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht.



Hier mein Code den Ich (DU :-)) habe:

Option Compare Database
Private Sub Report_Open(Cancel As Integer)
If DCount("*", "qry_reports_status_neu") = 0 Then
ZEILE1.RowSource = ""
ZEILE1 = " Es wurden keine Änderungen durchgeführt!"
End If
End Sub


Ich habe nochmal geschaut, ZEILE1 ist ein Textfeld, ist das so korrekt oder woran liegt es?? *auf die Tastatur beißt*

Viele Grüße

Steffen

Antwort 5 von lleopard vom 17.07.2019, 11:55 Options

also entweder ist es ein Textfeld, dann muß es heißen

ZEILE1.Caption = " Es wurden keine Änderungen durchgeführt!"

oder ein Bezeichnungsfeld, dann

ZEILE1.Value = " Es wurden keine Änderungen durchgeführt!"

aber das siehst du eh, wenn er die Liste öffnet, ob er es anbietet... er, also der blöde Listgenerator von Access... :-)))

Gruß Leo

Antwort 6 von Erklärbär vom 17.07.2019, 13:11 Options

ich hoffe wir schreiben nicht aneinander vorbei!

Wenn ich Zeile1. eingebe bekomme ich weder value noch caption angeboten! und wenn ich es einfach hinschreibe bekomme ich wieder eine Fehlermeldung! Ich bekomme nur

Application
Collums
Controll
Dropdown 
..... usw


angeboten!

Irgendwie ist da der Wurm drin..

Hab Access 2003, viel. hat sich da was geändert??

Ich bin verzweifelt!


Viele Grüße

Steffen

Antwort 7 von Teddy7 vom 17.07.2019, 18:22 Options

wäre es nicht einfacher, die Abfrage da zu machen, wo Du den Bericht aufrufst ?

Das passiert doch sicher per klick auf ein Befehlsfeld. Da kannst Du im klick-Ereignis des Feldes die Anzahl ermitteln und bei 0 eine msgbox ausgeben und sonst den Bericht aufrufen.

Gruß
Teddy

Antwort 8 von Erklärbär vom 18.07.2019, 08:06 Options

Danke für den Tipp, aber der Bericht hat mehrere kriterien nach denen er die Monatsübersicht erstellt, d.h. , dass wenn zu einem Kriterium keine Datensätze vorhanden sind, #Fehler angezeigt wird, obwohl die Abfrage selbst >0 Datensätze hat!

Ich hab irgendwas von nz( SQL....) gelesen, kann ich damit das Problem lösen?

Grüße

Steffen

Antwort 9 von Teddy7 vom 18.07.2019, 08:54 Options

die nz-Funktion macht aus NULL 0.

d.h. wenn im Feld nix drin steht (also = NULL) dann macht diese Funktion daraus 0 oder was auch immer man haben will.

sieht so aus:

nz(Feldname, 0) oder für Texte nz(Feldname, "")

ergibt z.B. in einer Summe:
nz(feldname, 0) + nz(Feldname2, 0)

!!!in einer Abfrage wird das , durch ein ; ersetzt

Gruß
Teddy

Ähnliche Themen

Access Bericht mit mehreren Abfragen
golo108  19.01.2007 - 293 Hits - 7 Antworten

mehrseitigen Bericht mit Access versenden
Sandy12  08.03.2007 - 139 Hits -

Berichte mit access
Rolly  16.07.2007 - 136 Hits - 1 Antwort

Access: mehrere Abfragen in einen Bericht integrieren
Tumulus  05.04.2008 - 162 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026