 |
Raumbelegung mit Access planen
Ich möchte mit MS-Access die Raumbelegung in unserer Firma planen. Dabei werden der Kunde und der Raum mit Datum vorgemerkt. Wie kann ich auch noch feststellen, wann der Raum frei ist?
Wenn Sie in einer Access-Tabelle namens Belegung die Raumnummer und das Datum der Belegung festhalten, können Sie zwar sehr leicht herausfinden, wann ein Raum belegt ist. Die Frage, wann ein bestimmter Raum frei ist, ist allerdings erheblich schwerer zu beantworten. Um den Programmieraufwand zu reduzieren, definieren Sie eine neue Tabelle mit zwei Feldern: PlanID mit dem Datentyp Autowert und Tag mit dem Datentyp Datum. Speichern Sie diese Tabelle unter dem Namen BelegungPlan. Legen Sie in der Tabelle 365 Datensätze vom 1. Januar bis zum 31. Dezember an. Diese Tabelle funktioniert wie ein Kalender und hilft später bei der Ermittlung freier Räume. Wie im Kalender bekommt jeder Tag im Feld PlanID eine Nummer. Die Reservierung eines Raums geschieht später in einer zweiten Tabelle durch die Zuordnung der Raumnummer zu einem Datum. Definieren Sie nun die zweite Tabelle für die Raumbelegung. Verwenden Sie in dieser Tabelle das Feld RaumNr vom Typ Integer, und das Feld PlanID legen Sie als Nachschlagefeld an. Die PlanID in der Tabelle Belegung soll die Werte aus der Tabelle BelegungPlan übernehmen. Dazu wählen Sie in der Entwurfsansicht der Tabelle Belegung für das Feld PlanID den Datentyp Nachschlage-Assistent aus. Beginnen Sie mit der Option Das Nachschlagefeld soll Werte einer Tabelle oder Abfrage entnehmen und wählen die Tabelle BelegungPlan sowie das Feld PlanID aus. Das Nachschlagefeld stellt eine Verknüpfung zwischen den Tabellen Belegung und BelegungPlan her. Wenn Sie anschließend einen Datensatz in der Tabelle Belegung eingeben, ordnen Sie einer Raumnummer ein Datum zu, um den Raum an diesem Tag zu reservieren. Um umgekehrt festzustellen, an welchen Tagen ein Raum frei ist, vergleichen Sie die Einträge in der Tabelle Belegung mit denen in der Tabelle BelegungPlan. Ein Raum ist an den Tagen frei, die zwar in der Tabelle BelegungPlan, aber nicht in der Tabelle Belegung auftreten. Deshalb können Sie die freien Tage mit dem folgenden SQL-Befehl ermitteln:
SELECT [BelegungPlan].[Tag] FROM [BelegungPlan] WHERE NOT EXISTS (SELECT [Belegung].[PlanID] FROM [Belegung] WHERE [Belegung].[PlanID]= [BelegungPlan].[PlanID] AND Belegung].[RaumID]=)
|
 |