Terminkalender – auch „blockieren“ Zeiten anzeigen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo,

Habe einen rudimentärem Terminkalender erstellt, mit dem ich wegen der umständlichen Bedienung zwar nicht zufrieden bin, aber muss mich wohl als Anfänger in Base zunächst damit abfinden, weil ich leider überhaupt keine adäquate Vorlage für einen Kalender gefunden habe.

Ein großes Manko dieses Formulars neben Bedienbarkeit ist:
blockierte (externe) Zeiten können noch nicht angezeigt werden.

Ausgangspunkt:

Das Formblatt beruht auf einer Abfrage:
Zeige mir alle bereits vergebenen Termine für alle MitarbeiterInnen und trage ggf. neue Termine für MitarbeiterIn yx ein oder ändere ggf bereits eingetragene Termine.
Das klappt soweit.
(siehe Screenshot von meiner Anfrage „Terminplaner“ vom 28. 04. 2019
Für Verbesserungsvorschläge wäre ich sehr dankbar!)

Momentane Sql_Code:
SELECT "tbl_Termine_P"."TerminDatum"
AS "Termin", "tbl_Termine_P"."Beginn_Termin"
AS "Beginn", "tbl_Termine_P"."Ende_Termin"
AS "Ende", "tbl_P_Stammdaten"."Nachname", "tbl_P_Stammdaten"."Vorname", "tbl_P_Stammdaten"."geb", "tbl_Termine_P"."Bemerkung"
FROM "tbl_Termine_P", "tbl_P_Stammdaten"
WHERE "tbl_Termine_P"."ID_P" = "tbl_P_Stammdaten"."ID_P"
AND "tbl_Termine_P"."TerminDatum" IS NOT NULL ORDER BY "Termin" ASC, "Beginn" ASC

Nun sollen in diesem Terminkalender auch „blockierte“ Zeiten angezeigt werden.
Grund z. B.:
Ich, als externer, unbezahlter Berater, der diese Termine z. B. für eine Schule zu organisiert hat und daran teilnimmt, habe an bestimmten Tagen Wichtigeres zu tun, zum Beispiel mit meinen Enkelkindern in den Zoo zu gehen.

Also habe ich eine Tabelle erstellt, in denen die „privaten“ Termine eingetragen sind.

Und genau diese Termine sollen ebenfalls in die Abfrage integriert werden:
Zeige mir alle bereits vergebenen Termine für alle MitarbeiterInnen und zeige in dem Tabellen-Steuerelement auch die „blockierten“ (privaten) Termine.
(Siehe Screenshot)

Ich habe momentan überhaupt keinen Plan, wie ich die Tabelle „Private Termine“ in die Abfrage einbinden soll.
Geht das ganze nur über eine m zu n Beziehung? Nur über eine Referenztabelle?

Bin von daher für Hinweise sehr dankbar.

Grüße aus El Salvador, Peter
Dateianhänge
blockierte Zeiten auch aufzeigen.png
blockierte Zeiten auch aufzeigen.png (42.86 KiB) 9670 mal betrachtet
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von F3K Total »

Moin,
wenn es nicht editierbat sein kann, dann so z.B.:

Code: Alles auswählen

SELECT
    "tbl_P_Stammdaten"."ID_P",
    "tbl_P_Stammdaten"."NAME",
    X."ART",
    X."Beginn_Termin",
    X."Ende_Termin",
    X."Bemerkung",
    X."TerminDatum"
FROM
    (SELECT
        'Dienstlich' "ART",
        "ID_Termin",
        "ID_P",
        "Beginn_Termin",
        "Ende_Termin",
        "Bemerkung",
        "TerminDatum"
    FROM
        "tbl_Termine_P"
    UNION
    SELECT
        'Privat',
        "ID_Termin",
        "ID_P",
        "Beginn_Termin",
        "Ende_Termin",
        "Bemerkung",
        "TerminDatum"
        FROM
        "tbl_Termine_Privat" ) AS X,
        "tbl_P_Stammdaten"
    WHERE
         X."ID_P" = "tbl_P_Stammdaten"."ID_P"
Gruß R
peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo R,

ganz herzlichen Dank für deine super schnelle Hilfe, vor allem, dass du dir noch zusätzlich die Mühe gemacht hast in der Anweisung sogar „meine“ Feldnamen zu übernehmen.

