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.
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.
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.
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 ?
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
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.