Neuigkeiten:

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

Mobiles Hauptmenü

Die nächsten Termine der nächsten 30 Tage anzeigen lassen.

Begonnen von Andy84, Januar 09, 2017, 21:21:32

⏪ vorheriges - nächstes ⏩

Andy84

Wunderschönen guten Abend zusammen,

ich bin neu hier und verzweifelt nacht einer Lösung. Ich möchte gerne in einer Abfrage die nächsten Termine der nächsten 30 Tage anzeigen lassen. Dabei soll immer von dem aktuellen Datum ausgegangen werden.
Gleichzeitig sollen auch Geburstage mit angezeigt werden. Also im Prinzip sollen nur die Tage und Monate berücksichtigt werden.

Hat jemand von euch eine Lösung dafür?

Über eure Hilfe würde ich mich sehr freuen.

Liebe Grüße
Andreas

crystal

#1
Hallo Andy,

willkommen im Forum!

Dein Wunsch lässt sich allgemein mittels der DateAdd-Funktion lösen, etwa so (Luftcode):

select <irgendwas> from <termintabelle> where
datum > (heute) and
datum <= dateadd("m",1,heute)

Damit würde zum heutigen Datum genau 1 Monat addiert werden; wenn du jedoch genau 30 Tage (oder 28) haben möchtest, müsstest du schreiben

datum <= dateadd("d",28,datum)

Du kannst das im Abfrage-Generator syntaktisch richtig zusammenbasteln (Rechtsklick im Feld "Kriterien" -> aufbauen).

lg
crystal


Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

el_gomero

Hallo,

vllt hilft dir auch fürs erste die Beispiel-db Geburtstagsliste aus dem dbwiki.

https://dbwiki.net/wiki/Access_Beispieldatenbanken
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

Andy84

Vielen lieben Dank für die schnelle Hilfe.

@crystal: Wie bekomme ich das denn hin, dass er nur die Tage und Monate betrachtet und nicht die Jahre? Da alle Geburtstage weit in der Vergangenheit liegen, werden diese nicht angezeigt.

crystal

Hallo Andy,

am besten wohl, indem du Geburtstage für das laufende Jahr als Termin einträgst. Dann kannst du auch berücksichtigen, wenn ein MA nicht mehr in der Firma ist.

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

ebs17

Zitatam besten wohl, indem du Geburtstage für das laufende Jahr als Termin einträgst
Das ist dann Pragmatismus, der mit elektronischer Datenverarbeitung nicht mehr viel zu tun hat.

@Andy84:
Zur Geburtstagsliste hast Du einen Link zu einem Beispiel. Wenn es zusätzlich eine Terminliste (zu anderen Begebenheiten als Geburtstagen) gibt, würde man die beiden Listen per UNION zusammenfassen.
Mit freundlichem Glück Auf!

Eberhard

crystal

Hallo Andy,

lass dich nicht irritieren.

Pragmatismus ist manchmal auch sinnvoll!
Wenn es zwei Tabellen gibt (Termine und Geburtstage) braucht man auch zwei Erfassungs-Dialoge etc.

Wenn es in der Termin-Verwaltung bereits so was gibt wie "diesen Termin regelmäßig alle x Tage/Wochen/Monate eintragen", was bei einer Termin-Verwaltung ja nicht ungewöhnlich wäre, macht es durchaus Sinn, Geburtstage z.B. mit dem Text "Geb. Meier (1982)" jedes Jahr als Termin einzutragen. So macht es z.B. auch der Google-Kalender.

Eine Union-Abfrage könnte dir zwar beide Tabellen zusammen darstellen, aber eine Frage wie "Was ist heute los? Schau ich doch mal im Termin-Kalender nach." beantwortet sie nicht, weil der Geburtstag ja in einer anderen Tabelle steht. Übrigens wird vor Union-Abfragen oft gewarnt, auch von ebs17, soweit ich mich erinnere.

Die Union-Abfrage macht allenfalls für die 30-Tage-Terminvorschau etwas Sinn, wenn man einmal Gedanken zur Darstellung außer Acht lässt. Da ist es doch angenehmer und ergonomischer, in der Darstellung zu einem Tag alle Geburtstage UND Termine in einem Block zu sehen, auch in der 30-Tage-Vorschau, oder?

Inwiefern dieser "Pragmatismus mit elekronischer Datenverarbeitung" nicht mehr viel zu tun hat, erschließt sich mir nicht, vor allem auch dann nicht, wenn ich an andere wiederkehrende Termine denke (Jubiläen, Tag der Firmen-Gründung, Feiertage, Steuertermine fürs Finanzamt usw.).

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

Andy84

Guten Abend zusammen,

ich hab jetzt folgende Lösung gefunden.

In der Abfrage ein neues Feld mit:

NaesteTermine: DatAdd("jjjj";Nz(DatDiff("jjjj";[terminDatum];Datum()));[terminDatum])

und als Filterkriterium

Zwischen Datum() und Datum() +30


Damit hat es funktioniert. Allerdings verstehe ich die Abfrage nicht :) Diese tauscht die Jahre in das aktuelle Jahr aber wie, das weiß ich nicht.

Liebe Grüße
Andy

HB9876

Hallo,
die werden nicht getauscht, nur anders verarbeitet und dargestellt.
Das liegt an dem "jjjj" in der Abfrage, dieses sagt aus das das entsprechende Jahr vierstellig ausgegeben wird.

Gruss

Mit jeder Antwort komme ich weiter und lerne.<br /><br />Danke!!!

ebs17

ZitatDamit hat es funktioniert. Allerdings verstehe ich die Abfrage nicht
Zur Jahreszahl des Geburtstages wird die Jahres-Differenz aus Heute und Geburtstag addiert, ein 20.01.1979 wird so zum 20.01.2017.

Allerdings ist diese Methode fehlerhaft, wenn Du einen Zeitraum rund um einen Jahreswechsel betrachten willst.
Mit freundlichem Glück Auf!

Eberhard