Hallo, ich habe mal eine allgemeine Frage.
Ich möchte einen Einsatzplaner (Dienstpläne) erstellen und habe mir eine Menge angesehen, die aber alle meine Vorstellungen nicht erfüllen. Die Mitarbeiter arbeiten schon lange mit Word-Dateien, die für die jeweils kommende Woche in einer neuen Kopie vorbereitet werden. Außerdem gibt es verschiedene Abteilungen, die ihre jeweils eigenen Word-Dateien haben. Das soll jetzt vereinheitlicht und verbessert werden.
Gegeben sind 2 Tabellen, eine mit den [MA] und eine für die Kalenderwoche [KW00] als Vorlage.
Frage:
Ist es beispielsweise sinnvoll bzw. möglich, in der DB für jede kommende Woche automatisch eine eigene Tabelle für die jeweilige KW## nach der Vorlage KW00 erzeugen zu lassen?
Oder ist es möglich, eine Tabelle anzulegen, die jede Kalenderwoche als einen Datensatz enthält und als "neuer Datensatz" automatisch eine neue Tabelle für die kommende Kalenderwoche anlegt? Wohlgemerkt es gibt ja auch noch N Mitarbeiter.
Was würdet Ihr empfehlen? Wie sollte denn die Struktur aussehen?
Carl
Hallo Carl,
die Lösung "für jede KW eine Tabelle erzeugen zu lassen" ist schlichtweg ... - ok sagen wir einfach - keine Lösung, noch nicht mal ne schlechte.
Die Lösung kann neben der Mitarbeitertabelle nur eine sogenannte Zuordnungstabelle sein.
PK = MA + KW
oder vielleicht noch besser
PK = MA + EinsatzTag(=Datum)
aus dem Datum lässt sich dann sehr leicht (zur Anzeige oder Auswertung) die Kalenderwoche ermitteln.
Gruß Dieter
Hallo,
wie gesagt, ist eine Tabelle für jede KW eine ganz, ganz schlechte Idee.
Und eine Vorlage braucht es erst recht nicht.
Was wird dann in der KW Tabelle gespeichert, bzw. soll gespeichert werden ?
Ist da jeder Tage mit Datum erfasst ?
Zitat von: dedidado am Mai 02, 2017, 19:08:29
Hallo Carl,
die Lösung "für jede KW eine Tabelle erzeugen zu lassen" ist schlichtweg ... - ok sagen wir einfach - keine Lösung, noch nicht mal ne schlechte.
Ich hatte sowas schon vermutet, daher die Frage. OK, also eine Zuordnungstabelle ... mal überlegen...
Hallo,
ob hier wirklich eine Zuordnungstabelle notwendig ist, kann man noch nicht erkennen.
Erkläre erst mal was in dem Einsatzplan erfasst werden soll. Hatte ich in #2 auch schon gefragt.
Sind die Mitarbeiter den Abteilungen zugeordnet, wenn ja wie ?
Zitat von: MzKlMu am Mai 02, 2017, 19:11:56
Was wird dann in der KW Tabelle gespeichert, bzw. soll gespeichert werden ?
Ist da jeder Tage mit Datum erfasst ?
In der KW-Tabelle sollen alle Informationen der 5 Arbeitstage pro MA niedergelegt werden.
Felder:
* pro Tag 2 Textfelder
* pro Tag 1 Memofeld
* pro Tag 21 Ja/Nein-Felder für Termine, an denen der MA teilnehmen kann und die über eine Abfrage ausgelesen werden können um anzuzeigen, wer zu diesem Termin erwartet wird.
Die Beschreibung der Termine selbst sind in einer weiteren Tabelle abgelegt, da sie über das ganze Jahr hinweg gleich bleiben.
Das sind 120 Felder bislang.
Zitat von: MzKlMu am Mai 02, 2017, 19:34:21
Sind die Mitarbeiter den Abteilungen zugeordnet, wenn ja wie ?
Die MA sind den Abteilungen nicht eineindeutig zugeordnet. Es gibt MA, die mehreren Abteilungen angehören. Außerdem ändert sich die Abteilung ab und zu mal, weil es Projektarbeit ist und wenn das Projekt ausläuft kommt der MA in eine andere Abteilung usw.. Ich löse das mit einer [tblMAZuordnung], die dann über ein Listenfeld die jeweilige Anzeige steuert, das funktioniert problemlos.
Im Terminplaner sollen die Termine angezeigt werden, die der MA hat (Besprechungen, Teamtreffen usw..) und es soll ein großes Memofeld angezeigt werden, in das hinein er Vermerke schreibt, die alle anderen sehen können sollen.
Die Tabelle KW und ei Formular funktioniert problemlos, allerdings nur in einer KW. Ich möchte sozusagen eine neue "Dimension" hinzufügen.
Danke für deine Antwort.
Hallo,
Zitatpro Tag 21 Ja/Nein-Felder für Termine, an denen der MA teilnehmen kann und die über eine Abfrage ausgelesen werden können um anzuzeigen, wer zu diesem Termin erwartet wird.
Auch das kannst Du gleich wieder vergessen. Ja/Nein Felder in dieser Art sind für eine Datenbank völlig unbrauchbar.
Die Termine sind als Datensätze zu erfassen und nicht in 21 Ja/Nein Feldern.
Hier wird dann doch die angedachte Zuordnungstabelle benötigt. Mit nur 4 Feldern (Primärschlüssel, Datum, Fremdschlüssel zum MA und FS zum Termin). Nimmt ein Mitarbeiter an 10 Terminen teil, so entstehen in der Tabelle 10 Datensätze.
Auch 120 Felder in einer Tabelle lassen schlimmes ahnen. Was sind das alles für Felder ?
ZitatIch möchte sozusagen eine neue "Dimension" hinzufügen.
Datenbanktabellen sind so anzulegen, dass eine Tabelle durch neue Daten immer nach unten zunimmt (Datensätze werden mehr), niemals zur Seite und Anwachsen zur Seite bedeutet weitere Feldnamen und das darf in einer Datenbank nicht sein.
Ich fürchte, da musst Du noch mal neu anfangen. Gerade in einer Mehrbenutzerumgebung ist das Datenmodell das A und O.
Hast Du an die notwendige Aufteilung der DB in Backend (nur die Tabellen) und Frontend (der Rest) gedacht. Dabei kommt nur das Backend auf den Server, das Frontend benötigt jeder User auf seinem PC.
Zu den Ja/Nein Feldern:
http://allenbrowne.com/casu-23.html
OK, ich zieh mir das mal in Ruhe rein.
Nur noch eine Frage: Sind backend und frontend zwei Dateien oder weist man Formularen und Tabellen zu, jeweils eines von beiden zu sein?
Übrigens gibt es keine PC, sondern nur workstations in Zigarettenschachtelgröße, mit denen die Bildschirme auf die Cloud zugreifen. Dort liegen die Dateien. Es gibt keine lokalen Festplatten oder sowas. Lediglich individuelle Desktops
Hallo,
das sind 2 Datenbanken. Im Frontend werden die Tabellen des Backends nur verknüpft.
Jeder Anwender benötigt eine Access Version, mindestens als Runtime.
Wie habt ihr das jetzt ?
Kann auf den Desktops jeweils für jeden Anwender Access installliert werden ?
Für eine sichere, zuverlässige Betriebsweis ist eine Aufteilung in Backend und je User ein Frontend unerlässlich, das hängt mit der Arbeitsweise von Access zusammen.
Wenn das nicht möglich ist, kannst Du Access nicht verwenden.
Hallo Mz
Jeder Anwender kann Access starten, also es ist niemand abgehängt. Ich denke das passt.
Hast Du irgendwo eine Beschreibung, wo die Grundlagen von Trennung von Back und Frontend so beschrieben werden, wie es für mich wahrscheinlich gut verständlich ist?
Hallo,
ZitatJeder Anwender kann Access starten,
das reicht nicht, jeder Anwender muss sein
eigenes Access starten können. Ein anderer Anwender muss dann wieder sein eigenes Access starten. Jeder Anwender benötigt demzufolge auch eine eigene Access Lizenz. Entweder als Vollversion oder als Runtime (gibt es kostenlos von MS).
Wenn das nicht gewährleistet ist, kommen sich die Anwender gegenseitig ins Gehege.
Siehe hierzu:
http://www.sql-insider.de/knowhow/hintergruende-zur-arbeitsweise-von-access.php
Wenn Du bei Google nach "Backend Frontend Access" suchst, findet Du einiges. Z.B. das hier:
http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=370
Danke!
Da muss ich erstmal nachfragen. Oder kann man es irgendworan erkennen?
Genau genommen muss ja nur ein Anwender editieren. Die anderen fragen nur ab.
Ich würde mich erstmal auf die Zuordnungstabelle konzentrieren. Ist es möglich, ein Frontend nachträglich zu erstellen, wenn die Tabellenstruktur korrekt ist? Oder muss man gleich von Anfang mit zwei DB arbeiten?
Hallo,
wo und wie oft bei Euch Access installiert ist musst Du erfragen, da ich keiner Erfahrung habe mit der bei Euch vorliegenden Konstellation kann ich dazu nichts sagen.
ZitatGenau genommen muss ja nur ein Anwender editieren. Die anderen fragen nur ab.
Das spielt keine Rolle, im Gegenteil das Abfragen dürfte auch das größere Problem sein, da da die meisten Daten bewegt werden.
Access läd zum Abfragen nicht immer alle Daten, sondern steuert das im Hintergrund in Teilen. Wenn es nur eine Version gibt, können die Daten der einzelnen Abfragen nicht mehr auseinander gehalten werden und die Datenbank kann korrupt werden was mit Datenverlust verbunden ist. Im 1.Link oben ist das genauer beschrieben.
Eine Datenbank kann problemlos auch nachträglich aufgeteilt werden. Access hat dazu auch einen Assistenten an Bord.
Hab nochmal eine Frage. Was ist denn der Unterschied zwischen der Verknüpfung mit Zuordnungstabellen und einer Schachtelung von Tabellen nach dem Schema:
tabelle1[ID1]-->tabelle2[ID2],[FSvon1] -->tabelle3[ID3],[FSvon2]
Anstelle einer Zuordnungstabelle für alle drei Tabellen. Habe ich da einen logischen Denkfehler?
Hallo,
das sind 2 ganz verschiedene Sachen.
Jede Art hat ihre Notwendigkeiten.
Land (1)=>(n) Stadt (1)=>(n) Stadtteil
Das sind 2 1:n Beziehungen in Reihe.
Ein Land hat mehrere Städte und eine Stadt hat mehrere Stadtteile
Wenn jetzt z.B. eine Artikel von verschieden Lieferanten geliefert wird, so ist eine Zuordnungstabelle notwendig. Das sind auch 2 1:n Beziehungen aber nicht in Reihenfolge sondern gegenläufig. Das ist eine sogenannte n:m Beziehung mit 2 1:n Beziehungen.
Artikel (1)=>(n) ArtikelLieferant (n)<=(1) Lieferant
Ein Artikel wird von mehreren Lieferanten geliefert und ein Lieferant liefert mehrere Artikel.
Beachte die Richtung der Pfeile.
ArtikelLieferant erhält einen FS zum Artikel und einen FS zu Lieferanten.
Die ArtikelLieferant Tabelle enthält also 2 Fremdschlüssel.
Eine solche Zuordnungstabelle kann auch noch weitere FS enthalten.
Zitat von: MzKlMu am Mai 08, 2017, 19:45:32
Artikel (1)=>(n) ArtikelLieferant (n)<=(1) Lieferant
Ein Artikel wird von mehreren Lieferanten geliefert und ein Lieferant liefert mehrere Artikel.
Beachte die Richtung der Pfeile.
ArtikelLieferant erhält einen FS zum Artikel und einen FS zu Lieferanten.
Die ArtikelLieferant Tabelle enthält also 2 Fremdschlüssel.
Eine solche Zuordnungstabelle kann auch noch weitere FS enthalten.
Ah ok. Danke.
Ich komme irgendwie logisch nicht klar. Momentan habe ich eine Tabelle, die MA (Felder wie name usw) und als Datensätze die MA selbst enthält. Eine andere Tabelle enthält die Felder der Kalenderwoche (für jeden Tag ein memo), wobei die Datensätze ebenfalls die Mitarbeiter sind.
Ich brauche aber eine Tabelle, wo die Datensätze die verschiedenen Kalenderwochen sind. Diese Tabelle soll für jeden MA separat laufen. Brauche ich da eine Zuordungstabelle? Danke.
Hallo,
Du hast das Prinzip Datenbanken noch nicht verstanden.
Du hast doch auch was geschrieben von Terminen
Und Projekten und Abteilungen, wo sind denn die Tabellen ?
Du brauchst auch keine Felder für die Kalenderwochen.
Die Arbeiten/Termine werden endlos mit einem Datumsfeld und einem Feld für die Aufgabe/Termin erfasst. In je einem Datensatz.
Die Wochendarstellung wird dann aus dieser Tabelle abgeleitet.
Stelle bitte mal zusammenhängend dar, was Du jetzt willst.