BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Funktion für Datum in der Zukunft!

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
MiZi
Beiträge: 36
Registriert: Di 13. Jun 2017, 09:38

Funktion für Datum in der Zukunft!

Beitrag von MiZi » Mi 14. Jun 2017, 18:36

Ich habe mich jetzt wirklich krumm und dumm gesucht, bin aber weder im Handbuch noch bei hsqldb.org fündig geworden. Vielleicht benutze ich aber, wie schon so oft, nicht das richtige Suchwort.
Also, ich habe unten angeführte Abfrage und suche damit die Mitglieder raus, die 10, 25 oder 40 Jahre Vereinsmitglied sind. Ich habe dafür einfach die Geburtstagsformel genommen, unterscheidet sich ja nicht wirklich. Problem ist, CURRENT_DATE hilf mir nicht weiter, ich bräuchte den Zeitraum bis <= 01.03.2018, angezeigt wird mir aber nur der Zeitraum bis heute. Access hat ja reichlich Datumsbefehle nur für Base finde ich nicht das passende.

Bin ich blind oder blöd oder gar beides?

Code: Alles auswählen

SELECT "Nachname", "Vorname", "Eintrittsdatum", DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) AS "Mgl.-Dauer" FROM "Mitglieder" 
WHERE ( DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) = 10 OR DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) = 25 OR DATEDIFF( 'yy', "Mitglieder"."Eintrittsdatum", CURRENT_DATE ) = 40 ) ORDER BY "Eintrittsdatum" ASC
Eigentlich bräuchte ich eine Funktion die mir die zu Ehrenden im Zeitraum 01.04.-01.03. anzeigt. Hintergrund ist, dass wir auf der Hauptversammlung Anfang März immer all diejenigen ehren, die zwischen der vergangenen und der kommenden Hauptversammlungen ein Jubiläum haben. So eine Funktion hat mir ein freundliches Forenmitglied im MS-Office-Forum erstellt (siehe ganz unten), eine Umstellung will mir aber nicht gelingen (und überfordert mich bei weitem)! Robert hatte

Code: Alles auswählen

"Datum" BETWEEN 2016-03-02 AND 2017-03-01
vorgeschlagen aber auch das bekomme ich nicht zum Laufen.

Code: Alles auswählen

SELECT Mitglieder.*,
       DateDiff("yyyy",[eintrittsdatum], 
       DateSerial(Year(Date())+abs(int(month(date()) > 4)),3,1)  )+
           (Format( DateSerial(Year(Date())+abs(int(month(date()) > 4)),3,1)   ,"mmdd")
            < Format([eintrittsdatum],"mmdd")) AS JahreAm1_3
FROM Mitglieder;
Edit:
Ich habe hier vorher unter dackelpack gepostet, leider wurde aber mein Account bei einer Änderung der Emailadresse auf "inaktiv" gesetzt. Trotz mehrfacher Anforderung der Aktivierungsemail ist nichts passiert, bis heute ist keine Email angekommen. Auch eine Email an den Admin hat nichts gebracht, bisher habe ich keine Antwort bekommen!

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Funktion für Datum in der Zukunft!

Beitrag von RobertG » Mi 14. Jun 2017, 20:16

Hallo Mizi,

wäre gut, wenn Du eine von Daten bereinigte Fassung der Datenbank (mit Dummidaten) bereitstellen würdest. Dann hast Du sicher mehr Meldungen und auch die Möglichkeit, eine Lösung zu bekommen. Lange Codezeilen ohne die entsprechende Datenbanken verlangen anderen Nutzern immer ab, sich viel Mühe beim Reindenken zu machen und schließlich doch daneben zu liegen.

Ich habe hier jetzt einmal eine einfache Datenbank genommen, in der ein paar Geburtstage enthalten waren. Schau Dir die Auswertung einmal an. Ist zuerst eine Abfrage, aus der ich das Jubiläumsalter ermittelt habe (Stichtag 1.3. eines Jahres mit DAYOFYEAR). Daraus dann eine Ansicht gemacht und aus der Ansicht die Jubiläen schließlich rausgezogen.

Gruß

Robert
Dateianhänge
Geburtstag_Jubel.zip
Juibiläen 10/25/40 - Start 1.03. eines jeden Jahres
(8.65 KiB) 127-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MiZi
Beiträge: 36
Registriert: Di 13. Jun 2017, 09:38

Re: Funktion für Datum in der Zukunft!

Beitrag von MiZi » Do 15. Jun 2017, 09:46

Hallo Robert.
erst mal vielen herzlichen Dank für die Zeit die du investierst und die Mühe die du dir machst um Nerds wie mir das Thema Datenbank näherzubringen!

