QUOTE (Coach @ Mi 9.01.2008, 11:40)Jetzt weiß ich, dass z.B. in der Zeit von 01.01.2008 bis 06.12.2008 jeden Freitag das gleiche Event stattfindet.
Wie könnt ich das realisieren, dass ich dann das Anfangs- und Enddatum auswählen kann und der mir dann die Freitage dazwischen in meine DB schreibt?
Das läßt sich so nicht allgemein beantworten.
Du kannst eine Tabelle anlegen mit Anfangs- und Endtermin plus einem Abstand (hier 7 Tage) zwischen zwei Terminen oder den Wochentag als Zahl zwischen 0 und 6. Dann kann sich ein Script diese Information auslesen und gibt solange Tage aus, bis das Enddatum überschritten ist.
Das, was so ein Script macht, könnte auch eine hinreichend komplexe Sql-Abfrage machen - etwas ähnliches nutze ich innerhalb von server-daten für Kalenderdarstellungen.
Prinzip: Tabelle, in der 'alle Tage' drinstehen (die Tabelle wird bei Bedarf vergrößert).
QUOTE Select A._tbl_CalendarId, A.thisDay, B.TextInfo
From _tbl_Calendar As A Left Join
(Select C._tbl_CalendarId, D.TextInfo
From _tbl_Calendar As C Inner Join Termine As D
On C.thisDay Between D.Beginn And D.Ende And DatePart(dayofweek, C.thisDay) = D.Wochentag) As B
On A._tbl_CalendarId = B._tbl_CalendarId
Die Unterabfrage listet alle Tage zwischen den Randintervallen, die zusätzlich auf diesen Wochentag fallen, die umgebende Abfrage listet alle Tage einmal, zusätzlich von den Tagen mit Termin irgendeine Info.
Die 'gegenteilige Variante' besteht darin, beim Eintragen in die Datenbank aus diesen drei Informationen alle Termine sofort zu berechnen und für jeden Termin eine Zeile in einer Tabelle einzutragen, die nur eine Datumsspalte enthält. Wenn das Intervall zwanzig Wochen umfasst, werden zwanzig Einzelzeilen erzeugt.
Oder einfach server-daten nutzen und sich von mir was Nettes einrichten lassen - kostet aber, wäre dann aber auch gleich mehrbenutzerfähig und vieles mehr, könnte auch in verschiedene Domains gleichzeitig eingebunden werden.