Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Schulungsverwaltungsdatenbank Denkblockade

Begonnen von henne222, Februar 02, 2018, 11:17:44

⏪ vorheriges - nächstes ⏩

Beaker s.a.

Hallo,
Zitatich komme immer noch nicht drauf wie ich dann per Kombifeld im Formular einem Anforderungsprofil mehrere Schulungen zuordnen kann.
Wenn ich es auf die Schnelle richtig gesehen/verstanden habe, dann
geht das mit einem UFo. Die Datensatzherkunft muss die FK-Felder der
tbl_ApSchulungen enthalten. Das Kombi (auf dem UFo) wird dann mit
einer Abfrage auf die tbl_Schulung befüllt (PK = 1. Spalte) und an das
Feld APS_SchulungID gebunden.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,

so ist es..

Nach Änderung der Beziehungen ist tbl_Anforderungsprofile eine Haupttabelle (-->HFO)    und tb_APSchulungen eine dazugehörende Detail-(n-) Tabelle und demzufolge mit einem UFO zu visualisieren.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

henne222

#17
Hi,

so hatte ich es ja erst gemacht aber ich fand das nicht sehr bedienerfreundlich. Erstens kann ich dem Mitarbeiter immer wieder die selbe Schulung zuordnen, wenn ich im Hauptformular zwichen den Datensätzen wechsle wird mir dann immer nur der letzte Datensatz angezeigt obwohl ja mehr zugeordnet sind. Bei vielen Schulungen und vielen Anforderungsprofilen wird das sehr unübersichtlich. Schlimmer wird das ganze ja dann noch beim zuordnen des Anforderungsprofils pro Mitarbeiter.
Dann muss ja für jeden Mitarbeiter pro Schulung ein Datensatz geschrieben werden, damit das Feld Status auch gefüllt werden kann.

Für die Schulungszuordnung habe ich es jetzt so gelöst: (sieh Bild im Anhang)

der Wert (oder auch Mehrfachauswahl) der in der Linken Liste gewählt wird, wird bei klicken auf den Pfeil in die rechte Liste geschoben. Im Hintergrund werden per VBA die benötigten Datensätze in die tbl_ApSchulungen geschrieben oder ebend über löschen aus der Tabelle gelöscht. Das haut erst mal bis auf ein paar Feinheiten hin.

aber nun kommt es, um jetzt den Status der Schulungen pro Mitarbeiter auszuwerten, reicht es ja nicht das Feld MAPPS_Status mit zu ziehen. Es muss ja eigentlich ein Datensatz pro Mitarbeiter, pro Anforderungsprofil, pro Schulung geschrieben werden um es auswerten zu können. BSP: Mitarbeiter A ist Anforderungsprofil 1 und 2 zugewiesen diesen Anforderungsprofilen sind jeweils 3 Schulungen zugewiesen. Das heißt ich brauche für diesen einen Mitarbeiter 6 Datensätze:
Mitarbeiter A, AP1, Schulung 1, Status
Mitarbeiter A, AP1, Schulung 2, Status
Mitarbeiter A, AP1, Schulung 3, Status
Mitarbeiter A, AP2, Schulung 1, Status
Mitarbeiter A, AP2, Schulung 2, Status
Mitarbeiter A, AP2, Schulung 3, Status

Das heißt doch, dass diese Datensätze noch erstellt werden müssen. Die krieg ich Stand jetzt zwar abgerufen. Kann aber den Staus dann nicht durchschreiben. Da es sich ja am Ende immer auf Schulung 1,2,3 bezieht und dann bei jedem Mitarbeiter der z.B. Schulung 1 hat der Status geändert werden würde.
Oder ich stehe schon wieder neben mir  ;D :D ;)

Elegant wäre... beim Mitarbeiter das AP auswählen und dann werden Pro Mitarbeiter die Datensätze erstellt, z.B. in eine Tabelle Schulung pro Mitarbeiter, rückgänging muss das natürlich genauso funktionieren.

Wenn ich anfange zu nerven, sagt Bescheid... ;)

Beaker s.a.

