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. 🤗

Überschneidungen oder Duplikate in Zeitangaben

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Kistendeckel
Beiträge: 8
Registriert: Fr 1. Mär 2019, 10:48

Überschneidungen oder Duplikate in Zeitangaben

Beitrag von Kistendeckel » Fr 1. Mär 2019, 11:15

Hallo ihr lieben,
ich bin grade dabei eine Datenbank zu erstellen. Eine ähnliche hatte ich schonmal erstellt, welche auf Grund von diversen Änderungen so nicht mehr den Aufgaben gerecht wird, die sie erfüllen soll. Damals hatte ich das gleiche Problem wie heute, konnte es aber einfach ignorieren, weil es nicht zwingend notwendig war, dass die Datenbank das kann.

Ich habe in einen Formular und Abfrage die Felder
Name (Text)
Vorname (Text)
Kürzel (Text)
Datum (Date)
Von (Time)
Bis (Time)

Nun habe ich zwei Probleme. Ich möchte in einem Formular, dass an einem Tag Zeitüberschneidungen vermieden werden. Zb. 1.1.2019 von 13.00 bis 14.00 und 1.1.2019 13:50 bis 14:10 sollte nicht möglich sein, bzw. eine Meldung ausgeben.

Mein Zweites Problem in einer Abfrage sollen Zeiten in der Abfrage Zusammengezogen werden. Zb. 1.1.2019 von 13.00 bis 14.00 und 1.1.2019 von 14.00 bis 14.10 möchte ich als Ergebnis habe 1.1.2019 von 13:00 bis 14:10

Ich hoffe es gibt Lösungsmöglichkeiten, die für mich auch umsetzbar sind.

Vielen Dank schonmal für eure Hilfe

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

Re: Überschneidungen oder Duplikate in Zeitangaben

Beitrag von RobertG » Fr 1. Mär 2019, 21:37

Hallo Kistendeckel,

das Addieren der Zeiten bezogen auf einen Tag dürfte mit Abfragen kein Problem sein:

Code: Alles auswählen

SELECT "a".*, 
(SELECT SUM(Datediff('mi',"Startzeit","Endzeit")) FROM "Zeiten" WHERE "Datum" = "a"."Datum") AS "Diff" 
FROM "Zeiten" AS "a"
... so habe ich das gerade mit einer Tabelle mit Zeiten und Datumswerten hier erledigt bekommen. Du brauchst vermutlich noch das Kürzel in der Unterabfrage, da wohl nur die Zeiten für eine Person pro Tag addiert werden sollen.

Die Zeiteingabe für eine Zeile, also bei Dir "Von" "Bis", kann über SQL mit der internen Datenbank abgesichert werden:

Code: Alles auswählen

CREATE TABLE "Zeitmessung" ("ID" INT PRIMARY KEY, "Startzeit" TIME, 
"Zielzeit" TIME, CONSTRAINT "Startzeit<=Zielzeit" 
CHECK ("Startzeit" <= "Zielzeit"));
So ein Befehl erzeugt in Extras > SQL eine Tabelle, bei der es nicht möglich ist, eine Zielzeit einzugeben, die kleiner als eine Startzeit ist.

Diese Funktionalität hilft Dir aber nicht bei dem Problem, dass Du überschneidende Zeiten in anderen Zeilen der Tabelle ausschließen willst. Die einfachste Möglichkeit wäre wohl, die Felder bei einer folgenden Eingabe für die gleiche Person in dem Moment einzuschränken, wenn das Kürzel eingegeben wurde. Der vorherige maximale "Bis"-Wert für das "Kürzel" muss also zuerst (per Makro) aus der Tabelle ausgelesen werden und dann als Minimalwert in dem Formularfeld für "Von" eingetragen werden.

Hierfür solltest Du Dich allerdings etwas mehr in Makros einarbeiten. Schau Dir dazu einmal das Handbuch an - oder auch die letzten Threads hier. Da habe ich gerade wieder einmal aufgeschrieben, wie eine Abfrage über Makros abgegeben und ausgelesen werden kann. Mit oZeitFeld.TimeMin müsste die Mindestzeit gesetzt werden können. Ich habe jetzt nicht überprüft, welche Fallstricke beim Auslesen aus einer Abfrage und der Änderung des Wertes in einem Formular noch wegen der Formatierung der Zeit auftauchen können.

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

Kistendeckel
Beiträge: 8
Registriert: Fr 1. Mär 2019, 10:48

Re: Überschneidungen oder Duplikate in Zeitangaben

Beitrag von Kistendeckel » Mi 20. Mär 2019, 09:07

Vielen Dank Robert,
ich kann es zur Zeit leider nicht Testen, das hilft mir aber auf jedenfall weiter.

LG
Timo

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