Access: Mitarbeiter- Einsätze zählen

Hagen_67

Captain
Registriert
Sep. 2009
Beiträge
3.933
Hallo zusammen

Gestartet hatte ich mit diesem Fred hier. Nachdem ich aber dort guter Weise darauf hingewiesen wurde, dass Access der bessere Weg ist, mache ich jetzt hier einen neuen Fred zu dem Thema auf.
(Und nachdem ich geschnallt hab, dass Access in Office 365 enthalten ist. :D )

Ganz kurz mein Anliegen:
Klinik mit 5 Stationen.
Pro Station ca. 20-25 Mitarbeiter (und nein, wir sind nicht so super besetzt, wir haben nur viele Kollegen in Teilzeit...)
Wenn die Mitarbeiter vertreten gehen (sog. "Joker") auf anderen Stationen, bekommen sie jeweils 1Punkt. Wenn ein Mitarbeiter 10 Punkte voll hat, bekommt er einen Tag Zusatz- Frei.
In einer Datenbank möchte ich also jeden Mitarbeiter anlegen und jeden Vertretungstag für jeden Mitarbeiter eintragen können.
Die Datenbank soll alle eingetragenen Vertretungstage bei jedem Mitarbeiter zusammenzählen.

Ich brauche also einmal eine Datenbank, in der alle Mitarbeiter geführt sind. Die habe ich in Access als eine Tabelle angelegt:
Nachname/ Vorname/ Station (also die Station auf der sie fest sind)

Jetzt weiß ich nicht, wie ich weiter machen soll. Wie kann ich jetzt für jeden Mitarbeiter eine Datenbank erstellen, die die Vertretungen speichert und zählt. Also Vertreten am 10.01.2024/ am 17.04.2024/ am 12.07.2024 und das macht zusammen dreimal vertreten.
Und das möchte ich bei jedem Mitarbeiter sehen können.

Ich hoffe, es ist verständlich, was ich will?!? :freak:
 
Da wir die Datei nicht haben, ein Ansatz aus der KI.
Sowas kann man "kaum" aus der kalten theoretisch niederschreiben, ohne die Datei zu haben.

  1. Datenbankstruktur anlegen:
    • Du hast bereits eine Tabelle „Mitarbeiter“ mit den Spalten: Nachname, Vorname, Station.
    • Erstelle eine zweite Tabelle namens „Vertretungen“ mit den Spalten: MitarbeiterID (als Fremdschlüssel zur „Mitarbeiter“-Tabelle), Datum (für den Vertretungstag) und Punktzahl (Standardwert 1).
  2. Beziehungen einrichten:
    • Stelle eine Beziehung zwischen der „Mitarbeiter“-Tabelle und der „Vertretungen“-Tabelle her, indem du die MitarbeiterID verbindest.
  3. Eingabeformulare erstellen:
    • Erstelle ein Eingabeformular für die „Vertretungen“-Tabelle, um Vertretungstage einfach eintragen zu können. Füge ein Dropdown-Feld hinzu, um den Mitarbeiter auszuwählen.
  4. Abfragen zur Zählung:
    • Erstelle eine Abfrage, um die Anzahl der Vertretungen pro Mitarbeiter zu zählen. Du kannst die Funktion „Gruppieren nach“ verwenden, um die Punkte zu summieren.
  5. Bericht erstellen:
    • Erstelle einen Bericht, der die Anzahl der Vertretungstage für jeden Mitarbeiter anzeigt, um eine Übersicht über die Zusatzfreitage zu erhalten.
 
  • Gefällt mir
Reaktionen: Simonte
Jeder MA muss noch eine ID haben, einen eindeutigen Schlüssel
Dann kannst Du eine weitere Tabelle machen mit
ID; Vertretungstag

Zum Report verknüpft Du die Tabellen 1:n
Zu jeder ID kann es mehrere Tage geben
Dann musst Du nur noch die Anzahl der Vertretungstage zu jeder ID zählen und zu dieser ID dann die Summe und den Namen ausgeben

Vermutlich wird der nächste Schritt sein, daß festgehalten werden muss welche Vertretungstage schon abgegolten wurden.
Dann erweitert Du die 2. Tabelle noch mit einer Spalte "abgegolten" und zählst dann für den Report nur die Vertretungstage, wo abgegolten = false ist.

