Benutzer mit den meisten Antworten
Anzahl Datensätze ermitteln

Frage
-
Hallo zusammen,
ich habe wieder mal ein Problen.
In einem Report möchte ich die Summe aus einem Feld [Teilname] in dem ein "A" steht, oder nichts, ermitteln. Also nur die Dtensätze zählen in denen das "A" steht.
Wenn ich [=Anzahl([Teilname]) ] verwende, kommt die falsche Anzahl (zu viele)!
Mit [DCount("*"; "tblAnmeldg"; "Teilname = 'A' ")] wird die korrekte Anzahl ausgegeben.
Gibt es dafür eine Erklärung?
Ich habe auch schon versucht herauszufinden, ob im Feld[Teilname] noch etwas steht, Leerstring oder so etwas, aber Nein!
Schon mal besten Dank
und noch ein schönes Wochenende
Richard
Antworten
-
Hallo,
Hölzel Richard wrote:
In einem Report möchte ich die Summe aus einem Feld [Teilname] in dem ein
"A" steht, oder nichts, ermitteln. Also nur die Dtensätze zählen in
denen das "A" steht.Am einfachsten schreibst du in die Datenherkunft des Berichts in einem Feld
AnzahlA: Iif([Teilname]='A', 1, 0)
Uebrigens, fehlt im Feldnamen nicht ein h (Teilnahme)? Ausserdem wirst du
in der dt. Version statt Iif Wenn und statt , ; schreiben muessen. Sollte
Teilname in mehreren Tabellen der Datenherkunft vorkommen, muessen Tabelle
oder Alias ebenfalls angegeben werden:AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0)
Im Bericht verwendest du einfach =Summe([AnzahlA]) als Steuerelementinhalt
fuer das betreffende Feld.Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:34
-
Hallo, Peter!
Peter Doering [MVP] wrote:
Hölzel Richard wrote:
In einem Report möchte ich die Summe aus einem Feld [Teilname] in
dem ein "A" steht, oder nichts, ermitteln. Also nur die Dtensätze
zählen in denen das "A" steht.Am einfachsten schreibst du in die Datenherkunft des Berichts in
einem Feld
AnzahlA: Iif([Teilname]='A', 1, 0)
Uebrigens, fehlt im Feldnamen nicht ein h (Teilnahme)?Das dachte ich mir auch gleich als 2. mögliche Ursache. ;-)
Als 1. übrigens, dass "Anzahl" als vielfaches Schlüsselwort in Access
gerne mal die Anzahl der Steuerelemente wiedergibt. Allerdings
normalerweise nicht, wenn es einen Parameter hat.Ohne mit den echten Daten testen zu können und ohne genau zu wissen,
was "falsche Anzahl (zu viele)" konkret heißt, wird man aus der Ferne
kaum die Ursache des Problems finden.Ausserdem
wirst du in der dt. Version statt Iif Wenn und statt , ; schreiben
muessen. Sollte Teilname in mehreren Tabellen der Datenherkunft
vorkommen, muessen Tabelle oder Alias ebenfalls angegeben werden:
AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0)
Im Bericht verwendest du einfach =Summe([AnzahlA]) als
Steuerelementinhalt fuer das betreffende Feld.Das lässt sich ohne Extrafeld in der Datenherkunft mit einem
einfachen berechneten Steuerelement im Bericht erledigen:=Abs(Summe([Teilnahme]="A"))
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:34
-
Hölzel Richard wrote:
...
Es gibt ja zu meiner Frage 3-Lösungen:
- DCount("*"; "tblAnmeldg"; "Teilname = 'A' ") - wie ich es
beschrieben habe
- AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0) - Peters Vorschlag
- Karls Vorschlag : =Abs(Summe([Teilnahme]="A"))
Nun meine Frage dazu, trifft es eigentlich zu, dass man besser die
DCount(...) Lösung nicht verwendet, weil diese langsamer ist?Joo, DCount schickt extra nochmal eine eigene Abfrage an die
Tabelle, während du bei den anderen Lösungen die eh schon
im Bericht vorhandenen Daten nutzt. Besonders effizient ja bei
meinem. ;-)
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:34
Alle Antworten
-
Hallo,
Hölzel Richard wrote:
In einem Report möchte ich die Summe aus einem Feld [Teilname] in dem ein
"A" steht, oder nichts, ermitteln. Also nur die Dtensätze zählen in
denen das "A" steht.Am einfachsten schreibst du in die Datenherkunft des Berichts in einem Feld
AnzahlA: Iif([Teilname]='A', 1, 0)
Uebrigens, fehlt im Feldnamen nicht ein h (Teilnahme)? Ausserdem wirst du
in der dt. Version statt Iif Wenn und statt , ; schreiben muessen. Sollte
Teilname in mehreren Tabellen der Datenherkunft vorkommen, muessen Tabelle
oder Alias ebenfalls angegeben werden:AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0)
Im Bericht verwendest du einfach =Summe([AnzahlA]) als Steuerelementinhalt
fuer das betreffende Feld.Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:34
-
Hallo, Peter!
Peter Doering [MVP] wrote:
Hölzel Richard wrote:
In einem Report möchte ich die Summe aus einem Feld [Teilname] in
dem ein "A" steht, oder nichts, ermitteln. Also nur die Dtensätze
zählen in denen das "A" steht.Am einfachsten schreibst du in die Datenherkunft des Berichts in
einem Feld
AnzahlA: Iif([Teilname]='A', 1, 0)
Uebrigens, fehlt im Feldnamen nicht ein h (Teilnahme)?Das dachte ich mir auch gleich als 2. mögliche Ursache. ;-)
Als 1. übrigens, dass "Anzahl" als vielfaches Schlüsselwort in Access
gerne mal die Anzahl der Steuerelemente wiedergibt. Allerdings
normalerweise nicht, wenn es einen Parameter hat.Ohne mit den echten Daten testen zu können und ohne genau zu wissen,
was "falsche Anzahl (zu viele)" konkret heißt, wird man aus der Ferne
kaum die Ursache des Problems finden.Ausserdem
wirst du in der dt. Version statt Iif Wenn und statt , ; schreiben
muessen. Sollte Teilname in mehreren Tabellen der Datenherkunft
vorkommen, muessen Tabelle oder Alias ebenfalls angegeben werden:
AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0)
Im Bericht verwendest du einfach =Summe([AnzahlA]) als
Steuerelementinhalt fuer das betreffende Feld.Das lässt sich ohne Extrafeld in der Datenherkunft mit einem
einfachen berechneten Steuerelement im Bericht erledigen:=Abs(Summe([Teilnahme]="A"))
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:34
-
Hallo Peter,
Hallo Karl,
besten Dank für die schnellen, wie immer sehr kompetenten und gut beschriebenen Antworten.
Hier meine Antworten zu Euren Fragen und nochmal eine Nachfrage von mir
1. Teilname ist schon richtig geschrieben, das habe ich in der vorhandenen DB so übernommen, gemeint ist der Teilnehmer-Name.
2. mit falscher Anzahl ist gemeint, es kommen auch Sätze in denen kein "A" steht. Aber das ist ja durch Eure Unterstützung gelöst, danke.
3. darf ich noch nachfragen, nur so zu meinem Verständnis:
Es gibt ja zu meiner Frage 3-Lösungen:
- DCount("*"; "tblAnmeldg"; "Teilname = 'A' ") - wie ich es beschrieben habe
- AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0) - Peters Vorschlag
- AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0) - Karls Vorschlag
Nun meine Frage dazu, trifft es eigentlich zu, dass man besser die DCount(...) Lösung nicht verwendet, weil diese langsamer ist?
Nun noch ein schönes Wochenende
Gruss / Richard
-
Hölzel Richard wrote:
...
Es gibt ja zu meiner Frage 3-Lösungen:
- DCount("*"; "tblAnmeldg"; "Teilname = 'A' ") - wie ich es
beschrieben habe
- AnzahlA: Iif([tblAnmeldg].[Teilname]='A', 1, 0) - Peters Vorschlag
- Karls Vorschlag : =Abs(Summe([Teilnahme]="A"))
Nun meine Frage dazu, trifft es eigentlich zu, dass man besser die
DCount(...) Lösung nicht verwendet, weil diese langsamer ist?Joo, DCount schickt extra nochmal eine eigene Abfrage an die
Tabelle, während du bei den anderen Lösungen die eh schon
im Bericht vorhandenen Daten nutzt. Besonders effizient ja bei
meinem. ;-)
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:34