Neuigkeiten:

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

Mobiles Hauptmenü

Textfeld Steuerelementinhalt: Jeden Monat berechnen

Begonnen von lukyluke68, Januar 11, 2014, 20:47:52

⏪ vorheriges - nächstes ⏩

lukyluke68

Hallo,

ich möchte mir in einem Bericht die Anzahl der Störungen jedes Monates anzeigen lassen und am Ende soll die Gesamtsumme angezeigt werden.

Das Jahr habe ich in einem Textfeld so gesteuert
=Format$([Stoerungsdatum];"jjjj";0;0)

Den Monat habe ich so gesteuert
=Format$([Stoerungsdatum];"mmmm";0;0)

Nun möchte ich ein Textfelder wo ich die Anzahl der Störeinträge im Januar, Februar, ... sehe

Bsp.:
Januar    15
Februar   20
März       12
usw bis Dezember

Ich bekomme zwar mit dem Textfeld  =Anzahl([Stoerungsdatum]) das richtige Ergebnis, aber wie mache ich es über das ganze Jahr und den einzelnen Monaten.

Gruß Ludwig

database

Hallo,

Zitat...aber wie mache ich es über das ganze Jahr und den einzelnen Monaten.
Würde dazu eine gruppierte Abfrage verwenden.

In etwa so:

SELECT Count(ID) AS AnzahlvonID, DatePart("m",[DeinDatumsfeld]) AS m
FROM DeineTabelle
GROUP BY DatePart("m",[DeinDatumsfeld])



lukyluke68

Hallo,

bekomme es leider nicht auf die Reihe.
Im Anhang habe ich mal den Bericht wie er momentan aussieht. Die Daten sind ja soweit richtig, auch die Gesamtanzahl passt. Was ist aber wenn heute Juni wäre und ich mir die Anzahl der VorOrt Störungen im Jahr 2014 ansehe möchte. So wie jetzt der Bericht aufgebaut wäre, würde ich wahrscheinlich mehr als 20 Seiten haben.
Ich möchte aber alles auf eine Seite nur den Monat angezeigt mit der jeweiligen Anzahl der VorOrt Störungen
Gruß Ludwig

database

Hallo,

das ist ja klar, dass der Bericht viele Seiten umfaßt.
Du hast ja auch jedes Vorkommen im Detailbereich eingepackt.

Warum erzeugst du nicht einen eigenen Bericht als 'Übersicht' und verwendest dazu meine Abfrage - vielleicht ein wenig abgeändert um die Monatsnamen auch anzuzeigen, eingeschränkt auf das Jahr 2014.


SELECT COUNT(ID) AS AnzahlvonID, Monatsname(DatePart("m",[DeinDatumsfeld])) AS m
FROM DeineTabelle
GROUP BY DatePart("m",[DeinDatumsfeld]),  DatePart("yyyy",[beoBeginnDat])
HAVING DatePart("yyyy",[DeinDatumsfeld]))=2014

DF6GL

Hallo,


Gruppieren und Sortieren sollte bei einem Bericht nicht in der zugrundeliegenden Abfrage, eher im Bericht selber (Fenster Gruppieren/Sortieren) erfolgen. Ansonsten kann es passieren, dass sich der Bericht überhaaupt nicht um die angegebene Gruppierung/Sortierung in der Abfrage schert...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

database

#5
Ich weiß, dass die Sache schon mehrmals diskutiert wurde und wollte zusätzlich/alternativ einen gruppierten Bericht vorschlagen...
Habe aber im Vorfeld ein wenig herumexperimentiert und keine Probleme gesehen.
Auch dann nicht, wenn ich dem Bericht weitere Gruppierungen, GruppenKöpfe und GruppenFüße und/oder Sortierungen hinzufüge oder ändere.
Ein absolut aufwandsloses Beispiel ist im Anhang

EDIT:
ZitatAnsonsten kann es passieren, dass sich der Bericht überhaaupt nicht um die angegebene Gruppierung/Sortierung in der Abfrage schert...
Passiert in der Hauptsache dann, wenn der Bericht per Assistenten erstellt wird, da im Zuge der Erstellung möglicherweise Sortierungen und Gruppierungen vorgenommen werden, die in der Abfrage ev. (noch) nicht enthalten waren.

lukyluke68

Hallo,

im Anhang ein Bsp.
Der Bericht ist so wie ich ihn gerne haben möchte. Mit dem Formular wähle ich das Jahr aus.
Gruß Ludwig

Hondo

Hallo,
SELECT * FROM Anzahl_Wieviel Stoerungen im Jahr_abfr
Wenn du weder in Tabellennamen noch Abfragenamen Leerzeichen verwenden würdest, könnte es eventuell funktionieren....
So aber auf gar keinen Fall.

Gruß Andreas

lukyluke68

Hallo Andreas,

habe nun alle Leerzeichen mit einem _ ersetzt. Auch hier kein Erfolg nachdem ich im Formular das Jahr ausgewählt habe.
Gruß Ludwig

DF6GL

Hallo,


da fehlt noch viel mehr Nacharbeit:

Keine Beschriftungen bei Tabellenfeldern benutzen
Keine reservierten Wörter benutzen.
Richtige/passende Datentypen benutzen
Beziehungen im Beziehungsfenster definieren.
Tabelle "Jahreszahl_tab" ist überflüssig, bzw. darin ein separates ID-Feld zu führen.

Ich würde trotz der vagen  Gruppierungsmöglichkeit in der Berichtsabfrage darauf verzichten und nur eine einfache über die beteiligten Tabellen verknüpfende Abfrage benutzen, sowie den Bericht mit Übergabe eines evtl. benötigten Kriterium zur DS-Einschränkung bei Openreport öffnen, anstatt die Abfrage mit einem (anderen, bzw. neuen) SQL-Strings zu versorgen.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

database

#10
Hallo,

in Anlehnung an die Empfehlung(en) von DF6GL  (Ich würde trotz der vagen  Gruppierungsmöglichkeit in der Berichtsabfrage darauf verzichten ...)
Deine DB mit ein paar Änderungen im Anhang.

Den Timer im Formular habe ich entfernt, das eingebettete Makro verworfen, die Abfrage angepasst einen neuen gruppierten Bericht erstellt, die Tabellen berichtigt und die Beziehungen hergestellt, Die Auswahl der Jahre auf die tatsächlichen eingestellt - dadurch benötigst du die Tabelle mit den Jahreszahlen auch nicht mehr, usw ...  :'(
;) :) :)
HTH

lukyluke68

Hallo Peter,

vielen Dank für die Hilfe. Genau das habe ich benötigt.

Habe es schon eingebaut. Es läuft einwandfrei.

Gruß Ludwig