Die meiste Arbeit ist das Basteln der Benutzeroberfläche

Krass, die KI hatte die gleiche Idee
 
  • Gefällt mir
Reaktionen: Der Lord
Moin moin,

ich würde drei Datenbanken/Tabellen machen wobei dir dritte im Grunde ein report ist oder wie access das nennt

1. Personal
2. Arbeitsplan Datum, personalID Vertretung ja nein
3. Bonuskonto personalID, Summe(Vertretung ja)

Aber tatsächlich würde ich das in Excel machen wenn da Vorkenntnisse bestehen! 100 MA lässt sich gut händeln
Wenn man Bock auf access hat ist es dort aber ebenfalls easy machbar und die Formulare machen es ein bisschen schöner
 
Ihr seid super 👍
Bin grad unterwegs,cwerd es daheim gleich probieren.
 
Der_Dicke82 schrieb:
Aber tatsächlich würde ich das in Excel
Nein! Bloß nicht! Excel ist eine Tabellenkalkulation, keine Datenbank!

Solche Lösungen bedeuten auf Dauer Verselbstständigung, Feature creep und hohe technische Schulden. In 5 Jahren hat sich die Tabelle so weiterentwickelt (mit VBA und weiß-der-Geier), dass sie nur noch von einer einzigen Person verstanden wird und zig andere Tabellen usw. diese Tabelle auswerten.
Das muss man unbedingt vermeiden, insbesondere wenn Problem und Anforderungen auftreten, die eine Person alleine nicht beherrschen kann (z. B. Compliance und DSGVO). Daher ist es wichtig, die richtige Software zum Problem einzusetzen: Eine Datenbank (für Selbstbauer) oder Personaleinsatzsoftware (für Nicht-Selbstbauer).
 
Ich würde es auf keinen Fall in Excel umsetzen. Dafür ist es nicht gemacht, außer man hat Erfahrung mit VBA, was wohl nicht der Fall ist.
Selbst dann wird es mit der Zeit immer Träger, je länger und größer die Datei wird.

Wenn ich mich nicht irre, hast du gar keine Erfahrung mit Access. Vielleicht helfe ich dir damit, dass ich dir bei der Selbsthilfe helfe.

  • Investiere 1-2 Stunden in YouTube Tutorials für die absoluten Basics, dafür eignet es sich immer sehr gut
  • Investiere anschließend ~50 € auf udemy, um ein "Expert" Niveau zu erlangen. Das lohnt sich!
  • anschließend ist das Ganze ein Kinderspiel und du hast nebenbei ein Zertifikat

Die Kosten kannst du vielleicht durch deinen Arbeitgeber zurückholen. Rechne den derzeitigen Aufwand in Stunden und Euro vor und wie viel du einsparen kannst. Wahrscheinlich amortisiert es sich schon nach 2-3 Monaten.

Auf lange Sicht kannst du einen Europäischen Conputerpass machen und diesen vielleicht für eine Gehaltserhöhung nutzen.
So etwas lässt sich durch BAföG fördern!

Ich war selbst an so einem Punkt.
 
...

Aber tatsächlich würde ich das in Excel machen wenn da Vorkenntnisse bestehen! 100 MA lässt sich gut händeln...
Hmm, das haben andere anders gesehen. Siehe meinen 1.Post. Der Link zu meinem anderen Fred
 
  • Gefällt mir
Reaktionen: Krik
@Hagen_67 Jo, ich hatte extra in den alten thread geschaut!

Trotzdem finde ich es sehr leicht in einer Tabellenkalkulation zu lösen, ohne VBA oder ähnliches. Einzig die Eingabe wäre nicht so komfortabel.
 
@Hagen_67
Ich hab es am eigenen Leib erlebt, wie sich so was entwickelt. Ich habe damals um die 400 Mitarbeiter in diversen Excel-Tabellen verwaltet und durch langsam steigende Anforderungen wurde der Kram nicht mehr beherrschbar.
Die Tabellen waren abhängig voneinander, konnten also nicht einfach mal ausgetauscht werden und ein Fehler führte zum Ausfall aller abhängigen Tabellen. Änderungen an einer Datei zogen Änderungen an anderen mit sich. Mit der Zeit stoß man auf merkwürdige Fehler und Eigenheiten in Excel und VBA, die man mit noch mehr Aufwand umschifften musste. Es war ein endloser Kreislauf.

