Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

#Fehler bei Zählen wenn

Begonnen von Newcomer2016, April 21, 2016, 11:35:58

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

die Domänenaggregat-Funktionen können nur auf Tabellen/Abfragen angewendet werden, nicht auf Formulare oder Berichte.


Insofern muss, wenn eine Filterung eines Forms/Reports berücksichtigt werden soll,  eben dieses aktuelle Filterkriterium mit in den Where-Condition-Parameter der Funktion mit aufgenommen werden.



Evtl. hilft ja die Anzahl()-Funktion im Steuerelementinhalt eines Form-Textfeldes weiter:

=Anzahl([N])
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Carl

okay, ich bin nun doch auf Abfrage als Endlosformular umgestiegen.

=DomAnzahl("MoErwartet";"abfAnwesenheitsverhersage";"nz([MoErwartet],'') = '" & Nz("erwartet";"") & "'") funktioniert, gibt aber alle Datensätze in der Abfrage zurück, ohne das zweite Kriterium zu beachten, nach dem gefiltert wurde.

-----------

Dann habe ich es hiermit vergeblich probiert, in dem ich beide Kriterien verwende:

= DCount("[MoErwartet]", "[abfAnwesenheitsverhersage]", "[MoErwartet] = "erwartet" AND "[bereich] = "1"")

Siehst Du hier meinen Fehler?

DF6GL

#17
Hallo,

etwa so, wenn "MoErwartet" den Datentyp TEXT und "bereich"  LONG aufweist:
<<edit>>
= DCount("*"; "[abfAnwesenheitsverhersage]"; "[MoErwartet] = 'erwartet' AND [bereich] = 1")
<</edit>>
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Lachtaube

Wenn die Daten der Abfrage im Formular (im Bericht geht's auch) angezeigt werden, sollte es auch so
=Abs(Summe([X] = 'H'))funktionieren, wobei aktuelle Filterbedingungen des Formulars berücksichtigt werden.

Zum Aufsummieren mehrerer Anzahlen musst Du dann halt zwei oder mehr Ausdrücke in einen Steuerelementinhalt hintereinander mit dem Plus-Operator schreiben. (Der Übersicht wegen mit Zeilenumbruch)=Abs(Summe([Einfeld] = 'XYZ' AND [EinGleichzeitigAnderesFeld] = 4711)) +
Abs(Summe([Bereich] = 1 Und [MoErwartet] = 'erwartet'))


Jeder Ausdruck liefert je Datensatz entweder den Wert -1 (wenn er wahr ist) oder 0 (wenn er falsch ist). Der Absolutwert der negativen Summe sollte dann die richtige Anzahl ausgeben.
Grüße von der (⌒▽⌒)

Carl

Ja, die Datentypen Text und Long liegen vor. Aber es geht nicht. Es ist zum Mäuse melken. Ich habe auch in der Abfrage noch einmal [MoErwartet] in Long.

Kann man hier in diesen Ausdruck nicht ein zweites Kriterium ([bereich] = 1, Long) hinzu fügen?

=DomAnzahl("MoErwartet";"abfAnwesenheitsverhersage";"nz([MoErwartet],'') = '" & Nz("erwartet";"") & "'")

Carl

MzKlMu

Hallo,
beschreibe bitte noch mal was Du jetzt mit welchen Abhängigkeiten Du zählen willst. Einfach so in Prosa, ohne Bezug auf eine Formel. Ich bin da ziemlich verwirrt.
Zitatnoch einmal [MoErwartet] in Long.
wenn das Long ist, warum verwendest Du da Hochkomma ?
Und es gab da doch auch mal einen Text "erwartet", wo ist jetzt der geblieben.
Gruß Klaus

Carl

Ich habe das Problem, das keine der hier geposteten Formeln irgend ein Ergebnis liefert. Weder mit Endlosabfrage, noch mit Endlosformular. Ich dachte, ich hab vielleicht im Hauptformular was falsch eingestellt.

Bis auf die:
=DomAnzahl("MoErwartet";"abfAnwesenheitsverhersage";"nz([MoErwartet],'') = '" & Nz("erwartet";"") & "'")

Die liefert die Gesamtzahl aller "erwartet" in MoErwartet. Ich brauche aber hier noch eine Einschränkung, nämlich um alle, die "1" in "[Bereich]" enthalten.

Dein Vorschlag, den Filter mit in den =DCount einzubauen, finde ich am Besten. Allerdings übersteigt das meine derzeitigen mentalen Fähigkeiten.

MzKlMu

Hallo,
versuche es so:
=DomAnzahl("MoErwartet";"abfAnwesenheitsverhersage";"[MoErwartet] = 'erwartet' And Bereich = 1")
Nz ist hier meiner Meinung nach nicht notwendig.

PS:
Heist die Abfrage wirklich "abfAnwesenheitsverhersage
Gruß Klaus

Carl

#23
Ahh! Danke Franz, jetzt geht es. Endlich, ich hab schon gezweifelt.

Ich habe noch gleich zwei Kollateralfragen:
# Lässt sich die Spaltenbreite in einer Endlosabfrage fixieren? Die geht bei mir immer wieder auf Ausgang zurück, wenn ich zwischen den Ansichten wechsle.
# Lässt sich die eingestellte Schriftgröße im Zoomfenster (shift+F2) irgendwie fixieren? Oder muss man die jedesmal nach dem laden der db erneut einstellen?

Ja, es heißt leider abfAnwesenheitsverhersage, weil ich mich irgend wann mal vertippt habe und steht jetzt auch dort so, wo es die Autokorrektur nicht erreicht.


MzKlMu

#24
Hallo,
nein, die Spaltenbreiten einer Abfrage lässt sich nicht dauerhaft einstellen.
Daher zeigt man ja auch eine Abfrage gar nicht an, sondern verwendet ein Formular.
Zum Zoomfenster kann ich nichts sagen, das gehört halt auch eher zu den Dingen die man nicht braucht.

Übrigens, ich bin Klaus, nicht Franz.
Gruß Klaus