Leider bekomme ich trotz vieler Probiererei nur Fehlermeldungen, siehe Screenshot.
Angeblich gibt es die Column „ID_Privat_Termin“ in Tabelle „tbl_Termine_Privat nicht, was aber nicht stimmt.
Was habe ich bislang versucht:
- in deiner Anweisung „NAME“ durch „Nachname“ ersetzt,
- Feldnamen in beiden Tabellen angeglichen,
- die "ID_P", in deiner Anweisung gelöscht, weil es die „ID-P“ in der Tabelle "tbl_Termine_Privat" nicht gibt.
Leider hat das alles nichts gebracht.

Bevor ich weiter im Nebel stochere, als Einsteiger in Base kann ich deine Anweisung nur als Vermutung erahnen, nicht als vorhandenes Wissen nachvollziehen, eine Frage:

Kann es sein, nur eine Vermutung, dass die Fehlermeldung auch darauf beruht, dass die Reihenfolge der Feldnamen in beiden Tabellen unterschiedlich ist, sprich, die Reihenfolge der Datentypen stimmt nicht überein? > siehe beide Tabellen

Für einen Lösungsvorschlag wäre ich sehr dankbar.

Noch mal ganz herzlichen Dank für deine Geduld, Anfängern unter die Arme zu greifen.

Danke, Peter

PS.: komischerweise wird die von mir hinzugefügte Datei - Screenshot - diesmal nicht in der Vorschau angezeigt.
Falls sie nicht angekommen ist, bitte melden.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von F3K Total »

Guten Morgen,
das Bild ist nicht sichtbar, anbei eine Beispieldatei zur Fehlersuche. Mir fällt auf das bei dir TerminDatum nicht gleich Termin_Datum ist.
Gruß R
Dateianhänge
Termine.odb
(13.88 KiB) 196-mal heruntergeladen
peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo R,

ganz herzlichen Dank für deine schnelle Reaktion.
Schaue ich mir morgen an, hier ist es fast 02:00.
Mir fällt auf das bei dir TerminDatum nicht gleich Termin_Datum ist.
Das hatte ich bereits geändert, selbst die Feldnamen beider Tabellen angeglichen.

Ich versuche nochmal Screenhot hochzuladen.datei
Tabellen zusammenfügen.odt
(91.58 KiB) 182-mal heruntergeladen
Scheint leider wieder nicht zu klappen. Versuche es mit einer obt-

Peter
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von F3K Total »

... na dann ist es klar, du kannst die Tabellen nur dann mit UNION SELECT untereinanderschreiben, wenn beide Tabellen die gleiche Anzahl und Typen von Spalten haben.
Gruß R
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von F3K Total »

Hallo Peter,
ich hatte Lust es auszuprobieren, anbei eine Beispieldatenbank mit einem Formular, in dem man auch eine optische Rückmeldung zur Lage der Termine über den Tag bekommt. Name und Bemerkung werden neben der Uhrzeit sowohl für dienstliche als auch für private Termine angezeigt.
Dazu habe ich per SQL einen Kalender berechnet, der den Tag in 1/4 Stunden Abschnitte unterteilt.
Dies würde z.B. auch im 5-Minuten-Takt funktionieren, dann müsste man aber schon innerhalb eines Tagen scrollen, da deulich mehr Zeilen im linken grauenTabellenkontrollfeld erscheinen würden.
Termine.png
Termine.png (25.47 KiB) 9543 mal betrachtet
Viel Spaß beim Forschen...
Gruß R
Dateianhänge
Termine_Formular.odb
(19.02 KiB) 209-mal heruntergeladen
peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo R,
deine Beispieldatei ist ja absolute Spitzenklasse. Danke

Werde mich die Tage damit näher befassen und versuchen sie zu modifizieren. Melde mich dann noch mal.

Bei der Gelegenheit habe ich noch eine Frage, die ich aber separat stellen möchte.
Frage: "Daten in einer Tabelle erfassen oder auf mehrere Tabellen aufteilen."

Sie hat zwar konkret mit der Planung des Terminkalenders zu tun, ist aber auch eine weit darüber hinausgehende Frage.

Noch mal ganz herzlichen Dank für deine Mühe.

Liebe Grüße aus El Salvador, Peter
peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo R,

meine Antwort bezieht sich auf deinen Beitrag "Termine.odb". vom 11. 05. 2019.

Um meine Antwort, Frage zu verstehen füge ich ein Writer.odt hinzu:

"selbst einfachste odb Datei scheint unter Windoof Probleme zu haben.odt" Fragezeichen fehlt im Dateiname.


Mit lieben Grüßen, Peter, El Salvador
Dateianhänge
selbst einfachste odb Datei scheint unter Windoof Probleme zu haben.odt
(127.94 KiB) 183-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von F3K Total »