Irgendwann wurde dann eine Tabelle gebraucht, die ungefähr vorhersagt, an welchen Tagen welcher Mitarbeiter für welche Tätigkeiten zur Verfügung steht (ganz ähnlich zu deiner Anforderung). Darin mussten auch tatsächlicher und bestätigter Urlaub, die durchschnittliche Urlaubsquote, Feiertag, Krankenquote, langfristige Ausfälle, Wechsel zwischen den Teams, Schulungen, saisonale Einflüsse (z. B. Schulferien) usw. berücksichtigt werden. Und natürlich musste man es auch schönen können, da nicht nur die Kollegen sondern auch Externe das Ergebnis (anonymisiert) zu sehen bekamen. Das Ergebnis war eine so ca. 60 000 Zeilen große CSV und die von einem Makro geschrieben werden musste, weil Microsoft eine andere Definition von CSV als der Rest der Welt hat.

Ich hab das zuerst ohne Makro (außer die CSV-Geschichte) umgesetzt. Es war der Wahnsinn. Man musste an so vielen Stellen aufpassen, nichts verkehrt zu machen, dass kaum eine Woche ohne Fehler verging. Die Tabelle rödelte übrigens bei jedem Input elendig lange.
Irgendwann hatte ich keinen Bock mehr darauf.

Also hab ich die Kernlogik in VBA gegossen. Das senkte die Fehlerquote dramatisch und die Tabelle rödelte nur noch einmal 20 Minuten, wenn man das Makro angestoßen hat.
Das war aber immer noch scheiße zu bedienen. Sorry, mir fällt dafür kein anderes Wort ein.

Ich hab dann den Anker geworfen und alles in C# und MariaDB gekippt. Die Logik lief jetzt teils auf der Datenbank und teils im C#-Programm (für einfache Datenverwaltung und Reportgenerierung). Statt 20 Minuten Laufzeit, waren es jetzt nur <5 Sekunden. Die Fehlerquote fiel auf nahezu 0, da mein Programm die Eingaben auf Plausibilität geprüft hat, bevor sie in der Datenbank gelandet sind. Die anderen Tabellen wurden auf die Datenbank umgestellt, sodass die Abhängigkeiten zu anderen Dateien verschwanden. Auf einmal wurde alles wieder handhabbar.
 
@Krik es steht und fällt alles mit dem verantwortlichen benutzen von Möglichkeiten.

Dein Szenario finde ich nachvollziehbar, allerdings geht es hier ums simple zählen der Vertretungtage, jedenfalls soweit ich es verstanden habe.
Es soll kein Personalverwaltungssystem aufgebaut werden. Falls dies der Fall ist müsste der TE dies mitteilen.

Es wird hier nur gezählt und das wars, warum kann das nicht in einer Tabellenkalkulation gemacht werden? Die ist doch zum zählen gemacht.

Hier wird meiner Meinung nach mit Kanonen auf Spatzen geschossen nur weil man davon Ausgeht das die vom TE gestellte Aufgabe nicht das Ende der Fahnenstange ist.

Ich bin der Meinung das dann die Aufgabenstellung eine ganz andere sein müsste. Ich fange ja auch nicht an hier Access in Frage zu stellen weil vielleicht bald die Lizenz nicht mehr verlängert wird und man auf libreoffice umsteigen könnte und da wird man zwar etwas mit einer Exceltabelle, aber nicht mit einer access Datenbank

Ich lese hier und im alten thread eigentlich nur raus, das alle vor zukünftigen Vergewaltigungen der exceltabelle Angst haben, aber mit der jetzigen Aufgabenstellung eigentlich gar kein Problem besteht.
 
