Neuigkeiten:

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

Mobiles Hauptmenü

Kreuztabelle Zuordnung

Begonnen von Vertigo, Juli 25, 2019, 14:34:07

⏪ vorheriges - nächstes ⏩

MzKlMu

Hallo,
das ist alles reichlich verwirrend.
- MAID ist überflüssig, MAPersNr wird zum Primärschlüssel.
- Kurzbezeichnung verknüpft mit MABetrieb, verwirrend, blickst Du später selbst nicht mehr durch
- Textfelder sind als PS ungeeignet. Hier sollte dann ein Autowert rein und eine Zahl (Long) als Fremdschlüssel.
- es ist grundsätzlich referentielle Integrität einzustellen.

ZitatDie TblGMHFristen wird von einer anderen Quelldatei importiert
Die Daten müssen nach dem Import trotzdem in eine normalisierte Struktur überführt werden. So wie die Tabelle jetzt ist, ist diese für Access ungeeignet.
Gruß Klaus

Vertigo

#16
So Leute,
also ich habe jetzt mal versucht die Zuordnungen ordentlicher darzustellen:
(1)
zur Erklärung:
Ich vergebe Termine für Gesundheitsförderungen (tblGATermine). Die Details zu der jeweiligen Förderung in der Tabelle 'tblGAInfos'.

Welcher Mitarbeiter teilnimmt findet sich in 'tblGmhMA', der Schlüssel dieser Tabelle beruht auf der Personalnummer der jeweiligen Person (IDMAPersNr).
Wo dieser Mitarbeiter beschäftigt ist, ist in 'tblGmhOrg' festgehalten, wobei txtOrgEinheit quasi seinen Arbeitsplatz beschreibt.
Die Hauptfirma ist gegliedert in verschiedene Betriebe (Bereiche).
Es existieren aber auch weitere Firmen (tblGmhFirmen) neben der Hauptfirma, die nicht zusätzlich in einzelne 'Betriebe' eingeteilt werden.

Ist das soweit schlüssig? Oder mache ich dabei schon wieder etwas falsch?



Nun stellt sich mein Problem:
Ich habe auch Teilnehmer in der Gesundheitsförderung, welche keine Mitarbeiter der Firma (2) sind, und demnach auch keine Personalnummer haben.
Wie implementiere ich diese Leute am besten in der Liste?

Die Leute der Fremdfirmen werden manuell eingefügt, wohingegen das Personal der Hauptfirma automatisch aus einer Excel-Liste importiert wird.





emmoticon

Frage rein inhaltlich:  Die OrgEinheiten sind abhängig von den Betrieben der Hauptfirma und der anderen Firma? So wie das aussieht, schaut es aus als ob die OrgEinheit es nur in der Zusammenstellung von Betrieben (tblGmhBetriebe) und Fremdfirmen (tblGmhFirmen)  gibt. Wäre das nicht sinnvoller die Tabellen Betriebe und Firmen zusammenzufassen und ein weiteres Feld mit FremdFirma bzw. Betrieb einzuführen?

Zitat von: Vertigo am Oktober 09, 2019, 09:39:01Ich vergebe Termine für Gesundheitsförderungen (tblGATermine). Die Details zu der jeweiligen Förderung in der Tabelle 'tblGAInfos'.

Meiner Meinung nach fehlt da zwischen den Mitarbeitern und deinen Terminen noch eine n:m Beziehung. In deiner Struktur müsstest du für jeden Mitarbeiter, der an einem Termin teilnimmt einen neuen Datensatz in tblGATermine aufmachen. Aber Du willst doch sicherlich, dass an einem Termin mehrere Mitarbeiter und ein Mitarbeiter an mehreren Terminen teilnehmen kann.


Zitat von: Vertigo am Oktober 09, 2019, 09:39:01Nun stellt sich mein Problem:
Ich habe auch Teilnehmer in der Gesundheitsförderung, welche keine Mitarbeiter der Firma (2) sind, und demnach auch keine Personalnummer haben.
Wie implementiere ich diese Leute am besten in der Liste?

Die Leute der Fremdfirmen werden manuell eingefügt, wohingegen das Personal der Hauptfirma automatisch aus einer Excel-Liste importiert wird.

Erstell eine Tabelle für Teilnehmer die nicht Teil der Firma sind und verknüpfe sie wie die Mitarbeiter mit der Termintabelle n:m. In der Eingabe kannst du dann z.B. ein Kombofeld mit allen potentiellen Teilnehmern benutzen und bei nicht vorhandensein neu eintragen lassen.
Gruß, Smiley mit Rechtschreibfehler

