Hallo zusammen,
ich möchte in einem Endlosformular, basierend auf einer Abfrage, die Anzahl eines bestimmten Kriteriums eines Feldes in einem ungebundenen Textfeld wiedergeben. Also einen Textinhalt zählen und dann die Anzahl anzeigen lassen.
Endlosformular heisst: frmReport
Abfrage: qryReport
das Feld: Rating
und das Kriterium: "H"
Die anderen Kriterien sind "M" und "L" und manchmal ist das Feld leer. Und deswegen kann es sein, so hab ichs gelesen, erscheint die Fehlermeldung "#Fehler".
Kann mir das jemand weiterhelfen, das trotz der Leerfelder die Zählung erfolgen kann?
Allgemein hab ichs so aufgebaut, aus nem anderen Bsp abgeleitet:
=DomAnzahl("[Feldname]";"Formular";"[Feldname] = " & "Kriterium")
Vielen Dank.
Kriterium = Nz("H","")
Vielleicht auch wieder mit Semikolon statt Komma ;)
=DomAnzahl("[Rating]";"frmReport";"[Rating] = " & Nz("H";""))
Mit Semikolon wurde der Asudruck angenommen, mit Komma nicht.
Allerdings bleibt der #Fehler, heisst wohl, an irgendwelchen leeren Feldern liegt es nicht.
Danke dir aber trotzdem sehr für die schnelle Hilfe.
Hallo,
Gerade erst gesehen, da gehört der Tabellenname rein, nicht der Formname.
=DomAnzahl("[Rating]";"Tabelle";"[Rating] = " & Nz("H";""))
gruss ekkehard
Hallo,
=DomAnzahl("Rating";"qryReport";"nz([Rating],0) = " & nz([Kriteriumsfeld];0))
fals Rating den Datentyp Long aufweist.
Bei TEXT hieße es so:
=DomAnzahl("Rating";"qryReport";"nz([Rating],'') = '" & [Kriteriumsfeld] & "'")
=DomAnzahl("Rating";"qryReport";"nz([Rating],'') = '" & Nz("H";"") & "'")
Das funktioniert, VIELEN, VIELEN DANK.
Hallo,
bist Du sicher,
dass der Buchstabe "H" der Kriteriumswert ist? Wenn das tatsächlich der Fall ist, dann ist die NZ()-Funktion dort unsinnig und es reicht:
=DomAnzahl("Rating";"qryReport";"nz([Rating],'') = 'H' ")
Bin ich und ja, hast du Recht. Die reduzierte Form reicht.
Danke Franz, wenn wir dich nicht hätten :)
Bin einfach immer irgendwie zu schnell beim Schreiben, statt
zweimal hin zu schauen, >:(
Hi,
da gibt's ein Sprichwort: Eile mit Weile... ;)
=DomAnzahl("Rating";"qryReport";"nz([Rating],'') = 'H' ")
die obige Anwendung funktioniert einwandfrei und hab die auch für ein anderes Feld übernehmen können. Klar. Aber wie verbinde ich die beiden in einer Anwendung?
=DomAnzahl("FELDNAME X";"qry...";"nz([FELDNAME X],'') = 'Kriterium' ") UND??? =DomAnzahl("FELDNAME Y";"qry...";"nz([FELDNAME Y],'') = 'Kriterium' ")
Also: Summier mir die Anzahl des eines Feldes mit einem bestimmten Kriterium mit der Anzahl eines zweiten Feldes mit einem bestimmten Kriterium.
Ich checks echt nicht...
Hallo,
wie wärs mit addieren ?
=DomAnzahl("FELDNAME X";"qry...";"nz([FELDNAME X],'') = 'Kriterium' ") + DomAnzahl("FELDNAME Y";"qry...";"nz([FELDNAME Y],'') = 'Kriterium' ")
Macht Sinn. Allerdings hab ich die Frage falsch formuliert. Sorry.
Der soll nur dann das Eine mit dem Anderen addieren, wenn eine bestimmte Kombination da ist.
Rating Typ
H NC
H EOS
M NC
L NC
jetzt will ich die Anzahl der Kombi von H und NC haben. In dem Fall 1. Usw.
Ich habe auch mal ne Frage hierzu. Bei mir funktioniert:
=DomAnzahl("Rating";"qryReport";"nz([Rating],'') = '" & Nz("H";"") & "'")
zwar, aber
Bei mir kann man noch weitere Filtermöglichkeiten auf ein Unterformular (Untergeordnet90) anwenden und es gibt aus Designgründen ein frmReport, das auf qryReport basiert.
Ich möchte daher NICHT, dass diejenigen gezählt werden, die "H" in qryReport haben, sondern jene, die gerade angezeigt werden in Untergeordnet90, das frmReport enthält und gefiltert wird.
zum Beispiel funktioniert nicht
=DomAnzahl("Rating";"frmReport";"nz([Rating],'') = '" & Nz("H";"") & "'")
und auch nicht
=DomAnzahl("Rating";"Untergeordnet90";"nz([Rating],'') = '" & Nz("H";"") & "'")
Nachtrag: Die Filter sind dynamisch und ändern sich ständig. Daher kann ich keine festen Merkmale verwenden sondern möchte wirklich das zählen, was angezeigt wird und davon nur das mit dem Merkmal "H".
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])
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?
Hallo,
etwa so, wenn "MoErwartet" den Datentyp TEXT und "bereich" LONG aufweist:
<<edit>>
= DCount("*"; "[abfAnwesenheitsverhersage]"; "[MoErwartet] = 'erwartet' AND [bereich] = 1")
<</edit>>
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.
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
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.
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.
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
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.
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.