Problem bei Berechnung mit Unterbericht

Hallo Experten,

bei folgendem Problem bitte ich um Eure Hilfe:

der (Ober)Bericht enthält Personalnr. mit Löhnen. Der Unterbericht enthält Personalnr. mit Zuschlägen.

Verknüpft sind die Berichte über die Personalnr.

Wenn ich ein Steuerelement mit der Summe aus Lohn und Zuschlag erstelle, bekomme ich bei all den Personalnr. für die kein Zuschlag vorhanden ist eine Fehlermeldung.

Vielleicht noch folgender Hinweis, im Unterbericht sind nicht alle Personalnr. vorhanden, die im (Ober)Bericht vorhanden sind. Sprich, nur die mit Zuschlag.

Für Hilfe schon jetzt vielen Dank im voraus.

Beste Grüße

Jorma

Wenn ich ein Steuerelement mit der Summe aus Lohn und Zuschlag
erstelle, bekomme ich bei all den Personalnr. für die kein
Zuschlag vorhanden ist eine Fehlermeldung.

Statt „=[Lohn]+[Zuschlag]“ gibst Du „=Wenn(IstNull([Zuschlag]);[Lohn];[Lohn]+[Zuschlag]“ als Steuerelement-Inhalt ein. Das sollte klappen.

Gruß Eillicht zu Vensre

Hallo

Das ist natürlich der erste Gedanke. Aber es funktioniert nicht.

Auch false und true funktionieren nicht.

Es sei noch angemerkt : es handelt sich nicht um einen Zirkelbezug und zur Sicherheit ist die Formel mit „NZ“ eingegeben.

Eventuell noch andere Ideen ?

Beste Grüße

Jorma

Hallo Jorma,

Wenn ich ein Steuerelement mit der Summe aus Lohn und Zuschlag
erstelle,

du erstellst das Feld auf dem Oberbericht? oder im Unterbericht?

bekomme ich bei all den Personalnr. für die kein
Zuschlag vorhanden ist eine Fehlermeldung.

Welche Fehlermeldung bekommst du?

Die Abfrage ISNULL oder ISEMPTY etc. kann nicht greifen, wenn keine Daten vorhanden sind. D.h. du mußt das Ereignis = „Daten im UFO vorhanden“ vorher abfragen und abfangen. Reccount wäre da ein erster Ansatz.

Zweite Möglichkeit, das Summenfeld erstmal auf dem UFO erstellen (im Fußbereich des Unterberichts) und dann in den Oberbericht übernehmen.

Grüße aus Essen
Wolfgang

Hallo Wolfgang,

du erstellst das Feld auf dem Oberbericht? oder im
Unterbericht?

das Feld erstelle ich im Oberbericht

Welche Fehlermeldung bekommst du?

die Fehlermeldung sieht so aus : #Fehler

Zweite Möglichkeit, das Summenfeld erstmal auf dem UFO
erstellen (im Fußbereich des Unterberichts) und dann in den
Oberbericht übernehmen.

habe ich schon probiert, funktioniert aber nicht

Vielleicht noch mal zur Erläuterung:
im Oberbericht sind ca. 20 PersonalNr mit Löhnen (generieren sich aus Abfrage 1).
Im Unterbericht sind aber nur ca. 7 PersonalNr mit Zuschlag (generieren sich aus Abfrage 2).

Bei den 7 übereinstimmenden Datensätzen erhalte ich wunschgemäß die Summe. Nur bei den PersonalNr die allein im Oberbericht, aber nicht im Unterbericht auftauchen, wird mir „#Fehler“ angezeigt.

Leider bin ich nicht so fit, dass ich Deinen Vorschlag mit „Reccount“ umsetzen kann.

Gibt es nicht eine (für einen Anfänger) relativ einfache Möglichkeit Access folgendes zu sagen:
Vergleiche die PersonalNr von Oberbericht und Unterbericht. Wenn identisch, dann gib den Wert aus dem Unterbericht zurück. Wenn im Unterbericht nicht vorhanden, dann gib „0“ zurück ?

Mit besten Grüßen

Jorma

Hallo Jorma,

Zweite Möglichkeit, das Summenfeld erstmal auf dem UFO
erstellen (im Fußbereich des Unterberichts) und dann in den
Oberbericht übernehmen.

habe ich schon probiert, funktioniert aber nicht

was hat nicht funktioniert? Die Erstellung des Feldes im UFO?
Oder die Übernahme ins Hauptformular?

Gibt es nicht eine (für einen Anfänger) relativ einfache
Möglichkeit Access folgendes zu sagen:
Vergleiche die PersonalNr von Oberbericht und Unterbericht.
Wenn identisch, dann gib den Wert aus dem Unterbericht zurück.
Wenn im Unterbericht nicht vorhanden, dann gib „0“ zurück ?

ja, erstelle ein Summenfeld im Fußbereich des Unterberichts.
Name: X_SUMME
Steuerelementinhalt: =SUMME([BETRAG])
(Wenn dein BETRAG-Feld anders benannt ist, den Inhalt entsprechend ändern)

Erstelle ein neues Summenfeld im Oberbericht mit folgenden Daten:
Name: Y_Summe
Steuerelementinhalt: =nz([Unterberichtname].[Formular]![X_SUMME];0)

Dann verhält sich Access genau so wie du es willst :smile:

Grüße aus Essen
Wolfgang

Hallo Wolfgang,

genau so,

ja, erstelle ein Summenfeld im Fußbereich des Unterberichts.
Name: X_SUMME
Steuerelementinhalt: =SUMME([BETRAG])
(Wenn dein BETRAG-Feld anders benannt ist, den Inhalt
entsprechend ändern)
Erstelle ein neues Summenfeld im Oberbericht mit folgenden
Daten:
Name: Y_Summe
Steuerelementinhalt:
=nz([Unterberichtname].[Formular]![X_SUMME];0)

sah mein aller erster Versuch aus. Nach meinen Verständnis von Access ist dies die logische Antwort auf die Aufgabenstellung.
Leider klappt es nicht.

Ich habe die Berichte jetzt noch mal vom Assistenten erstellen lassen, habe Gruppierungen eingerichtet, geändert, und und und…

Es funktioniert nicht.

Ich lasse es jetzt sein und werde mir etwas anderes einfallen lassen.

Vielen Dank für Deine Bemühungen.

Mit freundlichen Grüßen

Jorma

Hallo Jorma,

wenn du willst, schick mal die MDB per Mail rüber.
Ich schau mir das dann mal im Original an.

Grüße aus Essen
Wolfgang

Hallo Wolfgang,

gestern habe ich es leider nicht mehr geschafft Dir zu antworten.

In einer ganz alten Datenbank habe ich die Lösung gefunden :

=Wenn(IsError([UB]![rep_AA]![txt_Betrag]);Null;[UB]![rep_AA]![txt_Betrag])

bringt den gewünschten Effekt.

Dir noch einmal ganz herzlichen Dank für die Mühe und Dein Angebot.

Mit besten Grüßen

Jorma