Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Tabellenfeldliste MitarbeiterID zugewiesen

Begonnen von Xoar, August 24, 2016, 16:55:54

⏪ vorheriges - nächstes ⏩

Xoar

Hallo,

ich bau gerade etwas meine Datenbank um, hoffe es zu verbessern, komme aber an eine Stelle nicht weiter.
Folgendes:

Ich habe ein Hauptformular wo ich einen Mitarbeiter auswähle (MitarbeiterID), so jetzt möchte ich ein Unterformular erstellen (Endlosansicht), wo ALLE Qualifikationen der Tabelle tblQuali aufgelistet sind und Mitarbeiterbezogen den Inhalt des Datumsfeld daneben anzeigt.

frmHauptformular (z.B. MitarbeiterID = 1)
   ufrmQuali
     [Quali 1] [Datum]
     [Quali 2] [Datum]
     [Quali 3] [Datum]
     ....

Die Quali 1,2,3... sollen grundsätzlich immer bei allen Mitarbeitern angezeigt werden, sofern ein Mitarbeiter eine Qualifikation hat, soll das Datumsfeld daneben gefüllt werden.

Wenn ich jetzt den Mitarbeiter wechsel, sollen immer noch alle Quali 1,2,3 Felder angezeigt werden, aber halt nicht die Datumsfelder befüllt sein, sofern er noch keine Qualifikation hat.


Ich habe folgende Tabellen
tblMitarbeiter
-MitarbeiterID
-....

tblQualis
- QualiID
- Qualifikation

tblMitarbeiterQuali
- ID
- F_QualiID
- F_MitarbeiterID
- SeitWannDatum

Beziehung von sind gesetzt: QualiID <> F_QualiID und MitarbeiterID <> F_MitarbeiterID

Aber wie verwurschtel ich das jetzt in ein Unterformular mit Endlosansicht.

Geht das überhaupt?

Ich weiß diese Art erzeugt viele LEERE Datenfelder, aber so ist das gewünscht.

Vielen Dank für Denkanstöße

Beaker s.a.

Hallo Xoar,
Wenn in tblMitarbeiterQuali alle Qualif. für den Ma drinstehen (drei DS),
warum werden die im UFo nicht alle angezeigt, wenn das UFo über die
MA-ID verknüpft ist?
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)

Xoar

#2
Hi Beaker,

sie stehen ja nicht drin, zumindest nicht automatisch.

Alle Qualis sind ja nur in tblQualis gelistet, sollten aber bei jedem Mitarbeiter komplett angezeigt werden.
Ich dachte in tblQualiMitarbeiter werden dann nur die tatsächlichen eingetragen, also die die der Mitarbeiter hat.

Aber da liegt wohl der Fehler...

[edit]
hab meine alten Beiträge mal durchforstet, der nette MzKlMu hatte mir da mal eine Beispieldatenbank zur Verfügung gestellt, wo diese Art Problem gelöst wurde.

würde für mich bedeuten das ich ca. 12000 Datensätze erzeuge. Ich werds mal testen.
PS: Ging über eine Anfügeabfrage
[/edit]


Beaker s.a.

Hallo Xoar,
ZitatAlle Qualis sind ja nur in tblQualis gelistet, sollten aber bei jedem Mitarbeiter komplett angezeigt werden.
Ich dachte in tblQualiMitarbeiter werden dann nur die tatsächlichen eingetragen, also die die der Mitarbeiter hat.
Dann kannst du doch ein Kombi verwenden mit DS-Herkunft tblQualis, aus
dem du die nötigen nacheinander auswählst.
Wenn du alle relevanten Qualis für einen MA in einem Rutsch eintragen willst,
verwende ein Listfeld mit Mehrfachauswahl (gleiche DS-Herkunft wie beim Kombi).

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)

Xoar

Hi,

ja tendenziell klingt das gut. Leider klappt das mit der gewünschten Darstellung nicht.

Es sollten schon wie bei nem Listfeld alle DS untereinander stehen, aber direkt rechts daneben ein Datumsfeld wo man dann für jeden Mitarbeiter ein Datum einzelnd eintragen kann, wodurch der User dann optisch sieht das er diese Quali hat.

Vorher hatte ich die Variante alle Qualis, sowie die FMitarbeiterID als Felder in einer tbl, dann habe ich über den Fremdschlüssel immer die passenden DS angezeigt bekommen.
Dies war aber viel Aufwand, wenn eine neue Quali dazu kam.

Zur Zeit hab ich es so gemacht, dass alle Qualis in tblQuali über eine Anfügeabfrage jedem Mitarbeiter in tblQualiMitarbeiter hinzugefügt wird. (Endlosformular)
Wenn jetzt eine neue Quali, oder ein neuer Mitarbeiter hinzukommt, muss ich mir noch ne Abfrage basteln, die nur diese einzelne Quali jedem Mitarbeiter zuweist, oder alle Qualis nur dem neuen Mitarbeiter.