Vertigo

#18
Zitat von: emmoticon am Oktober 09, 2019, 12:01:50
Frage rein inhaltlich:  Die OrgEinheiten sind abhängig von den Betrieben der Hauptfirma und der anderen Firma? So wie das aussieht, schaut es aus als ob die OrgEinheit es nur in der Zusammenstellung von Betrieben (tblGmhBetriebe) und Fremdfirmen (tblGmhFirmen)  gibt. Wäre das nicht sinnvoller die Tabellen Betriebe und Firmen zusammenzufassen und ein weiteres Feld mit FremdFirma bzw. Betrieb einzuführen?

Stimmt, das war durchaus ein Denkfehler. Die Aufteilung hat abrechnungsrelevante Gründe, jedoch ist das absolut richtig, die ergeben sich auch aus den Betrieben.


Zitat von: emmoticon am Oktober 09, 2019, 12:01:50
Zitat von: Vertigo am Oktober 09, 2019, 09:39:01Ich vergebe Termine für Gesundheitsförderungen (tblGATermine). Die Details zu der jeweiligen Förderung in der Tabelle 'tblGAInfos'.

Meiner Meinung nach fehlt da zwischen den Mitarbeitern und deinen Terminen noch eine n:m Beziehung. In deiner Struktur müsstest du für jeden Mitarbeiter, der an einem Termin teilnimmt einen neuen Datensatz in tblGATermine aufmachen. Aber Du willst doch sicherlich, dass an einem Termin mehrere Mitarbeiter und ein Mitarbeiter an mehreren Terminen teilnehmen kann.

Edit: ist korrigiert, es steht jetzt die Verbindung durch die tblGATMATermin dazwischen


Zitat von: emmoticon am Oktober 09, 2019, 12:01:50
Zitat von: Vertigo am Oktober 09, 2019, 09:39:01Nun stellt sich mein Problem:
Ich habe auch Teilnehmer in der Gesundheitsförderung, welche keine Mitarbeiter der Firma (2) sind, und demnach auch keine Personalnummer haben.
Wie implementiere ich diese Leute am besten in der Liste?

Die Leute der Fremdfirmen werden manuell eingefügt, wohingegen das Personal der Hauptfirma automatisch aus einer Excel-Liste importiert wird.

Erstell eine Tabelle für Teilnehmer die nicht Teil der Firma sind und verknüpfe sie wie die Mitarbeiter mit der Termintabelle n:m. In der Eingabe kannst du dann z.B. ein Kombofeld mit allen potentiellen Teilnehmern benutzen und bei nicht vorhandensein neu eintragen lassen.

Wie im Anhang bei (2) und jetzt (3)?
- ich wollte ein Text-Suchfeld erstellen, die bei Eingabe filtert und dann in einem Listenfeld die Ergebnisse anzeigt. In welchem dann ausgewählt werden kann.

emmoticon

Zitat von: Vertigo am Oktober 09, 2019, 14:50:54

Wie im Anhang bei (2) und jetzt (3)?
- ich wollte ein Text-Suchfeld erstellen, die bei Eingabe filtert und dann in einem Listenfeld die Ergebnisse anzeigt. In welchem dann ausgewählt werden kann.

Das ist leider keine n:m Beziehung ;-)
Eine n:m Beziehung erstellst du in Access anders. Schau dir mal mein Screenshot an.

Eine genauere Erläuterung findest du hier:
https://www.access-tutorial.de/tabellen/nmbeziehung.htm
Gruß, Smiley mit Rechtschreibfehler

MzKlMu

#20
Hallo,
die Struktur ist falsch. Die Mitarbeiter (egal ob Eigen oder Fremd) sind in einer Tabelle zu führen. Mit einem Ja/Nein Feld (Ja=Fremd).
Diese Tabelle bekommt einen Autowert als Fremdschlüssel. Und dieser wird auch in der Tabelle für die Termine verwendet. Damit ist es völlig egal, ob der Mitarbeiter eine Personalnummer hat oder nicht. Die Zuordnung erfolgt ja über den extra Schlüssel.
Damit löst sich Dein Problem in Luft auf.

