Neuigkeiten:

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

Mobiles Hauptmenü

Anzahl Datensätze aus mehreren PLZ Bereichen darstellen

Begonnen von Accessoraner, Januar 19, 2018, 20:35:27

⏪ vorheriges - nächstes ⏩

Accessoraner

Hallo zusammen,
in der Tabelle "tbl_unternehmen" sind die Adressdaten aller Kunden enthalten
Ich möchte jetzt die Anzahl der Kunden in den jeweiligen PLZ-Bereichen in einem Bericht darstellen.

Also Anzahl der Kunden im PLZ Bereich 5 (50000 bis 59999), PLZ Bereich 6 (60000 bis 69999) , ...
Die PLZ stehen im Feld "unt_PLZ"; es soll nur die Anzahl selbst ausgegeben werden

Ich kann zwar die Anzahl von einem Bereich wie folgend auslesen, aber nicht mehrere.

Query: z. Bsp:    PLZ5: [unt_PLZ] mit dem Kriterium >50000 und < 59999

Bericht: =Anzahl([PLZ5])

Ich bitte um eure Hilfe

Danke und viele Grüße
Accessoraner

DF6GL

Hallo,

der Bericht muss nach dem PLZ-Bereich gruppiert werden. Dann kann die Anzahl der (Kunden)-DS der einzelnen Gruppen angezeigt werden.


Gruppieren nach Ausdruck:  Links([PLZ];1)

oder als Abfrage:


Select Left(PLZ,1) as PLZBereich , Count(*) as AnzahlKunden from tbl_unternehmen Group by left([PLZ],1)

Accessoraner

Danke für die schnelle Antwort, aber irgendwie verstehe ich es wohl nicht ganz

Wenn ich in der Query  GRUPPIERUNG nach Ausdruck einstelle und bei Kriterium Links([unt_PLZ];1) eintrage bekomme ich doch nur alle Datensätze mit einstelliger PLZ, bzw Links([unt_PLZ];4) alle Datensätze mit vierstelliger PLZ

Angezeigt hätte ich aber gerne die Anzahl aller Datensätze des jeweiligen PLZ Bereichs   0 bis 9

was mach ich falsch?

Zweite Frage: wo und wie muss ich die zweite Variante mit dem SELECT eintragen, vielleicht wäre dies der einfache Weg, ich möchte ja nur die Anzahl angezeigt bekommen.

Danke für die Hilfestellung und viele Grüße
Accessoraner

Lachtaube

Ob nun PLZ, die hoffentlich als Text ausgelegt ist, oder etwas anderem wie Namen (abgekürzt hier als NN in Tabelle T), ist bei der Gruppierung vollkommen egal.
T 
NN
Müller
Meier
Schmidt
Schmitz
Kasupke
Rietze
Rudolf
Racke

Die Abfrage
SELECT Left$([NN],1) AS ByLetter, Count(*) AS AnzNamen
FROM T
GROUP BY Left$([NN],1);
liefert dann

Query1 
ByLetterAnzNamen
K
1
M
2
R
3
S
2
Grüße von der (⌒▽⌒)

Joss

Hallo Accessoraner,

Zitatder Bericht muss nach dem PLZ-Bereich gruppiert werden. Dann kann die Anzahl der (Kunden)-DS der einzelnen Gruppen angezeigt werden.

Als Anhang ein Muster, wie es in A2010 aussieht.

Gruß
Josef


Accessoraner

Hallo Alle zusammen,

vielleicht habe ich mich etwas unklar ausgedrückt; der gruppierte Bericht ist mir schon verständlich, aber ich suche nicht den nach PLZ gruppierten Bericht mit den Anzahlen der Datensätzen

Ich hätte gern 10 Textfelder , Beschriftung PLZ 0 bis PLZ 9 mit der Anzahl der jeweils enthaltenen Datensätzen
Die Datensätze stehen in der Tabelle: tbl_unternehmen; das PLZ Feld heißt [unt_PLZ]

Muster: Plz Bereich 5        65 Datensätze
            Plz Bereich 6       123 Datensätze

Mehr sollte nicht angezeigt werden

Nochmals vielen Dank für die Hilfe
Accessoraner