Geht das mit ner Abfrage?
Sonst baue ich mir ne Loop Schleife wo jeder Mitarbeiter durchlaufen wird und ne Subschleife wo geschaut wird, ob jeder Mitarbeiter auch die Quali hat und wenn nicht diese hinzufügt.


Beaker s.a.

Hallo Xoar,
ZitatEs sollten schon wie bei nem Listfeld alle DS untereinander stehen, aber direkt rechts daneben ein Datumsfeld wo man dann für jeden Mitarbeiter ein Datum einzelnd eintragen kann,
Das geht IMO nur mit einem UFo.
So wie du es jetzt gemacht hast, alle Qualis für alle Mitarbeiter angelegt, kannst
du im Ufo doch die relevanten Qualis des MA mit Datum kennzeichnen.
Sind doch vermutlich eh unterschiedliche Termine.
Um die Auswahl einzuschränken könntest du einen Filter auf die nicht erlangten
Qualis setzen.
Um bei neuen MA/Qualis alle DS anzulegen musst du nur die vorhandene
Anfügeabfrage ein wenig anpassen.
Entweder du legst alle Qualis für einen neuen MA an (... WHERE MAID = bla), oder
du legst für alle MA eine neue Quali an (... WHERE QualiID = blub)
Zitatob jeder Mitarbeiter auch die Quali hat und wenn nicht, diese hinzufügt.
Wo hinzu fügt. Das "Hinzufügen" einer Quali zum MA geschieht doch, so
wie ich dich verstanden habe, indem du ein Datum einträgst.
So ganz ist mir dein Wunsch auch noch nicht klar geworden. Müssen denn alle
MA alle Qualis erlangen?
Wenn dem nicht so ist, hast du doch ohne Ende bedeutungslose DS. Und da
ist es IMO schon vernünftiger nur die relevanten anzulegen; - mit Listfeld, wie
beschrieben. Die Termine musst du doch so oder so manuell eintragen.
Oder gibt es da schon eine andere "Tabelle", wo die schon drin stehen, und
diese soll nur in die gezeigte Struktur überführt werden?

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)

MzKlMu

#6
Hallo,
der Weg mit der Anfügeabfrage wäre schon richtig. Alle möglichen Qualis werden dem Mitarbeiter zugewiesen, egal ob er diese schon hat oder nicht. Durchgeführte Qualis werden mit dem Datum gekennzeichnet.
Wenn man über die Fremdschlüssel zum MA und zur Quali einen zusammengesetzten Index anlegt, können keine Doppelbelegungen mehr gemacht werden. Und eine Quali wird auch mit der gleichen Anfügeabfrage eingetragen Durch den zusammengesetzten eindeutigen Index werden nur die neuen Qualis angefügt.

Es wäre noch zu bedenken, dass man so keine Nachweis führen kann, wer wann welch Qualis gemacht hat, denn ein neuer Termin überschreibt den alten Termin, sodass dies Info verloren geht. Aber gerade bei Qualis wäre es sinnvoll eine Dokumentation zu haben wer hat wann was gemacht, auch bei Wiederholungen.
Gruß Klaus

Beaker s.a.

Hallo Klaus,
Danke für Berichtigung. An den Mehrfelder-Schlüssel hab ich nicht gedacht, -
ist aber natürlich alles viel einfacher damit.
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)

Xoar

Hallo danke für die Tipps,

eure Sorge das ich keine Historie über die Qualidurchführung habe, ist unwichtig, da jede Quali nur ein einziges mal durchgeführt werden kann und somit immer das korrekte Datum angezeigt wird.

Ich muss leider gestehen, dass ich das mit dem zusammengesetzten Index nicht raffe.
Ich verstehe das so, dass FMitarbeiterID und FQualiID zusammen einen eindeutigen Index (wie ne ID) ergeben.

Aber wie genau ich den erstelle und dann in der Abfrage mit einbaue, sodass er nur neue Qualis hinzufügt kapiere ich noch nicht.

Meint ihr könnt das einmal verständlich an meinem, oder anderem Beispiel erörtern?

Danke!

MzKlMu

#9
Hallo,
zum Index siehe Bild.
Zitatund dann in der Abfrage mit einbaue,
In die Abfrage musst Du gar nichts einbauen. Der Index ist ausreichend. Die Abfrage bleibt unverändert.
Gruß Klaus

Xoar

Danke,

und wie stell ich mir jetzt vor wie das funktioniert?

Die Abfrage fügt ja jede Qualifikation jedem Mitarbeiter zu und wenn jetzt dieser neue Index(Indize) besteht, guckt die Anfügeabfrage ob diese Mitarbeiter/Qualifikations Kombination schon existent ist und wenn ja, überspringt er diese Qualifikation, richtig? (wegen der Eindeutig Eigenschaft im zusammengesetzten Index)

MzKlMu

Hallo,
der eindeutige Index verhindert Doppelungen, egal ob manuell oder per Anfügeabfrage.
Einfach mal probieren.
Gruß Klaus

Xoar

genial, total gut.

Wieder was richtig gutes gelernt!

Danke!