DSum sinnvoll einsetzen?!

Hallo :smile:

hab da ein Problem:

  1. Ich habe einen gefilterten Datensatz als Grundlage: „Tourenabfrage gefiltert“

TId TName TVorname TOrt TArt
183 Muster Max Berlin Provision
184 Lehmann Franz Dresden Lohn
183 Muster Max Berlin Lohn
186 Schneider Rolf Leipzig Provision
189 Schuster Fred Leipzig Provision
183 Muster Max Berlin Lohn
190 Müller Dirk Berlin Lohn

  1. Ich möchte mit „DSum“ folgendes Ziel erreichen:

Es sollen alle Leute die auf „Lohn“ Basis arbeiten gefunden werden
und gleichzeitig sollen sie zusammengefaßt werden, d.h. folgendes Ergebnis:

Max Muster 3x
Dirk Müller 1x

Hat jemand eine Idee wie ich das machen kann???
Variable = DSum(1, „Tourenabfrage gefiltert“, "[TId] = " & ??? )

So klappt es nicht :frowning:

Danke im Voraus

Hallo,

  1. Ich habe einen gefilterten Datensatz als Grundlage:
    „Tourenabfrage gefiltert“

ist für „Tourenabfrage gefiltert“ eine Abfrage gemeint?

TId TName TVorname TOrt TArt
183 Muster Max Berlin Provision
184 Lehmann Franz Dresden Lohn
183 Muster Max Berlin Lohn
186 Schneider Rolf Leipzig Provision
189 Schuster Fred Leipzig Provision
183 Muster Max Berlin Lohn
190 Müller Dirk Berlin Lohn

  1. Ich möchte mit „DSum“ folgendes Ziel erreichen:
    Es sollen alle Leute die auf „Lohn“ Basis arbeiten gefunden werden
    und gleichzeitig sollen sie zusammengefaßt werden, d.h.
    folgendes Ergebnis:
    Max Muster 3x
    Dirk Müller 1x

Warum mit DSUM? Dsum bringt EINEN Wert gemäß der angegeben Kriterien und keine Sammlung von Datensätzen.

Hat jemand eine Idee wie ich das machen kann???

klar… :wink: , mit einer Abfrage:

Select TVorname, TName, Count(TID) as Personenanzahl from [Tourenabfrage gefiltert] where TArt = „Lohn“ group by TVorname, TName

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

danke für die schnelle Antwort!!
Die SQL-Abfrage liefert ein korrektes Ergebnis, ist aber für meine komplexe Berechnung nicht so sinnvoll. Deshalb würde ich gern mit DSum an dieser Stelle weiterarbeiten:
Für die Berechnung muss DSum mir z.B. eine „3“ liefern, da der Max mit TId 183 (auf Lohnbasis) dreimal in meinen gefilterten Daten vorkommt.

Ich glaub ich hatte das etwas unglücklich formuliert?!
Achso, die „gefilterten Daten“ sind eine Abfrage :smile:

Danke im Voraus
MfG Thomas

HAllo,

danke für die schnelle Antwort!!
Die SQL-Abfrage liefert ein korrektes Ergebnis, ist aber für
meine komplexe Berechnung nicht so sinnvoll. Deshalb würde ich
gern mit DSum an dieser Stelle weiterarbeiten:
Für die Berechnung muss DSum mir z.B. eine „3“ liefern, da der
Max mit TId 183 (auf Lohnbasis) dreimal in meinen gefilterten
Daten vorkommt.

Das ist ja auch was anderes…

Dim Anz as Long
Anz=Dcount("*", „Tourenabfrage gefiltert“,„TArt = ‚Lohn‘“)

Ich glaub ich hatte das etwas unglücklich formuliert?!

naja, eher falsch…

Achso, die „gefilterten Daten“ sind eine Abfrage :smile:

dachte ich mir, sinnvoll wäre, den Abfragename zu nennen…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

genau richtig :smile:
Jetzt addiert er meine Leute die auf „Lohn“-Basis arbeiten sauber!
Eine letzte Frage noch, wie kann ich bei diesem gefilterten Datensatz
Dubletten bei „TOrt“ vermeiden.
D.h. wenn Berlin oder Dresden oder … mehrfach vorkommen, soll er diese nur einmal zählen!
Ergebnis unten wäre dann: 3 (Orte)

Danke im Voraus
Thomas

TId TName TVorname TOrt TArt
183 Muster Max Berlin Lohn
184 Lehmann Franz Dresden Lohn
183 Muster Max Berlin Lohn
186 Schneider Rolf Leipzig Provision
189 Schuster Fred Leipzig Provision
183 Muster Max Dresden Lohn
190 Müller Dirk Berlin Lohn

HAllo,

dafür braucht man eine Gruppierung, und das kann die DSum-Funktion als solche nicht leisten. Demzufolge muss eine gruppierende Abfrage her, die diese Berechnungen durchführt und die bei der Dlookup-Funktion eingesetzt wird.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!