Der_Dicke82 schrieb:
Hier wird meiner Meinung nach mit Kanonen auf Spatzen geschossen nur weil man davon Ausgeht das die vom TE gestellte Aufgabe nicht das Ende der Fahnenstange ist.
Weil das nie das Ende der Fahnenstange ist! Solche Daten wecken Begehrlichkeiten bei Kollegen, die sich dann gerne die eine oder andere Info da rausziehen oder Erweiterungen wünschen. Und wenn der Kollege gleichzeitig dein Vorgesetzter ist, dann muss du das umsetzen, außer es geht technisch nicht oder ist zu teuer.

Glaub mir, sobald diese Tabelle steht, kommt der Boss und will daneben sehen, welche freien Tage genommen wurden und welche noch ausstehen. Pro Mitarbeiter. Mit Wochen-, Monats- und Jahresübersicht. Das wird kommen.

Der_Dicke82 schrieb:
Es wird hier nur gezählt und das wars, warum kann das nicht in einer Tabellenkalkulation gemacht werden? Die ist doch zum zählen gemacht.
Eine Tabellenkalkulation ist zum Kalkulieren gedacht. Da schreibt man in Zelle B2 rein, wie oft der Mitarbeiter xy den Sonderdienst geschoben hat, z. B. "30" und in C2 wie viele freie Tage der MA dafür genommen hat, z. B. "5". Man arbeitet also mit aggregierten Informationen.
In der Datenbank jedoch steht jeder einzelne der 30 Dienste und wann genau der freie Tag war. Hier stehen die "Rohdaten" drin, die für die Aggregation in einer Tabellenkalkulation benötigt werden.
Unterschied verstanden?
 
Also,
Spalten = Mitarbeiter
Zeilen = Datum/Tage
Zelle bei Vertretung = 1 Zelle keine Vertretung = 0
Summe der Spalte eines MA = Vertretungstage

Kalkulation oder Datenbank?

Was du beschreibst ist doch schon mehr als der TE eigentlich möchte. Da sehe ich schon gleich warum kleine Probleme zu megaprojekten mutieren
 
Der_Dicke82 schrieb:
Kalkulation oder Datenbank?
Mischung aus beidem.
Außerdem fehlen die sonstigen Arbeitszeiten, da man sonst das Verhältnis Springertage/Arbeitstage nicht korrekt berechnen kann.

Der_Dicke82 schrieb:
Was du beschreibst ist doch schon mehr als der TE eigentlich möchte. Da sehe ich schon gleich warum kleine Probleme zu megaprojekten mutieren
Wie ich schon schrieb, ist es unwahrscheinlich, dass es bei der Tabelle bleibt. Habe ich selber x-Mal gesehen. Und Anderen geht es auch nicht anders.

Warte mal ab, wann das Personalbüro vor der Tür steht und fragt, wie sie die freien Tage am besten automatisiert aus der Tabelle in DATEV einfügen können. Es muss sonst jemand jeden Monat für einen halben Tag abgestellt werden, um die Tabelle händisch abzutippen. Das schaut sich ein Chef nicht lange an und fängt dann an nach Lösungen zu suchen. Bei einer Zollkontrolle kann es zu Problemen kommen, wenn die Arbeitseinsätze und freien Tage nicht alle richtig dokumentiert wurden. Und die Mitarbeiter springen dir an den Hals, wenn du ihnen warum auch immer nur einen freien Tag nicht gibst.

Solche Daten sind nie "kleine Probleme".
 
Zuletzt bearbeitet:
Also es wird eine Strichliste geführt. Und nun hat der TE die Idee, diese am Computer zu erfassen und die Striche automatisch zusammenzählen zu lassen. Da hätte ich als Anwender schon ein Problem, mich von der Pinnwand zu entfernen und den Computer einzuschalten. Wenn schon Computer, würde vielleicht sogar Word reichen, wo man dann eine übersichtliche Erfassungstabelle baut.
Vor diesem Hintergrund ist die Excel Lösung schon eine ambitionierte Herangehensweise, die mindestens voraussetzt, dass da noch irgendjemand ist, der auch Excel kennt und nutzen will. Auf einer Pflegestation keine Selbstverständlichkeit.
Eine Datenbanklösung? Etwas Programmieren? IT-Abteilung? Würde für mich als Mitarbeiter nur in Frage kommen, wenn ich mich denen irgendwie verpflichtet fühle und sicher bin, dass die gerade unterversorgt sind. Ansonsten mache ich mich mit so einem Funktionsansinnen eher lächerlich. Wie gesagt, aus Sicht des TE, nicht der IT-Abteilung, die könnten andere Ambitionen haben (was bei Weitem nicht die bessere Alternative wäre).
Man kann natürlich die freien Valenzen der Arbeitszeit nutzen, um sich für einen IT-Beruf zu qualifizieren, indem man sich selbst in Datenbanken oder Programmierung einarbeitet.
Als Betroffener freue ich mich über jede Minute, die ein Pfleger für meine Verwandten dort Zeit hat.

