Access-o-Mania

Access-Forum => Formular => Thema gestartet von: ReneB am Februar 06, 2018, 21:31:49

Titel: Zählen im Formular
Beitrag von: ReneB am Februar 06, 2018, 21:31:49
Hallo und Guten Abend,

hoffe mir kann wieder mal geholfen werden. Ich habe ein Suchformular (geteiltes Formular) basierend auf einer Abfrage. Es geht um Kundenaufträge, welche hier nach verschiedenen Kriterien gefiltert werden können. Die Aufträge beinhalten eine Auftrags-Nr., welche aber mehrfach vorkommen kann. Hier komme ich zu meinem Problem. Ich möchte die Aufträge gern zählen und über ein Textfeld ausgeben, weiß aber nicht, wie ich jede Nr. nur einmal zählen kann. Die Gesamtzahl kann ich ja über = Anzahl(*) anzeigen lassen. Hat jemand einen Tipp für mich?

Danke im Voraus.
Rene
Titel: Re: Zählen im Formular
Beitrag von: DF6GL am Februar 07, 2018, 08:54:36
Hallo,

eine mögliche Lösung:

erstelle eine gespeicherte Abfrage ("abf_AufAnzahl)":

Select * as Auftrg from abf_DeineAbfrage group by [AuftragsNr]
In einem Textfeld in dessen Steuerelementinhalt kommt zu stehen:

=Dcount("*";"abf_AufAnzahl";.Filter)
Titel: Re: Zählen im Formular
Beitrag von: Beaker s.a. am Februar 07, 2018, 13:14:20
Ich würde mir allerdings noch die Mühe machen und die Feldliste auf das eine,
zu gruppierende Feld einschränken  ;)
Select [AuftragsNr] As Auftrag from abf_DeineAbfrage group by [AuftragsNr]
Titel: Re: Zählen im Formular
Beitrag von: ReneB am Februar 07, 2018, 13:37:40
Hallo,

danke für die schnelle Antwort. Mit deinem String gruppiert er das Feld AuftragsNr so das jede Nr. nur einmal erscheint. Sieht alles gut aus. Abfrage habe ich gespeichert und als Steuerelement über DCount an das Textfeld übergeben. Allerdings zeigt das Textfeld erst Null an und wenn ich einen Filter setze zeigt es immer die volle Anzahl an Datensätzen, egal wie ich die Filter setze. Daß Filterkriterium in DCount scheint keine Wirkung zu haben. Hast du noch eine Idee?

Danke sehr.

Rene
Titel: Re: Zählen im Formular
Beitrag von: DF6GL am Februar 07, 2018, 13:47:00
Hallo,

ich würde das Sternchen verwenden, weil sonst der Filter m. E.  ins Leere läuft.
Titel: Re: Zählen im Formular
Beitrag von: Beaker s.a. am Februar 07, 2018, 14:00:10
Hallo Franz,
Dann funzt aber die ganze Abfrage nicht, - Fehlermeldung: Mit '*'
ausgewählte Felder können nicht gruppiert werden.
Könnte man den Filter nicht besser gleich in die "abf_DeineAbfrage"
einbauen?
gruss ekkehard
Titel: Re: Zählen im Formular
Beitrag von: DF6GL am Februar 07, 2018, 17:51:41
Hallo Ekkehard,

das stimmt nun auch wieder... :(

Ich wollte halt das erneute Zusammensetzen der Filterbedingung  sparen.

Bevor wir das aber nun in eine Funktion auslagern, könnten lediglich die nur für den Filter in Frage kommenden Felder in die Abfrage-Select-Liste aufgenommen werden...

PS: Ist ja nun auch wieder Quatsch...


Also dann die zugrunde liegende Tabelle benutzen (allerdings kenne ich ja nicht Tabellenaufbau)

Select [AuftragsNr] As Auftrag from tbl_Auftraege group by [AuftragsNr]

und auf evtl. Where-Conditions achten.
Titel: Re: Zählen im Formular
Beitrag von: ReneB am Februar 07, 2018, 19:43:55
Abend schön,

uuuppps jetzt wird es glaub ich kompliziert.Könnt Ihr vielicht grob umreissen, was noch möglich ist? Select [AuftragsNr] As Auftrag from tbl_Auftraege group by [AuftragsNr] ist das ein Teil von einer Funktion? Sowas hab ich schon mal versucht, bin aber gescheitert.

Danke für Eure Mühen.
Rene
Titel: Re: Zählen im Formular
Beitrag von: Lachtaube am Februar 07, 2018, 21:18:35
Weil der antiquarische SQL-Dialekt der Access-Engine keinSELECT Count(DISTINCT Feldname) FROM ...unterstützt, kann man sich einer Funktion wie z. Bsp. ECount (http://allenbrowne.com/ser-66.html) von Allen Browne bedienen.
Titel: Re: Zählen im Formular
Beitrag von: ReneB am Februar 08, 2018, 11:13:55
Hallo Lachtaube,

die Funktion habe ich eingebaut, aber auch hier fehlt der Kontext zum Filterereignis. Das Textfeld zeigt die Anzahl aller Datensätze bereinigt ohne Dubletten. Die Filterfunktion hat aber keinen Einfluss auf die Anzahl der Datensätze.
Veileicht hat ja jemand noch eine Idee. Ich danke trotzdem schonmal für die schnelle und kompetente Hilfe.

Bis dahin

Rene
Titel: Re: Zählen im Formular
Beitrag von: Lachtaube am Februar 08, 2018, 11:27:06
Wenn das Formular gefiltert wird, muss der selbe Filterausdruck natürlich auch auf die Funktion angewendet werden, damit die Berechnung auf gleicher Datenbasis beruht.
Titel: Re: Zählen im Formular
Beitrag von: ReneB am Februar 08, 2018, 20:15:32
Hallo,

Ok ich versuch mal, ob ich da was hinbekomme.

Danke für die Hilfe.

Rene
Titel: Re: Zählen im Formular
Beitrag von: ReneB am Februar 13, 2018, 11:10:05
Hallo,

Habe es leider nicht hinbekommen. Danke Euch trotzdem für die schnelle und unkomplizierte Hilfe.

Grüsse Rene
Titel: Re: Zählen im Formular
Beitrag von: Lachtaube am Februar 13, 2018, 11:59:40
Hi Rene,

Du könntest ja ein Minimal-Beispiel mit einigen anonymisierten Daten hochladen (und ggf. Bedienungsanleitung), um sich die Sache vor Ort ansehen zu können.
Titel: Re: Zählen im Formular
Beitrag von: ReneB am März 02, 2018, 13:31:55
Hallo nochmal,

nun ich habe es doch noch hinbekommen. Habe eine Abfrage mit den beiden Suchfeldern Datum von und Datum bis aus meinem Formular als Kriterium gebaut. Jedesmal wenn ich diese im Suchformular fülle, zählt er jetzt ordentlich ohne Dubletten. Damit die Abfrage nicht ins Leere läuft, wenn die Suchfelder nicht gefüllt sind, lasse ich diese beiden Felder beim öffnen des Formulars mit dem kleinsten und dem größten Datum füllen, so zählt er mir auch gleich alle Datensätze in der Datenbank. Ist vielleicht nicht die cleverste Lösung, funktioniert aber soweit alles.

Danke an Alle.

Rene