Hallo,
du solltest die Abfrage nicht mit der GUI, "grafische Benutzeroberfläche", sondern:
SQL_ANSICHT.png
SQL_ANSICHT.png (15.12 KiB) 9342 mal betrachtet
In SQL-Ansicht bearbeiten...
Da siehst du dann dies:

Code: Alles auswählen

SELECT "tbl_P_Stammdaten"."ID_P", "tbl_P_Stammdaten"."NAME", "X"."ART", "X"."Beginn_Termin", "X"."Ende_Termin", "X"."Bemerkung", "X"."TerminDatum" FROM ( SELECT 'Dienstlich' "ART", "ID_Termin", "ID_P", "Beginn_Termin", "Ende_Termin", "Bemerkung", "TerminDatum" FROM "tbl_Termine_P" UNION SELECT 'Privat', "ID_Termin", "ID_P", "Beginn_Termin", "Ende_Termin", "Bemerkung", "TerminDatum" FROM "tbl_Termine_Privat" ) AS "X", "tbl_P_Stammdaten" WHERE "X"."ID_P" = "tbl_P_Stammdaten"."ID_P"
was genau dem Code in diesem Beitrag entspricht.
Gruß R
peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo R,

ganz lieben Dank für deinen Hinweis.

Rest wegen der besseren Lesbarkeit als Anhang.

Liebe Grüße, Peter
Dateianhänge
private und diesntliche Termine in einer Tabelle.odt
(160.79 KiB) 181-mal heruntergeladen
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von F3K Total »

Hallo peschiber,
du schreibst:
peschiber hat geschrieben:1. sowohl „private“ als auch „dienstliche“ Termine werden in einer einzigen Tabelle,
"tbl_Termine_P" erfasst. (Tabellenname noch nicht angepasst, weil Base bedauerlicherweise bei Änderung nicht gleichzeitig alle weiteren vorhandenen genutzten Einträge mit dem Namen "tbl_Termine_P" ändert.
Wäre ein Verbesserungswunsch meinerseits für einen der nächsten updates in LibreOffice.)
Ich weiß nicht, ob du es wusstest, aber dieses Forum ist ein privates Forum, in dem freiwillige Helfer in ihrer Freizeit anderen Benutzern bei Anwendungsproblemen mit LibreOffice/ApacheOpenOffice helfen. Änderungen am Programm kannst du hier nicht absetzen, da musst du dich an die jeweiligen Projekte (Bugzilla) wenden.

Was die Sortierung angeht, brauchst du an meine Abfrage nur

Code: Alles auswählen

ORDER BY "TerminDatum","Beginn_Termin"
anhängen.
peschiber hat geschrieben:Was deine Sql-Anweisung anbelangt:
SELECT "tbl_P_Stammdaten"."ID_P", "tbl_P_Stammdaten"."NAME", "X"."ART", "X"."Beginn_Termin", "X"."Ende_Termin", "X"."Bemerkung", "X"."TerminDatum" FROM
( SELECT 'Dienstlich' "ART", "ID_Termin", "ID_P", "Beginn_Termin", "Ende_Termin", "Bemerkung", "TerminDatum" FROM "tbl_Termine_P" UNION SELECT 'Privat', "ID_Termin", "ID_P", "Beginn_Termin", "Ende_Termin", "Bemerkung", "TerminDatum" FROM "tbl_Termine_Privat" )
AS "X",
"tbl_P_Stammdaten" WHERE "X"."ID_P" = "tbl_P_Stammdaten"."ID_P"


habe ich überhaupt nicht nachvollziehen können, wie das genau mit deinem „neuen“ Feldtyp Variable „X“, "X"."ART", "X"."Beginn_Termin", "X"."Ende_Termin", "X"."Bemerkung", "X"."TerminDatum" funktioniert.
Ich kann dir hier im Forum nicht SQL beibringen. Das X ist der Alias für die Unterabfrage mit dem UNION. Oder anders, mit "X"."ART" wird das 'Dienstlich' oder 'Privat' aus der Unterabfrage( SELECT 'Dienstlich' "ART", "ID_Termin", "ID_P", "Beginn_Termin", "Ende_Termin", "Bemerkung", "TerminDatum" FROM "tbl_Termine_P" UNION SELECT 'Privat, "ID_Termin", "ID_P", "Beginn_Termin", "Ende_Termin", "Bemerkung", "TerminDatum" FROM "tbl_Termine_Privat" ) ermittelt.

Gruß R
peschiber
**
Beiträge: 41
Registriert: So, 28.04.2019 08:51

Re: Terminkalender – auch „blockieren“ Zeiten anzeigen

Beitrag von peschiber »

Hallo R,

danke für deinen Hinweis und deine Geduld, Peter
Antworten