Access formel für steuerelement SUMMEWENN ?

Ich habe eine Tabelle mit den Feldern Kategorie, Zeitaufwand. Die Einträge Kategorie sind Firma oder Privat. in Zeitaufwand stehen Minuten. im Kofteil des Formulars möchte ich in einem Textfeld die Summe aller privaten Minuten und die Summe aller Firmenminuten ausgeben. Wie heißt die einzugebende Formel? (ähnlich summewenn in excel) Danke schon mal vorab. ( von VBA hab ich keine Ahnung)

da kann ich leider nicht helfen

Das macht man über eine eigene Query (Abfrage) in der man mit Summe [Feldname] die Summe ermittelt. Wichtig ist, dass die anderen Felder alle nicht angezeigt werden. Aber Bedingungen können Sie schon enthalten: Wie „Privat*“ o.ä.

Moin

Ich hoffe ich habe deine Frage richtig verstanden.

Ich würde mir erst einmal zwei Summenfelder, je eins für Firma und Privat erstellen.
Im Formularfeld kannst du dann die ERgebnisse mit folgender Formel zusammenfassen:
= "Ergebnis Firma " & ZelleFirmensumme z.B. X23 & "Ergebnis Privat " & ZellePrivatsumme z.B. X24

Der Text in " " ist tatsächlich Text
Die & verbinden die Texte mit den Zellinhalten.

Grüße aus Bremen/Berlin

Matthias

Hallo jolana,
wenn keine speziellen Anforderung (wie z.B. zeitliche Eingrenzungen), ist das recht einfach.

z.B. für „privat“

  • Textfeld (ungebunden) erstellen (txtSuPrivat)
  • Steuerelementinhalt: =DomSumme("[Zeitaufwand]";„NameTabelle“;"[Kategorie] = ‚Privat‘")

Sorry, habe mich tatsächlich total verlesen…
War aus dem Excel und nicht dem Access-Trip.

Mir fallen auf anhieb drei Lösungen ein:

  1. kann man jeweils eine Domsummen-Funktion aufrufen, wobei ich die Schreibweise nicht exakt weiß, da sie von Version zu Version variieren kann.

  2. erstellt man eine Abfrage die nach Kategarie gruppiert und die Stunden summiert und bindet diese als Unterformular ein.

Ich hoffe diese Antwort war besser :smile:

Nochmals Grüsse Matthias

Hi Jolana,
mit dem Abfrageassistenten erstellst du mit ein paar Klicks eine Zusammenfassungsabfrage (Option: Summe) deiner Daten, die in der SQL-Ansicht dann ungefähr so aussieht:

SELECT DISTINCTROW [Kategorie], Sum([Zeitaufwand]) AS [Summe von Zeitaufwand]
FROM Zeitverteilung
GROUP BY [Kategorie];

wobei Zeitverteilung der Tabellenname ist. Wenn dir das nicht schön genug ist, erstellst du auf dieser Datenbasis mit dem Formularassi die Optik deiner Wahl.
Schau dir auch mal den Abfrageentwurf an, wenn du den verstehst, kannst du noch deutlich mehr basteln.
Prinzipiell gehts auch mit Domänenaggregatsfunktionen, ist aber komplizierter.
VBA ist hier mit Kanonen nach Spatzen geschossen.

Alles klar?
Gruß Thomas

tut mir leid; ich bin Anfänger und weiß solche Dinge nicht; Gruß Gaby

Also das müßte wohl auch ohne VBA gehen, indem man einfach die Formel in das Eigenschaftsfeld „Steuerelementinhalt“ des Textfeldes schreibt, das die Summe ausgeben soll. Aber ich würde das auch mit VBA machen, da man da flexibler ist und auch eine Fehlerbehandlung zufügen könnte, falls mal erforderlich.

Also Du setzt in den Kopfteil des Formulars zwei Steuerelemente vom Typ Textfeld (Register „Daten“) und im Register „Ereignis“ des Formulars (nicht des Textfeldes) wählst Du im Feld „Beim Anzeigen“ den Eintrag „[Erignisprozedur]“ aus. Dann klickst Du hinten auf die drei Punkte rechts neben dem DropDown-Pfeil, um in den VBA-Editor zu kommen, und legst in dem dort dann schon generierten Ereignis „Private Sub Form_Current()“ folgende zwei Zeilen an:

Me!SummeFirma = DSum(„Zeitaufwand“, „TabName“, „Kategorie = ‚Firma‘“)

Me!SummePrivat = DSum(„Zeitaufwand“, „TabName“, „Kategorie = ‚Privat‘“)

In dem Beispiel mußt Du statt „TabName“ noch den Namen Deiner Tabelle eintragen und das Beispiel geht jetzt davon aus, daß Du Deine beiden Summenfelder „SummeFirma“ und „SummePrivat“ genannt hast (kannst Du beliebig nennen).

Wäre allerdings keine schöne Lösung, wenn Du im Feld Kategorie tatsächlich solche Strings wie „Firma“ und „Privat“ stehen hättest… Wenn es nur die zwei Alternativen gibt, wäre ein Ja/Nein-Feld passender, ansonsten ein Zahlenfeld vom Typ Byte oder ein Textfeld, das nur ein Zeichen groß ist und ein F oder P erwartet (in der Gültigkeitsregel der Tabelle eingetragen).

Statt dem Current-Ereignis könnte man auch das Load-Ereignis („Beim Laden“) nehmen, aber dann würde sich die Anzeige nie aktualisieren, wenn bei geöffnetem Formular Werte geändert, zugefügt oder gelöscht werden.

sag mal - wie viele Leute hast Du denn gleichzeitig gefragt???
Ich habe das vor etwa einer Stunde als offene Anfrage zugeschickt bekommen…

In diesem Satz von mir fehlt was:
Also Du setzt in den Kopfteil des Formulars zwei Steuerelemente vom Typ Textfeld (Register „Daten“) und …

Sollte heißen:
Also Du setzt in den Kopfteil des Formulars zwei Steuerelemente vom Typ Textfeld, läßt das Feld „Steuerelemetinhalt“ (Register „Daten“) leer, und …

Wenn es sich nur um eine Tabelle mit diesen Feldern handelt, sollte die Aufgabe wirklich mit EXCEL gelöst werden.
Ansonsten könnte man ein Formular (z.B. mit einzelnen Personendaten) mit einem Unterformular (wo lediglich die Zeiten erfasst werden, die mit der Personal-ID verknüpft sind) erstellen.
Die andere Möglichkeit besteht über eine Kreuztabellenabfrage.

Hallo Jolana,
das sollte mit der Domänenaggregatfunktion DCount gehen. Sieh mal in der Online-Hilfe nach.

Gruß
Vincenz

sorry, bin neu hier und wußte nicht, daß da soviele rausgehen… Hans

Hallo,

das kannst Du mit Hilfe einer Abfrage durchführen, in der Du die Summe ermittelt. Achte aber darauf, das Dir die anderen Felder nicht angezeigt werden.

Gruß Armin