Hallo,
Könntest du deine DB noch mal hier reinstellen?
Ich habe nur die letzte von Franz gepostete DB vor mir und glaube, dass
sich da noch was geändert hat, da ich nicht alles, was du beschreibst dort
wiedergefunden habe.
gruss ekkehard


Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

henne222

Ja klar, wollte ich eigentlich im letzten Post schon tun.
Hab jetzt 2 Versionen, einmal die wie von euch vorgeschlagen mit Unterformular und einmal mit meiner Liste.

Beaker s.a.

Hallo,
Ich schau es mir mal an, kann aber morgen werden.
Das mit der Liste ist schon o.k., das mache ich bei solchen Zuordnungen
auch oft so. Bei mir werden dann allerdings danach nur noch die nicht
zugeordneten zur weiteren Auswahl angezeigt.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Lachtaube

Ich habe nur einen Blick auf die Tabellen geworfen. Hier einige Anmerkungen dazu:

* Wenn eine Schulung für mehrere Anforderungsprofile ausgelegt ist, und ein Anforderungsprofil für mehrere Schulungen gültig sein kann, müsste ein Schulungsnachweis eines Mitarbeiters über die APSID und nicht über die APID erfolgen.

* E minus Mail ist ein schlecht gewählter Feldname.

* In den Lookuptabellen sollten die Namensfelder Pflichtfelder sein und einen eindeutigen Index aufweisen.

* Bei sich wiederholenden Schulungen müss das ganze Schulungsbrimbamborium erneut eingepflegt werden. Ggf. ist es lohnenswert, Schulungsthema nebst Inhalt von der eigentlichen Veranstaltung zu trennen.

* Ein Anforderungsprofil könnte ich mir in Abhängigkeit einer Positionsbeschreibung vorstellen, welche wiederum von Abteilung zu Abteilung unterschiedlich ausfallen kann.

* Gibt es Pflichtveranstaltungen (ggf. einem gewissen Turnus unterliegend und vielleicht auch nachweispflichtig) für bestimmte Mitarbeiterkreise oder sprengen diese das Thema?
Grüße von der (⌒▽⌒)

Beaker s.a.

Hallo,
ZitatWenn eine Schulung für mehrere Anforderungsprofile ausgelegt ist, und ein Anforderungsprofil für mehrere Schulungen gültig sein kann, müsste ein Schulungsnachweis eines Mitarbeiters über die APSID und nicht über die APID erfolgen.
Genau darüber bin ich auch schon gestolpert. Bau ich morgen mal um.
Sowas ähnliches habe ich gerade schon mal gemacht. Du wählst beim MA
aus einer Liste der Profile die passenden aus und es werden DS für alle
zugehörigen Schulungen angelegt.

Jetzt ist mir erst mal Folgendes aufgefallen.
Die Felder "APS_Bezeichnung" und "APS_Schulungsnummer" sind überflüssig.
Die unterscheiden sich ja nicht von den Feldern in tbl_Schulung.
Die Abfrage für die Liste "ListeZugeordnet" sieht dann so aus
SELECT APS.APSID, S.Schulungsnummer, S.Schulungsbezeichnung
FROM Tbl_Schulung AS S INNER JOIN tbl_ApSchulungen AS APS ON S.SchulungID = APS.APS_SchulungID
WHERE APS.APS_APID=[Forms]![Frm_Anforderungsprofilverwaltung]![APID]


gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Beaker s.a.

@Lachtaube
Bevor ich mich da morgen mit beschäftige, - habe ich dich richtig
verstanden (siehe Anhang)?
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Lachtaube

Grüße von der (⌒▽⌒)

DF6GL

Hallo,

Zitatmüsste ein Schulungsnachweis eines Mitarbeiters über die APSID und nicht über die APID erfolgen.

So war das Anfangs auch vorgesehen, hat aber mit der Anforderungsbeschreibung  kollidiert.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

henne222

#26
ZitatWenn eine Schulung für mehrere Anforderungsprofile ausgelegt ist, und ein Anforderungsprofil für mehrere Schulungen gültig sein kann, müsste ein Schulungsnachweis eines Mitarbeiters über die APSID und nicht über die APID erfolgen.

