Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Newcomer2016 am April 21, 2016, 11:35:58

Titel: #Fehler bei Zählen wenn
Beitrag von: Newcomer2016 am April 21, 2016, 11:35:58
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.
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Beaker s.a. am April 21, 2016, 12:17:39
Kriterium = Nz("H","")

Vielleicht auch wieder mit Semikolon statt Komma ;)
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Newcomer2016 am April 21, 2016, 12:37:34
 =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.
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Beaker s.a. am April 21, 2016, 12:42:18
Hallo,
Gerade erst gesehen, da gehört der Tabellenname rein, nicht der Formname.
=DomAnzahl("[Rating]";"Tabelle";"[Rating] = " & Nz("H";""))

gruss ekkehard
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: DF6GL am April 21, 2016, 12:43:56
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] & "'")
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Newcomer2016 am April 21, 2016, 13:02:36
=DomAnzahl("Rating";"qryReport";"nz([Rating],'') = '" & Nz("H";"") & "'")

Das funktioniert, VIELEN, VIELEN DANK.



Titel: Re: #Fehler bei Zählen wenn
Beitrag von: DF6GL am April 21, 2016, 13:07:07
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' ")
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Newcomer2016 am April 21, 2016, 13:13:19
Bin ich und ja, hast du Recht. Die reduzierte Form reicht.

Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Beaker s.a. am April 21, 2016, 13:48:04
Danke Franz, wenn wir dich nicht hätten :)
Bin einfach immer irgendwie zu schnell beim Schreiben, statt
zweimal hin zu schauen,  >:(
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: DF6GL am April 21, 2016, 15:34:44
Hi,

da gibt's ein Sprichwort:  Eile mit Weile...  ;)
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Newcomer2016 am April 22, 2016, 11:34:14
=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...
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: MzKlMu am April 22, 2016, 11:44:16
Hallo,
wie wärs mit addieren ?
=DomAnzahl("FELDNAME X";"qry...";"nz([FELDNAME X],'') = 'Kriterium' ")  + DomAnzahl("FELDNAME Y";"qry...";"nz([FELDNAME Y],'') = 'Kriterium' ")
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Newcomer2016 am April 22, 2016, 12:51:20
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.
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Carl am September 13, 2017, 18:47:41
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";"") & "'")
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Carl am September 13, 2017, 18:50:41
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".
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: DF6GL am September 14, 2017, 10:55:35
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])
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Carl am September 14, 2017, 17:29:58
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?
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: DF6GL am September 14, 2017, 17:37:52
Hallo,

etwa so, wenn "MoErwartet" den Datentyp TEXT und "bereich"  LONG aufweist:
<<edit>>
= DCount("*"; "[abfAnwesenheitsverhersage]"; "[MoErwartet] = 'erwartet' AND [bereich] = 1")
<</edit>>
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Lachtaube am September 14, 2017, 17:57:03
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.
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Carl am September 14, 2017, 19:06:49
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
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: MzKlMu am September 14, 2017, 19:29:29
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.
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Carl am September 14, 2017, 19:45:43
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.
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: MzKlMu am September 14, 2017, 19:58:27
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
Titel: Re: #Fehler bei Zählen wenn
Beitrag von: Carl am September 14, 2017, 20:09:33
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.

Titel: Re: #Fehler bei Zählen wenn
Beitrag von: MzKlMu am September 14, 2017, 20:19:15
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.