Ist mein Ansatz richtig?

Es geht um Base, LO 5.1.6.2, und zwar um eine besondere Art von Dienstplan.

Problem: es gibt Orte, Daten, Mitarbeiter. Meine Idee war es, von den knapp zwanzig Orten und etwa ebenso viel Mitarbeitern jeweils eine Tabelle zu machen. (existiert bereits)

Eine weitere Tabelle gibt es für die Daten; es dreht sich nur um gewisse Tage; diese werden über ein Formular eingegeben. (Also um Moment, in dem der Chef den Plan macht, würde er erst mal kurz auf dieses Formular gehen und die nächsten - sage wir mal - zehn lose im Kalender verteilten Tage eingeben).

Im Hauptformular würde es links eine Liste mit eben diesen Daten geben, und nun sollte es so sein, daß man einen Mitarbeiter (ich denke aus einem Pull-Down-Menu) auswählt, und ihm irgendwie die Orte zuweist, an die er an diesem Tag sein muß (maximal drei Orte, es kann auch gar keiner sein).

Rechts im Formular würde es eine irgendwie geartete Auflistung aller Orte geben, und der Chef würde beim Planen laufend sehen, welcher Ort noch “leer ausgeht”. (Es könnte auch mehr als ein Mitarbeiter an einem Ort sein).


Meine Frage an Euch:

Ist es realisierbar, daß der gesamte Dienstplan (der über das Hauptformular geschrieben wird) in einer einzigen Tabelle “verewigt” ist? Diese Tabelle hat NUR Integer-Spalten, die jeweils auf etwas anderes verweisen, nämlich

EintragID (Auto-Wert), Tag ('Datum), Mitarbeiter, Ort.


Ich komme einfach nicht zurecht! Was muß im Hauptformular ablaufen, um das Beschriebene zu erreichen.

Oder ist der Ansatz falsch? Sollte vielleicht jeder Mitarbeiter eine eigene Tabelle erhalten?


Verzeiht, wenn ich Euch eine “komplizierte” Geschichte dargestellt habe, anstatt eine kurze konkrete Frage zu stellen. Es dreht sich ganz einfach um Schwierigkeiten eine Anfängers in LO Base (ansonsten habe ich schon programmiert).

Gruß, Anselmo

Ich würde den Ort aus der Tabelle raus nehmen oder gleich 3 Orte dort als Spalten hinterlegen. Der Tag wird doch wohl tatsächlich als Datum gespeichert - nicht Integer.

Die Mitarbeiter sowie die Orte wählst Du über Listenfelder aus. Listenfelder geben an die darunter liegende Tabelle den Primärschlüssel von “Mitarbeiter” und den Primärschlüssel von “Ort” weiter.

Hast Du die Orte in einem Unterformular, so setzt sich die Tabelle des Unterformulars aus der EintragID und der OrtID zusammen. Beide zusammen bilden den Primärschlüssel. Dadurch ist es schon einmal nicht möglich, dass einem Datensatz der Tabelle des Hauptformulars gleiche Orte zugeordnet werden können.

Hast Du die Orte als Ort1, Ort2 und Ort3 im Hauptformular, so musst Du hier über SQL mit CHECK-Bedingungen bei der Tabellenerstellung sicher stellen, dass nicht gleiche Orte doppelt vorkommen.

Auf keinen Fall solltest Du jedem Mitarbeiter eine separate Tabelle zuweisen. Damit kommst Du sofort in Schwierigkeiten, wenn Du eine Übersicht über alle Mitarbeiter z.B. an einem bestimmten Tag erstellen willst.

Vielen Dank für die sehr wertvolle Antwort.

Den Tag hatte ich bisher nicht als Datum gespeichert, sondern ebenfalls als Integer; denn es gibt eine weitere Tabelle, die alle Tage enthält, die von Bedeutung sind (wie erwähnt, sind das lange nicht alle Tage). Ein eigenes Formular sollte dazu dienen, die Daten einzugeben (in diese Tabelle). Sollte ich das besser ändern?

Sollte ich dann die Idee verwerfen, daß „vor dem Planen“ erst mal die Daten irgendwo abgespeichert werden? Der Vorteil, den ich sehe, wäre, daß der Chef dann während des Planens jeweils einen konkreten Tag auswählen könnte, und an ihm „herum“-arbeitet, er kann die Tage visualisieren, die er will, …
Würde man eine solche Tabelle (mit den Tagen) nicht benützen, wo würde ich dann vordefinierte Tage abspeichern; würde man sie aber benützen, so wäre wohl der Ansatz mit dem Datum als Integer in der Haupttabelle nicht zu vermeiden.

Sehe ich da irgendwas noch nicht ganz richtig?

Das bedeutet also, dass Du noch eine Tabelle hast, in der nur die Datumswerte eingegeben sind? Bei Datumswerten würde es auch reichen, diese direkt zu Primärschlüsseln zu erklären. Dann kann das Datum im Hauptformular liegen, die Eingabe der Mitarbeiter (und gegebenenfalls der 3 Orte) im Unterformular sowie (falls die 3 Orte separat gespeichert werden, die wieder in einem UnterUnterformular.

Ich würde mir an Deiner Stelle einmal das Handbuch herunterladen und dort das Anfangsbeispiel durchgehen (Einführung Base > Testbeispiel). Da ist zu sehen, wie so etwas mit Unterformularen läuft.

Vielen Dank! Diese Tips sind äußerst wertvoll. Ganz zu Beginn meiner Versuche hatte ich das Datum zum Primärschlüssel gemacht, war dann aber wieder davon abgekommen. Nun werde ich es doch wieder so machen.

Mit Handbuch und Testbeispielen (u.a. youtube) habe ich mich die vergangenen Tage viel beschäftigt, und verstehe nun (wenigstens für meine bescheidenen Begriffe) bedeutend mehr als noch vor einer Woche. Nochmals herzlichen Dank!!