Hallo,
leider habe ich ein Problem nicht bedacht, das auftauchen
würde, und es geht leider nicht ganz so, wie ich es mir
vorgestellt hatte.
Ich kriege es im Moment nur so hin, dass du zwar die letzten
vier Arbeitstage hast, aber jeden Arbeitstag in einer anderen
Abfrage. Wäre das schlimm? Ich kriege die vier nicht in eine
Abfrage zusammengepackt, aber eigentlich müsste das gehen,
denke ich. Ich habe mir das halt auch nur irgendwie so selbst
beigebracht und bin da noch nichts sehr weit, ich habe auch
kein richtiges Buch davon. Aber das was ich da habe, geht.
Da ich keine Ahnung habe, was du bei Access kannst, gehe ich
davon aus, dass du das kannst, was aus deiner Anfrage
hervorgeht, also ungefähr so viel wie ich.
Schon vorher als Anmerkung: Manche Feldnamen werden ja
automatisch generiert, und da mein Access in englisch ist,
kann es sein, dass bei dir andere Namen entstehen. Das
betrifft diese Namen wie Expr1 oder MaxOfExpr1. Die könnten
bei dir vielleicht Ausdruck und MaxVonAusdruck oder so heißen,
aber damit kommst du ja bestimmt klar.
- Also, du hast eine Tabelle, ein Feld davon heißt
DATUM (behaupte ich einfach mal, ein anderes
MITARBEITER (könnte ja sein), und das erste Feld heißt
natürlich NUMMER und ist ein AutoWert und hat den
Primärschlüssel. Mehr Felder mach ich jetzt nicht, spielt ja
prinzipiell keine Rolle. Die Tabelle heißt AlleTage ,
weil da alle Tage aufgeführt sind.
1a) Jetzt machst du von der Tabelle AlleTage eine
Abfrage, und zwar übernimmst du aber nur das Feld
DATUM. Dann drückst du das Summenzeichen, und stellst
auf Max ein. Als Ergebnis hast du ein Feld mit Namen
MaxOfDATUM mit einem einzigen Datensatz, und darin
müsste das jüngste in der Tabelle verwendete Datum stehen.
Diese Abfrage nennen wir LetzterTag.
- Als nächstes machst du eine Abfrage, in der du die Tabelle
AlleTage und die Abfrage LetzterTag verwendest.
Der ersten Spalte gibst du die Überschrift:
Wenn(DATUMMaxOfDATUM;DATUM;"")
Es sollen hier also alle Daten erscheinen, nur das allerletzte
nicht. Access macht daraus:
Expr1: Wenn([DATUM][MaxOfDATUM];[DATUM];"")
oder so ähnlich, wie gesagt, mein Access ist englisch. Dieses
Feld heißt jetzt also Expr1 (oder das selbe in Deutsch,
Ausdruck1 oder was weiß ich)
Dann musst du wieder das Summenzeichen drücken und Gruppieren
oder so ähnlich (bei mir Group by) wählen, das kommt aber von
alleine. Und unten drunter als Kriterium „“, so dass
die Datensätze vom letzten Tag wegfallen.
In den nächsten Spalte übernimmst du einfach alles von der
Tabelle, was du brauchst, und da wir ja nur MITARBEITER
und NUMMER haben, übernehmen wir also die beiden.
Als Ergebnis haben wir dann eine Abfrage, in der alle
Datensätze stehen wie in der Tabelle AlleTage , außer
denen vom letzten Tag. Diese Abfrage nennen wir
OhneLetzten.
2a) Jetzt machen wir eine Abfrage von der Abfrage
OhneLetzten. Wir übernehmen nur Expr1 , worin ja
das Datum ist. Dann Summenzeichen und Max einstellen. Dieses
Feld heißt jetzt (automatisch) MaxOfExpr1. Wir haben
als Ergebnis den vorletzten in der Tabelle aufgeführten Tag
und nennen die Abfrage: VorletzterTag.
- Jetzt machen wir eine Abfrage, in der wir die Abfragen
OhneLetzten und VorletzterTag verwenden.
Schreiben wir in die erste Spaltenüberschrift:
Wenn(VorletzterTag!MaxOfExpr1OhneLetzten!Expr1;OhneLetzten!Expr1;"")
jetzt wird also auch der vorletzte Tag ausgeschlossen. Jetzt
wird wieder nach diesem Feld gruppiert und als Kriterium kommt
wieder „“.
Ansonsten werden wieder alle Felder übernommen, die letzten
Endes noch drin sein sollen, also MITARBEITER und
NUMMER.
Diese Abfrage nennen wir OhneVorletzten.
3a) Jetzt Abfrage von OhneVorletzten , dort Feld
Expr1 übernehmen, Summenzeichen drücken, Max
einstellen. Jetzt haben wir ein Feld, das auch
MaxOfExpr1 heißt, aber die Abfrage nennen wir
VorvorletzterTag.
- Jetzt kommt wieder eine Abfrage von den Abfragen
VorvorletzterTag und OhneVorletzten.
n die este Spaltenüberschrift kommt:
Wenn(VorvorletzterTag!MaxOfExpr1OhneVorletzten!Expr1;OhneVorletzten!Expr1;"")
und wieder Summenzeichen, gruppieren und das Kriterium
„“
In die nächsten beiden Spalten werden wieder
MITARBEITER und NUMMER übernommen.
Die Abfrage heißt jetzt OhneVorvorletzten.
4a) Jetzt wieder eine Abfrage von OhneVorvorletzten ,
dort Expr1 übernehmen, Summenzeichen klicken und Max
einstellen. Wie haben jetzt wieder MaxOfExpr1 , aber die
Abfrage heißt VorvorvorletzterTag.
Bis jetzt haben wir also den letzten, vorletzten,
vorvorletzten und vorvorvorletzten Arbeitstag, also die 4
letzten ermittelt.
Jetzt müssen wir noch diese Arbeitstage mit ihren anderen
Daten zusammenbringen.
Hast du noch Interesse, oder ist dir diese Lösung zu blöd?
Bitte Zwischenrückmeldung, dann folgt der Rest.
Viele Grüße
Thea