Hallo zusammen,
ich benötige mal wieder Eure Hilfe.
Ich bastele an einer Datenbank die u.a. zwei Tabellen besitzt.
Die eine (tbl_Klienten) enthält alle demografischen Informationen einer Person.
Die andere (tbl_Abwesenheiten) enthält ein Abwesenheitszeiten wie folgt:
Beginn - als Datum wann der Klient den ersten Tag in Abwesenheit ist und
Ende - als Datum wann der klient den letzten Tag in Abwesenheit ist.
Die Beiden Tabellen sind mit "Klienten_ID" miteinander verbunden um eine Zuordnung zu bekommen.
In der Tbl_Abwesenheiten sollen nicht nur aktuelle sondern für den Klienten auch zukünfige Abwesenheiten erfasst werden (es können als mehrere Datensätze für ein und denselben Klienten erfasst sein).
Ich möchte nun, das beim Start der DB ein Abgleich aller Klienten aus der Tbl_Klienten Tabelle mit der Tbl_Abwesenheiten erfolgt. und mir je Klient eine Rückmeldung gegeben wird ob sich dieser gerade in Abwesenheit befindet.
Dies habe ich mir so vorgestellt, dass in der Tbl_Klienten eine Variable (Ja/Nein) Abwesenheit entsprechend gesetzt wird.
Kann mir da jemand bei dem entsprechenden Code helfen? Wie kann ich das realisieren?
Beste Grüße und vielen Dank
Outliener
Hi,
dies wäre eine Möglichkeit:
Select tbl_Klienten.*,
IIF(DCount("*","tbl_Abwesenheiten", "Klienten_ID=" & tbl_Klienten.Klienten_ID & " AND Date() BETWEEN Beginn AND Ende") > 0, True, False) As abwesend
From tbl_Klienten
oder so:
Select tbl_Klienten.*,
(Select Count(*) * -1 FROM tbl_Abwesenheiten WHERE tbl_Abwesenheiten.Klienten_ID = tbl_Klienten.Klienten_ID AND Date() BETWEEN tbl_Abwesenheiten.Beginn AND tbl_Abwesenheiten.Ende) As abwesend
From tbl_Klienten
vorausgesetzt, die Abwesenheiten überschneiden sich nicht.
Wenn ich den Code eingebe bekomme ich eine Fehlermedlung mit der Info "Erwartet Case" gleich bei der ersten Zeile und die "tbl_Klienten" ist markiert....
Was bedeutet das?
Das ist der SQL-Code von Abfragen und kein VBA-Code.
Eine der Abfragen könnte als Datenquelle für ein Formular eingesetzt werden.
Vielen herzlichen Dank!
Es funktioniert.