Hallo,
ich habe einen Bericht, der auf einer Abfrage basiert. Nun möchte ich Access zählen lassen, wieviele Datensätze gefunden wurden. Wie mache ich das?
Vielen Dank im Voraus für Eure Hilfe
Beate1953
Hallo,
im Berichtsfuß/Kopf ein Feld mit
=Anzahl(*)
als Steuerelementinhalt.
Hallo,
vielen Dank für den Tipp. Das klappt schon mal prima!
Wie kriege ich jetzt Access noch dazu, mir zu sagen, bei wievielen dieser Datensätze im Feld E-Check der Wert "Bestanden" steht?
Liebe Grüße
Beate1953
Hallo,
schau mal in die VBA-Hilfe zur DCount()- Domänenfunktion...
Hallo,
ich habe mir die Funktion DCount() angesehen und dort
Ausdruck.DCount(Expr,Domain,Criteria)
gefunden.
Soweit ich das verstanden habe ist Expr das Feld in dem die zu zählenden Werte stehen, also in meinem Fall E-Check. Domain müßte der Name der Abfrage sein, auf der mein Bericht basiert, also GesBerichtMitAuftraggeber. Criteria müßte [E-Check]= "Bestanden" sein.
Stimmt das soweit? Aber was nehme ich als Ausdruck? Und wo schreibe ich diese Formel hin? In ein Textfeld im Berichtskopf?
Viele Grüße
Beate1953
Hallo Beate,
Hast Du alles (fast) richtig verstanden.
Wichtig ist, dass alle Parameter vom Typ String
sind, deshalb musst Du aufpassen beim
Kriterium wenn das auf einen String vergleicht.
DCount zählt alle DS, die dem Kriterium ent-
sprechen, musst Du also nicht unbedingt einen
Feldnamen angeben, - "*" reicht.
Bei Dir also
=DCount("*";"DeineAbfrage";"[E-Check] = 'Bestanden'")
Das schreibst Du, wie vermutet, in die Eigen-
schaft "Steuerelementinhalt" eines Testfeldes.
Ausdruck. kannst Du ignorieren. Das ist lt. OH
ein Application-Objekt. Normal also die aktuelle
Access-Instanz.
Das würdest Du nur brauchen, wenn Du DS in
einer Tabelle/Abfrage, die in einer zweiten
Instanz enthalten sind, zählen wölltest.
hth
gruss ekkehard
P.S. Noch ein paar kurze Anmerkungen:
Vermeide unbedingt Sonderzeichen in Objekt-
namen (E_Check statt E-Check)
Nochmal DCount:
Vergleich mit Zahl:
=DCount("*";"DeineAbfrage";"[E-Check] = 1")
Vergleich mit Stringvariable:
=DCount("*";"DeineAbfrage";"[E-Check] = '" & varString & "'")
Vergleich mit numerischer Variable:
=DCount("*";"DeineAbfrage";"[E-Check] = " & varZahl)
varString und varZahl können auch Bezüge auf
Formularfelder sein (Datentyp entsprechend).
Und wenn Du DCount in VBA verwendest, musst Du
die ";" durch "," ersetzen.
Hallo,
ich habe die Funktion wie angegeben in die Eigenschaft Steuerelementinhalt eines Textfeldes im Berichtskopf eingegeben. Access hat DCount in DomAnzahl umgewandelt und im Textfeld erschien die Meldung #Fehler. Dann habe ich probeweise mal das Kriterium ganz weggelassen, so daß der Steuerelementinhalt nur noch
=DomAnzahl("*";"GesBerichtMitAuftraggeber")
war und trotzdem hieß es wieder #Fehler.
Was habe ich falsch gemacht?
Viele Grüße
Beate1953
Hallo Beate,
Zitatich habe die Funktion wie angegeben
Na, die Namen musst Du schon anpassen ;)
DomAnzahl ist o.k.; - die Accessoberfläche spricht deutsch,
VBA und SQL englisch.
Am Ausdruck kann ich keinen Fehler erkennen, höchstens,
dass "GesBerichtMitAuftraggeber" nicht der Name einer
Tabelle/Abfrage ist, sondern, wie der Name vermuten
lassen könnte, der Name eines Berichtes.
gruss ekkehard
Hallo,
ich habe die Namen in der angegebenen Formel an meine Namen angepasst und GesBerichtMit Auftraggeber ist tatsächlich der Name der Abfrage (Abfrage zur Erstellung des GesamtBerichtes) auf der der Bericht basiert.
Hat noch jemand eine Idee was an meiner Formel falsch sein könnte?
Viele Grüße
Beate1953
Hallo,
ZitatGesBerichtMit Auftraggeber
Ist das nur ein Schreib-/Tippfehler oder enthält der Abfragenamen tatsächlich ein Leerzeichen?
Prämisse: Auf Sonder- und Leerzeichen DRINGEND verzichten! (UND an allen betroffenen Stellen nacharbeiten!). Gleiches gilt für reservierte Wörter....
Hallo,
vielen Dank an alle für Eure Hilfe. Ich weiß jetzt, wo der Fehler lag: Und zwar habe ich bei dem vielen Herumprobieren offenbar meine Abfrage zerschossen. Jedenfalls, als ich die Abfrage neu gemacht habe, hat alles prima geklappt.
Vielen, vielen Dank nochmals!
Viele Grüße
Beate1953