* E minus Mail ist ein schlecht gewählter Feldname.
stimmt, Sonderzeichen vermeiden

Zitat* Bei sich wiederholenden Schulungen müss das ganze Schulungsbrimbamborium erneut eingepflegt werden. Ggf. ist es lohnenswert, Schulungsthema nebst Inhalt von der eigentlichen Veranstaltung zu trennen.

es sind eigentlich immer die gleichen Schulungen, die pro Mitarbeiter zugeordnet sind, ab und an kommen mal neue dazu. Einmal absolviert braucht der Mitarbeiter diese nicht wiederholen.
Zitat
* Ein Anforderungsprofil könnte ich mir in Abhängigkeit einer Positionsbeschreibung vorstellen, welche wiederum von Abteilung zu Abteilung unterschiedlich ausfallen kann.
theoretisch ist das so, Anforderungsprofil richtet sich nach der Stellenbeschreibung. Es gibt aber jede Menge Sachbearbeiterposten (Fibu, Lohn usw.) Die sich dann in einigen Schulungen unterscheiden. Normalerweise hat ein MItarbeiter auch nur ein Anforderungsprofil, wollte aber gleich vorbeugend handeln da sich dies evtl. mal ändern kann.

Zitat* Gibt es Pflichtveranstaltungen (ggf. einem gewissen Turnus unterliegend und vielleicht auch nachweispflichtig) für bestimmte Mitarbeiterkreise oder sprengen diese das Thema?
Ja gibt es. Sicherheitsunterweisungen z.B. aber das wollte ich mir dann später evtl. dazubasteln da diese momentan noch in einem separaten Programm eines externen Anbieters gepflegt werden.

ZitatJetzt ist mir erst mal Folgendes aufgefallen.
Die Felder "APS_Bezeichnung" und "APS_Schulungsnummer" sind überflüssig.
Die unterscheiden sich ja nicht von den Feldern in tbl_Schulung.
Die Abfrage für die Liste "ListeZugeordnet" sieht dann so aus

ja, die habe ich nur mit reingeschrieben, damit ich sie in der Liste darstellen kann, Faulheit;)

ZitatSowas ähnliches habe ich gerade schon mal gemacht. Du wählst beim MA
aus einer Liste der Profile die passenden aus und es werden DS für alle
zugehörigen Schulungen angelegt.

so war der Plan, das Problem ist... ändern sich die Schulungen eines Mitarbeiters müssen die auch wieder gelöscht werden...

ZitatDas mit der Liste ist schon o.k., das mache ich bei solchen Zuordnungen
auch oft so. Bei mir werden dann allerdings danach nur noch die nicht
zugeordneten zur weiteren Auswahl angezeigt.

hätte ich auch gern so gehabt, aber dann müsste ich den betreffenden Datensatz aus der Ursprungstabelle löschen, würde dann ja für keinen anderen mehr zur Verfügung stehen und Listenfelder kann man ja leider nicht filtern bzw. nur über die Datenbankabfrage...

Da kommen wir zum nächsten Problem, ich kann dem Mitarbeiter die z.B. Schulung 1 so oft zuordnen wie ich will, das soll eigentlich auch nicht sein... hab es schon versucht über indizieren probiert, geht nicht da bräuchte ich noch ein zweites Autowert Feld was ja nicht machbar ist.... Aber gut das lege ich dann mal in die Verantwortung des Bedieners darauf zu achten.

Oh mann gäbe es nicht die Anforderung, die einzelnen Schulungen als erledigt zu markieren wär das Teil schon fertig ....

Und mal so nebenbei, tolle Unterstützung hier  ;)

Lachtaube

Ich würde vorschlagen, die Schulungen aufzudröseln, so dass es je Schulungsthema eine bis viele Veranstaltungen jeweils mit Datum, ggf. Dozent, Veranstaltungsort etc. gibt. In den Detaildatensätzen einer solchen Veranstaltung werden dann die Mitarbeiter aufgeführt und ggf. Schulungserfolge vermerkt.