Accessoraner

Ich habe etwas probiert und bin zu folgendem Zwischenergebnis gekommen.

Mit "DomAnzahl" wird mir die richtige Anzahl angezeigt (hier aus PLZ 70771) nur wie muss ich die Formel ändern, dass mir alle PLZ beginnend mit " 7 " gezählt werden oder ganz pauschal erste Stelle von links in dem gewünschten Feld

=DomAnzahl("[unt_PLZ]";"qry_anzahl";"[unt_PLZ]=70771")

[unt_PLZ] Felder mit den PLZ | qry_anzahl = zugehörige Query

Danke und viele Grüße
Accessoraner

Joss

Hallo Accessoraner,

nochmal zurück zu dem nach dem ersten Zeichen gruppierten Bericht.
Wenn du im Bericht den Detailbereich weglässt, und im Gruppenfuß ein ungebundenes Textfeld einfügst, in dem die Anzahl folgendermaßen dargestellt wird:
Steuerelementinhalt:
="Plz Bereich " & Links([unt_PLZ];1) & " " & Anzahl([unt_PLZ]) & " Datensätze"

Ergibt das nicht deine gewünschte Auflistung?
Oder verstehe ich dich falsch?

Gruß
Josef

Lachtaube

=DomAnzahl("*";"qry_anzahl";"unt_PLZ Like '7####'")
Das müsstest Du dann für jeden Bereich wiederholen. Vermutlich kannst Du auch gleich die Adress-Tabelle ohne Umweg über eine Abfrage in den Ausdruck einsetzen.

Persönlich würde ich aber eine Abfrage als Basis für den Bericht bevorzugen (weil schneller und ressourcenschonender), der die 10 Datensätze dann untereinander ausgibt (siehe Ahang).
Grüße von der (⌒▽⌒)

Accessoraner

Hallo Lachtaube,

das ist das was ich gesucht habe, so eine Art Anzahlabfrage für alles - vielen Dank

Zusatzfrage: wenn ich jetzt nach Anzahl in einem Datumsfeld suche und zwar bestimmten Monat und Jahr bringt mir folgendes Fehlermeldung

=DomAnzahl("*";"qry_anzahl_datum";"unt_datum Like '*.mm,jjjj'")

wie müsste der Code hierfür lauten

Nochmals DANKE und viele Grüße
Accessoraner

MzKlMu

#10
Hallo,
die Anzeige der PLZ Gruppen geht doch mit einem Bericht völlig problemlos auch ohne die Aggregatfunktionen (Dom...).
In einer Abfrage die erste Zahl der PLZ ermitteln, diese Abfrage als Datenbasis für den Bericht und den Bericht nach der 1. Zahl gruppieren.
Der Detailbereich bleibt leer und im Gruppenkopf wird mit =Anzahl(*) die Summe gebildet. Fertig. MusterDB anbei.
was es jetzt aber mit der Suche nach Jahr und Monat auf sich hat, musst Du mal genauer erklären.
Wenn ich was suchen will, muss ja irgendwo eingegeben werden nach was gesucht werden soll. Und Suchen macht nur in einem Formular Sinn. Oder willst Du den Bericht auf Jahr und Monat filtern?
Aber auch dann müssen die Filterwerte ja eingegeben werden.

Nachtrag:
Habe gerade gesehen, mein Beispiel ist doppelt gemoppelt. Lachtaube hat das auf die gleiche Art gelöst. Hatte das Beispiel übersehen.

Aber die Frage mit dem Jahr/Monat bleibt natürlich.
Gruß Klaus

Accessoraner

Hallo ihr "Alle",

habe eure Beispiele nicht nur ausprobiert, sondern auch umgesetzt - es funktioniert

Vielen Dank
Accessoraner

Domm

Hallo Lachtaube, wieso ist in Deinem Beispiel das Dollarzeichen im Textfeld? Kenne ich nur als absoluten Verweis in Excel...
Zitat=Links$([plz];1) & "xxxx"
Liebe Grüße
Gruß Domm


Domm

Tja, ich kann leider kein Englisch... :-[
Trotzdem dankeschön!
Gruß Domm