PS:
Noch ein Tip:
Die Präfixe vor den Feldnamen (lng, dat, txt usw.) sind völlig überflüssig. Die machen nur Schreibarbeit, sonst nix.
Dass ein Name ein Textfeld ist und GatDatum ein Datum weißt Du auch ohne die 3 Buchstaben.
Stele Dir mal den Aufwand vor, wenn Du das mal den Typ ändern musst ?
Du musst Du alles ändern, was schon fertig ist, auch ggf. VBA Code, da geht nix automatisch. Mache sie lieber weg, noch ist Zeit.
Gruß Klaus

Beaker s.a.

#21
@emmoticon
Deine Feldnamen sind auch nicht gerade der Hit, und für Anfänger m.E. sogar verwirrend.
1. eine ID nur "ID" zu nennen ist nicht hilfreich beim Schreiben von Abfragen.
2. ein Fremdschlüssel sollte auch als solcher zu erkennen sein; - TeilnehmerID_F statt
nur "Teilnehmer". Da kommt er noch auf die Idee da den Klarnamen rein zu schreiben.
Beim Termin hast du das ja auch (mehr oder weniger) so gemacht.

@Vertigo
Unbedingt Klaus' letzten Hinweis bezügl. Struktur beachten/umsetzen!

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)

emmoticon

@Beaker
Ja, ich weiß! Ich wollte nur visualisieren.  ::) Verspreche nächstes Mal besser zu sein
Gruß, Smiley mit Rechtschreibfehler

Vertigo

#23
Erstmal vielen Dank.
Die Feldnamen sind geändert.
Dann verschiebe ich den "Teilnahme"-Nachweis (Ja/Nein-Feld) in die Verknüpfungtabelle?

Ich bin jetzt jedoch immer noch überfragt mit der Aufteilung der Mitarbeiterlisten.
Ich bekomme regelmäßig eine Exceltabelle (1). Die Informationen die ich verarbeiten muss sind alle die auch vorgegeben sind, mit der Ausnahme der Organisationseinheit.

Bei den Organisationseinheiten wird lediglich die höchst gegebene Einheit benötigt. Demnach kommt nach der "Personalnummer" nur noch ein Feld mit der Organisationseinheit (Name des Betriebs).

Ich erstelle dann eine Tabelle mit der O-Einheit (Dabei ist die Zahl vor der Einheit mein Schlüssel) und führe dann jeweils einen Fremdschlüssel zu der Tabelle mit den Mitarbeiterdaten, korrekt?
Kann ich die Namen der Fremdfirmen dann in der O-Einheiten-Tabelle unterbringen?

MzKlMu

Hallo,
ich blicke da nicht durch. Bitte zeige mal das komplette aktuelle Beziehungsfenster.
Gruß Klaus

Vertigo

Also so ist meine Zuordnung jetzt: (1)

Aus der Mitarbeiter Excel Liste (2) entstehen die Personalien und die letzte genannte Organisationseinheit. Also bleiben mir in Access die Inhalte wie in (3) gezeigt.

Aus den Betriebsbezeichnungen (was man mehr als Arbeitsplatzbeschreibungen betiteln könnte) bzw. den Zahlenschlüsseln kann ich dann den tatsächlichen Betrieb ausmachen (4)

MzKlMu

Hallo,
was sind denn die Organisationseinheiten ?
Sind die von der eigenen Firma ?
Und was sind die Betriebe ?
Was genau soll denn von den Fremdfirmen erfasst werden ?

Bitte beschreibe das mal genauer.
Gruß Klaus

Vertigo

Die Organisationseinheiten gehören zur eigenen Firma und sind quasi Arbeitsplatzbeschreibungen, da könnte dann sowas stehen wie z.B.:
12345678 Elektriker
12435786 Mechaniker
12543876 Rangierer
12876543 Elektriker

Die Betriebe sind die Bereiche der eigenen Firma.
Aufgrund des Zahlencodes vor der Arbeitsplatzbeschreibung (Organisationseinheit) kann dann der genaue Betrieb zugeordnet werden:
z.B.
12345678  &  12435786 gehören zur 'Werkstatt'
12543876 gehört zum 'Verladung'
12876543 gehört zur 'Stromversorgung'


Die Fremdfirmen haben keine für uns relevanten Personalnummern, da wird dann Nachname, Vorname, Geburtsdatum und der Name der Fremfirma erfasst.



Ist das so verständlich?

Vertigo

nicht verständlich?
Ich weiß ehrlich gesagt gar nicht wie ich diese Ordnung hinbekommen soll.