Im Zustand der branchenüblichen Unterversorgung mit IT-Personal kommt also am ehesten etwas in Frage, was man später von heute auf morgen wieder auf Papier umstellen kann. Das wäre bei Access nicht gegeben, einfach weil das ein tieferes Verständnis von Datenstrukturen voraussetzt.
 
halwe schrieb:
Im Zustand der branchenüblichen Unterversorgung mit IT-Personal kommt also am ehesten etwas in Frage, was man später von heute auf morgen wieder auf Papier umstellen kann. Das wäre bei Access nicht gegeben, einfach weil das ein tieferes Verständnis von Datenstrukturen voraussetzt.
Das gehe ich nicht konform. Wenn die Kompetenz nicht da ist, dann muss man sie einkaufen, z. B. über eine Personalplanungssoftware. Da ist das alles fertig und anwenderfreundlich.
Bei einem 15-Mann-Betrieb geht Zettelwirtschaft noch. Bei 100 Leuten geht das heutzutage nicht mehr. Man muss automatisieren, denn auch die Personalabteilungen sind personell nicht besser versorgt als die IT'ler.
 
Ich würde mitgehen, wenn es eine etwas komplexere Aufgabenstellung wäre, die vor allem für die Personalabrechnung zentrale Relevanz hätte. Aber ich verstehe es so, dass es darum geht, die Flexibilität der Mitarbeiter im Jokereinsatz am Ende des Monats irgendwie zu honorieren. Durchaus wichtig, aber nicht komplex.
Würde in der ASB-Station, wo ich regelmäßig verkehre (und auch das Personal gut kenne, inkl. der "Joker") ein solcher Bedarf entstehen, würde ich denen das gratis in Excel oder Word bauen.
 
Jo, komplex ist es (noch) nicht, aber die Menge erschlägt einen früher oder später. Bei mir gab es 2 (3) Personaler für 400 Mitarbeiter. Die haben sich kurz vor Ende des Monats immer mal zeitweilig im Büro eingeschlossen, um in Ruhe die Gehälter usw. auszurechnen und DATEV zu füttern. Das ist im normalen Alltagstrubel nicht drin gewesen.
Wäre ich da mit Strichlisten auf Papier angekommen, hätten die mich gekillt. :skull_alt:
 
@All: Erstmal ganz herzlichen Dank an alle, die sich jetzt hier in irgendeiner Form einbringen. Ich bin auch schon wieder ein Stück weiter gekommen. Ich "pröppel" hier grad ein bisserl rum und "spiele" damit, um das Ganze zu verstehen und umzusetzen und umgekehrt. Und es macht mir echt Spaß. Soweit, so gut. :daumen:

Aber ich habe eine Bitte. Ist es möglich, dass wir uns hier nur über das "Wie" und nicht über das "Warum" austauschen.
Denn grundlegend kann ich das Ganze natürlich auch händisch machen. Ich kann auch jedem Mitarbeiter eine Art "Bonus- Pass" in die Hand drücken. Und jedes Mal, wenn er als "Joker" vertreten geht, bekommt er eine Unterschrift mit Stempel in den Pass gedrückt. Wenn der Pass voll ist mit 10 Stempeln reicht er ihn in der Personalabteilung ein und die trägt einen weiteren Urlaubstag bei ihm ein. Aber ich möchte das nun mal als "Tabelle" oder "Datenbank" anlegen.
Und daher lasst uns doch bitte weiter beim Austausch um das "Wie" bleiben.
Besten Dank dafür :schluck:
 
Zurück
Oben