Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage für Terminüberschneidungen und visuelle Darstellung

Begonnen von centaurus, April 10, 2010, 15:10:42

⏪ vorheriges - nächstes ⏩

centaurus

Hallo,

ich suche eine Lösung für die folgenden 2 Probleme:

1) Ich habe eine Tabelle in der Veranstaltungen und die dazugehörigen Wochentage (z. B. montags, wöchentlich) und Zeitfenster (14-16 Uhr) eingepflegt sind. Eine Abfrage soll nun alle Veranstaltungen anzeigen die sich überschneiden ohne, dass ich für jeden Wochentag und jedes Zeitfenster eine extra Abfrage erstellen muss.

2) Wie lässt sich so eine Abfrage ggf. graphisch darstellen? Am liebsten wäre mir ein Wochenplan auf dem alle sich überschneidenen Veranstaltungen in das jeweilige Zeitfenster geschrieben sind (z. B. montags, 14-16 Veranstaltung Nr. 1,2...)

Schönen Gruß und vielen Dank für Eure Hilfe!
Christian

database

#1
Hallo, grüß dich,

also ...

Terminüberschneidungen in einer einzelnen Tabelle zu finden und darzustellen ist nicht ganz einfach - aber das hast du wahrscheinlich selbst auch schon festgestellt.
Die 'Kunst' dabei ist es, einen Weg zu finden, über den nur die Datensätze angezeigt werden, die tatsächlich eine solche Überschneidung darstellen.
Nun, das Geheimnis dahinter ist folgendes:
Ich ging davon aus, dass du eine Tabelle mit dem Namen 'Veranstaltungen' dein Eigen nennst.
In dieser Tabelle sollen die Felder Veranstaltung (Zahl, Long Integer), Wochentag (Text), Start (Datum/Uhrzeit) und Ende (Datum/Uhrzeit) vorhanden sein und ein paar Daten beinhalten.
Aus diesen Einträgen wird ersichtlich, dass sich die Veranstaltungen 1 und 3 am Montag sowie 4 und 5 am Dienstag überschneiden.

Veranstaltung     Wochentag       start     ende
----------------------------------------------------
1                 Montag          14:00:00  15:00:00
2                 Montag          15:30:00  16:00:00
3                 Montag          14:30:00  15:00:00
4                 Dienstag        14:30:00  16:00:00
5                 Dienstag        15:00:00  15:30:00
6                 Dienstag        14:00:00  14:30:00
7                 Donnerstag      15:00:00  15:30:00



Du benötigst das Kreuzprodukt der Abfrage auf die Tabelle Veranstaltungen und auf deren Kopie
Für ein Kreuzprodukt dürfen die beiden Tbellen dann nicht per JOIN verbunden werden!
Folgende SQL ....

SELECT DISTINCT Veranstaltung.Veranstaltung, Veranstaltung_1.wochentag, Veranstaltung.Start, Veranstaltung.Ende
FROM Veranstaltung, Veranstaltung AS Veranstaltung_1
WHERE (((Veranstaltung.Veranstaltung)<>[veranstaltung_1].[veranstaltung]) AND
((Veranstaltung_1.wochentag)=[veranstaltung].[wochentag]) AND
((Veranstaltung.Start)<[veranstaltung_1].[ende]) AND
((Format(IIf([veranstaltung_1.start]<[veranstaltung].[ende],[veranstaltung].[ende]-[veranstaltung_1].[start],""),"hh:nn:ss"))<>""))
ORDER BY Veranstaltung_1.wochentag DESC;

.... folgendes Ergebnis:

Veranstaltung    Wochentag        Start      Ende       ÜberschneidetMit
1                Montag           14:00:00   15:00:00   3
3                Montag           14:30:00   15:00:00   1
4                Dienstag         14:30:00   16:00:00   5
5                Dienstag         15:00:00   15:30:00   4

Wodurch die oben erwähnten und sichtbaren Überschneidungen angezeigt / ausgegeben werden.
Das Feld 'ÜberschneidetMit' dient der Demonstration und ist in obiger SQL nicht enthalten, es würde bei mehr Überschneidungen pro Tag die Datensatzanzahl zu sehr erhöhen (Jede Überschneidung wird für jeden Datensatz 2 x angezeigt)
Die sich überschneidenden Veranstaltungen stehen nach Wochentagen sortiert untereinander.
Dieses Ergebnis bzw. die SQL KANN als Datenherkunft für eine Tabellenerstellungsabfrage verwendet werden.
Die Tabelle könnte dann als Grundlage für eine VBA-Routine herangezogen werden, mit Hilfe der ein Excel-Arbeitsblatt mit den gewünschten Informationen 'gefüttert' wird.
So kann etwa eine Art Wochenplan, wie ich ihn im Anhamg beispielsweise eingefügt habe mit deinen Überschneidungsdaten befüllt wirden.
Um einen graphischen Zusatzeffekt zu erlangen könnte dann noch jede Veranstaltung eine eigene Farbe als Zellhintergrund erhalten.
Leider kann ich dir dazu keine fertige Lösung anbiten .. aber Fragen kannst du gerne im Forum dazu stellen.

Ich habe dir dann nch meine Spieldatei hier hochgeladen damit du beim Testen dein Echtsytem nicht zerwurschteln musst :)
Ein Beispiel für einen Wochenplan ist ebenfalls vorhanden.

HTH

Peter




[Anhang gelöscht durch Administrator]

centaurus

Hallo Peter,

ich bin beigeistert über Deine kompetente Rückmeldung.

Vielen Dank für die ausführliche Beschreibung und die Beispieldateien!!!

Ich werde die Abfrage gleich ausprobieren und melde mich wegen der graphischen Darstellung via Excel sicherlich noch einmal.

Herzlichen Dank und viele Grüße
Christian





cy_one_1

Bin durch google gerade auf diesen Thread gestoßen.

Hatte genau das selbe Problem wie centaurus.

Wollte mich auch nur kurz bedanken und feedback geben.

Auch bei mir hat alles super funktioniert. Mußte mich zwar erst einige Zeit mit dem Code befassen - ging dann aber.

Vielen Dank nochmal. :)