* Ein Schulungsthema
* mehrere Veranstaltungen
* je Veranstaltung für jeden Teilnehmer der Veranstaltung einen Datensatz anlegen - das wäre der Nachweis und könnte in einem Bericht erscheinen

Bei ordentlichem Datenmodell, geschickter Filtermöglichkeit von Mitarbeitern sollte das im Idealfall mittels Knopfdruck oder zumindest über Auswahl von Kontrollkästchen bzw. in einem Listenfeld mit Mehrfachauswahl relativ leicht in einem Formular umzusetzen sein.

Wenn also eine Sicherheitsunterweisung für Büroangestellte ansteht, sollte es möglich sein, festzustellen, wer innerhalb einer Frist an keiner solchen Veranstaltung teilgenommen hat, damit er ausgewählt werden kann.

Wird ein Seminar "Erfolgreich Moderieren und Präsentieren" angeboten, sollten dem Profil entsprechend nur die Mitarbeiter erscheinen, die dieses Seminar noch nicht besucht haben.

Bei einem gutem Datenmodell lassen sich diese Aufgaben durch SQL-Abfragen leicht realisieren.
Grüße von der (⌒▽⌒)

henne222

#28
ZitatIch würde vorschlagen, die Schulungen aufzudröseln, so dass es je Schulungsthema eine bis viele Veranstaltungen jeweils mit Datum, ggf. Dozent, Veranstaltungsort etc. gibt. In den Detaildatensätzen einer solchen Veranstaltung werden dann die Mitarbeiter aufgeführt und ggf. Schulungserfolge vermerkt.

* Ein Schulungsthema
* mehrere Veranstaltungen
* je Veranstaltung für jeden Teilnehmer der Veranstaltung einen Datensatz anlegen - das wäre der Nachweis und könnte in einem Bericht erscheinen

Wenn man es genau nimmt wäre ja das Anforderungsprofil das Schulungsthema... ich will es auch nicht zu kompliziert machen sonst muss ich die betreffenden Mitarbeiter die damit arbeiten sollen noch ewig schulen  ;D ;D ;D

Den Datensatz könnte man ja in der Tabelle tbl_MAApSchulungen anlegen, hab da auch schon mit der DB Abfrage begonnen... Im Formular Mitarbeiter wird dann nach Auswahl des Anforderungsprofil die MAID in das Feld MAAPS_MAID geschrieben.... ich hänge daran das er die Schulungs ID (APSID aus Tabelle tbl_ApSchulungen) in das Feld MAAPS_APSID schreibt und das ja für jede Schulung die dem AP zugeordnet ist, gleichzeitig muss es pro Datensatz die MAID mitziehen... da liegt gerade mein Problem. Auch da kommt dann wieder das Indizierungsproblem auf...

sieht zu Zeit so aus, also bisher wird nur APID und die MAID in die Tabelle geschrieben....


Private Sub ComboAnforderungsprofil_Change()

     CurrentDb.Execute ("INSERT INTO tbl_MAApSchulungen (MAAPID, MAAPS_MAID) VALUES ('" & ComboAnforderungsprofil.Column(0) & "','" & Me.MAID & "')")
Me.Requery

End Sub


Ich müsste jetzt eigentlich per recordset die Schulungen mit dem im Combofeld gewählten AP auswerten und die jeweiligen SchulungdIDS in die MAApSchulungen schreiben mit der Mitarbeiter ID.

Lachtaube

Henne, Du denkst in Formularen und nicht in Datenstrukturen.

Wäre ich der Mitarbeiter und sollte eine Seminar/Schulungs-/Fortbildungsdatenbank mit Themen pflegen, wäre ich jedes Jahr auf's Neue begeistert, wiederholt 80% der Daten aus dem vergangenen Jahr (nur halt mit anderem Datum und/oder Dozent) eintragen zu dürfen.

Die Einschätzung, was mehr Aufwand und Kosten verursacht, bleibt, wie die Entscheidung, was Du wie umsetzt selbstverständlich Dir überlassen - ich habe hier nur ein paar leise Hinweise in den Thread geflüstert.
Grüße von der (⌒▽⌒)