Kompliziertes Formular

So, es ist mal wieder soweit, dass ich mehrere DB’s hab, bei denen ich Hilfe brauchen könnte. Momentan steh ich noch ganz am Anfang der DB und komm schon nicht weiter. Ich versuch mal den Aufbau bzw. die Funktionalität der DB zu beschreiben:
Das ganze soll der Personalplanung dienen. Ich habe Arbeitsplätze, zu denen die Mitarbeiter zugeordnet werden sollen. Dazu hab ich eine Tabelle Mitarbeiter, in der ich ankreuzen kann, welche Qualifikationen der MA hat und ob er krank oder im Urlaub ist. In einer anderen Tabelle stehen die Arbeitsplätze, zu denen die MA dann zugeordnet werden sollen. Jetzt hat aber nicht jeder MA die gleiche Qualifikation. Das heißt, dass MA1 an Arbeitsplatz (AP)1 und 2, aber nicht auf AP3 arbeiten kann und MA2 z.B für alle AP’s qualifiziert ist. In meinem Formular möchte ich nun zu den Arbeitsplätzen über Kombifelder die MA auswählen, jedoch soll dass ganze so aussehen, dass im Kombifeld nur die MA angezeigt werden, die für den entsprechenden Arbeitsplatz zugelassen, nicht krank und nicht im Urlaub sind.

Ich hab einfach keine Ahnung, wie ich das über VBA oder SQL lösen kann. Vielleicht hat jemand von euch eine Idee? Ich bin für jeden Lösungsansatz sehr dankbar.

VG von Beate

Hallo.

[…] Dazu hab ich eine Tabelle Mitarbeiter, in der ich
ankreuzen kann, welche Qualifikationen der MA hat und ob er
krank oder im Urlaub ist.

tbl_Mitarbeiter

pky_Mitarbeiter = Primärschlüssel
boo_Mitarbeiter_Quali1 = Ja/Nein
boo_Mitarbeiter_Quali2 = Ja/Nein
boo_Mitarbeiter_anwesend = Ja/Nein

In einer anderen Tabelle stehen die
Arbeitsplätze, zu denen die MA dann zugeordnet werden sollen.

**tbl\_Arbeitsplatz**
pky\_Arbeitsplatz = Primärschlüssel
boo\_Arbeitsplatz\_Quali1 = Ja/Nein
boo\_Arbeitsplatz\_Quali2 = Ja/Nein



**tbl\_Arbeitsplatz\_Mitarbeiter**
fky\_AP\_MA\_AP = Fremdschlüssel Arbeitsplatz
fky\_AP\_MA\_MA = Fremdschlüssel Mitarbeiter

Du legst eine n:m-Beziehung an; i.e. 1:n von pky_Mitarbeiter zu fky_AP_MA_MA und 1:n von pky_Arbeitsplatz zu fky_AP_MA_AP.

Wenn Dein Kombifeld die tbl_Arbeitsplatz anzeigt, bedienst Du Dein Kombifeld mit der SQL-Anweisung

SELECT pky\_Mitarbeiter FROM tbl\_Mitarbeiter \_
 WHERE ((boo\_Mitarbeiter\_Quali1=Me!boo\_Arbeitsplatz\_Quali1 AND \_
 boo\_Mitarbeiter\_Quali2=Me!boo\_Arbeitsplatz\_Quali2) OR \_
 (boo\_Mitarbeiter\_Quali1=False AND \_
 boo\_Mitarbeiter\_Quali2=Me!boo\_Arbeitsplatz\_Quali2) OR \_
 (boo\_Mitarbeiter\_Quali1=Me!boo\_Arbeitsplatz\_Quali1 AND \_
 boo\_Mitarbeiter\_Quali2=False)) AND \_
 boo\_Mitarbeiter\_anwesend=True;

Damit bekommst Du zu jedem Arbeitsplatz die anwesenden Mitarbeiter, die das erforderliche Qualifikationsprofil erfüllen oder übertreffen. Muddu natürlich für die Oberfläche noch um die entsprechenden Dateninhalte ergänzen, weil Dir das so nur den Primärschlüssel liefert. Das Prinzip sollte aber verstanden werden. Die vorgenommene Zuordnung wird in der Zwischentabellen der n:m-Relation abgelogen.

Anm.d.Verf. : Mit diesem Datenmodell wirst Du aber nicht glücklich werden, da sich ja die Anwesenheit ständig und das Qualifikationsprofil ab und zu ändert. Du solltest also darauf achten, Stamm- und Bewegungsdaten zu trennen.

Gruß Eillicht zu Vensre

Wie wärs mal mit einer Rückmeldung :-[ owT

HAst ja recht…
war bis jetzt bloß noch nicht auf Arbeit, so dass ich es hätte ausprobieren können.
Meld mich dann am Donnerstag nochmal.

Bis dahin, viele Grüße von Beate

Hallo,

leider komm ich dieses Jahr nicht mehr dazu, aber es klingt ganz gut, was du geschrieben hast. Ich probier das ganze dann mal Anfang Januar und falls ich weitere Fragen hab, meld ich mich wieder, okay?

Na dann, frohes Fest und guten Rutsch,
viele Grüße von Beate