Leider mehren sich aber die Probleme mit Base in letzter Zeit. Seit ca. zwei Wochen stürzt Base regelmäßig ab, mal beim abspeichern, mal wenn man es länger hat laufen lassen ohne etwas zu tun. Gestern kam nun der Supergau, meine Mitgliederdatenbank lässt sich nicht mehr öffnen. Jedesmal wenn ich sie starten will, bleiben das Tabellen-, das Abfrage- und das Formularfeld leer. Klicke ich auf "Tabellen" erscheint der Hinweis, dass die Verbindung zur Datenquelle nicht hergestellt werden kann. Das gleiche hatte ich mit deiner Geburtstag_Jubel-Datei, die sich aber heute wieder öffnen ließ. Ich habe LO entfernt und neu aufgespielt, keine Änderung. Auch die Sicherungsdatei ist betroffen! Jetzt muss ich mal sehen wie ich das wieder hinbekommen, ansonsten sind doch etliche Stunden Arbeit weg!

MiZi
Beiträge: 36
Registriert: Di 13. Jun 2017, 09:38

Re: Funktion für Datum in der Zukunft!

Beitrag von MiZi » Do 15. Jun 2017, 10:02

Das verstehe wer will, jetzt funktioniert es wieder :roll: !

Edit: Mein Fehler, war eine ältere Ausführung, die aktuelle funktioniert nach wie vor nicht!

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Funktion für Datum in der Zukunft!

Beitrag von RobertG » Do 15. Jun 2017, 11:50

Hallo MiZi,

ich habe bisher äußerst selten auch einmal eine Datenbank, die sich nicht mehr öffnen lässt. Zur Reparaturmöglichkeit von solchen Datenbanken kannst Du Dir das Handbuch ansehen (dort: Anhang). Datenbanken, die ich beruflich nutze, spalte ich immer in ein Frontend und ein Backend auf. Da läuft dann eine MariaDB als Serverdatenbank und der Zugriff darauf über LO-Base oder direkt mit Apache/PHP.

Die Vereinsdatenbank, die ich erstellt habe, wird allerdings weiterhin so genutzt wie bisher. Probleme sind mir damit von den jetzigen Nutzern nicht bekannt.

Bei internen Datenbanken würde ich eine automatische Sicherung über Makros einbauen. Steht auch im Handbuch.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MiZi
Beiträge: 36
Registriert: Di 13. Jun 2017, 09:38

Re: Funktion für Datum in der Zukunft!

Beitrag von MiZi » Do 15. Jun 2017, 18:20

Hab noch eine "lauffähige" und halbwegs aktuelle Version auf einer meiner Sicherungsplatten gefunden und nach einigem hin und her auch zum Laufen bekommen!

Was mich allerdings stutzig macht, ist das abgebildete Symbol im Explorer. Bisher war es immer ein Blatt Papier mit oben rechts abgeknickter Ecke, auf dem Blatt war das Base-Symbol. Jetzt ist es nur noch ein weißes Blatt!
Dateianhänge
Unbenannt.jpg
Unbenannt.jpg (12.95 KiB) 2563 mal betrachtet

MiZi
Beiträge: 36
Registriert: Di 13. Jun 2017, 09:38

Re: Funktion für Datum in der Zukunft!

Beitrag von MiZi » Sa 17. Jun 2017, 09:15

Hab gerade mal mit Geburtstag_Jubel rumgespielt, stelle ich DAYOFYEAR ('2017-03-01') auf 2018 ändert sich nichts, es werden weiterhin die 2017'er dargestellt. Wie geschrieben, die 2017'er Sitzung war ja bereits, jetzt bräuchte ich die zu Ehrenden für die Sitzung 2018. Ich werde mal eine Dummy-Tabelle anfertigen, komme aber sicherlich frühestens morgen dazu, muss jetzt mit Pferd und Kind aufs Turnier.

PS: Bei Geburtstag_Jubel funktioniert die Design-Ansicht!

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Funktion für Datum in der Zukunft!

Beitrag von RobertG » Sa 17. Jun 2017, 12:09

Hallo MiZi,
MiZi hat geschrieben:
Sa 17. Jun 2017, 09:15
Hab gerade mal mit Geburtstag_Jubel rumgespielt, stelle ich DAYOFYEAR ('2017-03-01') auf 2018 ändert sich nichts, es werden weiterhin die 2017'er dargestellt. Wie geschrieben, die 2017'er Sitzung war ja bereits, jetzt bräuchte ich die zu Ehrenden für die Sitzung 2018.
Das Datum ist im Prinzip nur ein Dummy - das Jahr ist egal. Es wird ja der Tag im Jahr ausgerechnet. Für Schaltjahre wäre dies 31+29+1 = 61, für normale Jahre 31+28+1 = 60.
Für 2017 erhältst Du nach der Funktion die richtigen Werte, wenn Du Dich im Jahr 2017 befindest. Das Alter wird ja weiter über CURDATE() berechnet.
MiZi hat geschrieben:
Sa 17. Jun 2017, 09:15
PS: Bei Geburtstag_Jubel funktioniert die Design-Ansicht!
Kein Wunder. Bei der Abfrage ist nicht die komplexe Abfrage aus dem Handbuch genutzt worden. Die Schaltjahre habe ich nicht berücksichtigt. Da müsstest Du dann die andere Formulierung mit CASE WHEN ... END einbauen - oder das Datum für DAYOFYEAR entsprechend bearbeiten.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten