Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Noktoll am Februar 04, 2011, 14:49:49

Titel: Beziehungschaos
Beitrag von: Noktoll am Februar 04, 2011, 14:49:49
Hallo Access-Gemeinde.

Ich habe so viele Beiträge gelesen und weis im Moment gar nichts mehr  ??? *kopfqualm*

Mein Problem:
Ich habe eine Mastertabelle "Personaldaten".
Jedem Mitarbeiter möchte ich mehrere Ausrüstungsgegenstände, monatliche Lohnzahlungen und ggf. Zuschüsse zuordnen.
Anhand der Aussagen im Forum versuchte ich dies über mehrere Tabellen und eine Zuordnungstabelle zu lösen.
In der Zuordnungstabelle sind die IDs der Tabellen. Wenn ich nun ein Formular erstelle um bspw. Minna Mustermann
einen Ausrüstungsgegenstand zuzuordnen, werden die Daten aus der Ausrüstungstabelle erst gar nicht angezeigt,
wegen eines falschen Datentyps. Wo steckt mein logischer Fehler?
Denke ich zu kompliziert? Über Hilfe würde ich mich sehr freuen.

(http://img822.imageshack.us/img822/1019/accessbeziehungen.png)
Titel: Re: Beziehungschaos
Beitrag von: Jonny am Februar 04, 2011, 15:00:07
Hallo,
die Zuordnungstabelle ist meiner Meinung nach überflüssig da sich alles auf die Personentabelle bezieht und die anderen
Tabellen in einer 1:n Beziehung stehen.

Die Fehlermeldung hat damit aber nichts zu tun.
Prüfe die Felder die in Beziehung stehen. Sie müssen vom gleichen Feldtyp sein.

Soweit ich es von hier beurteilen kann, kannst du mit einen Hauptformular für die Personen und Unterformulare für
Zuschuss, Lohn und Ausrüstung arbeiten.

Gruß

Johann

Titel: Re: Beziehungschaos
Beitrag von: Noktoll am Februar 04, 2011, 15:24:12
Okay, ich teste es.
Titel: Re: Beziehungschaos
Beitrag von: Hondo am Februar 04, 2011, 16:39:03
Hallo,
du solltest dich zuerst mal fragen ob du Zuschuss und den Lohn nicht direkt dem Mitarbeiter zuordnen kannst. Wenn ja musst du die MitarbeiterID in diese Tabellen aufnehmen und 1:n verknüpfen.

Bei der Ausrüstun ist das was anderes denk ich, da ein Ausrüstungsgegenstand zu verschiedenen Zeiten an verschiedene Mitarbeiter ausgegeben werden kann.
In diesem Falle benötigst du die "Zwischentabelle", aber nur für den einen Fall.

Andreas
Titel: Re: Beziehungschaos
Beitrag von: database am Februar 04, 2011, 18:04:56
Hallo,

leider sieht man nicht alle Felder der Personaltabelle aber soviel dennoch:

Keine Leer- und/oder Sonderzeichen, Umlaute und / oder reservierte Worte für Feldnamen verwenden!

Puncto Ausrüstung darf ich zu Andreas' Posting noch ergänzen:

tblAusruestung
AusruestungID        Autowert
Ausruestung           Text
Groeße                    Zahl (Long Integer)

...die Zwischentabelle:

tblPersAusruestung
PersonalID_FK             Zahl  Long Integer
AusruestungID_FK      Zahl    Long Integer
---------  wenn benötigt noch die beiden Felder dazu ------
AusgDatum                 Datum  
RueckDatum                Datum

ermöglicht dir dann jederzeit festzustellen welche Personen wann - welche Ausrüstungsgegenstände in Besitz haben oder hatten.  (tolles Deutsch!)

Das Präfix 'FK' steht für Foreign Key - also für die Fremdschlüssel, die mit den Primärschlüsseln
der Haupttabellen (AusruestungID und PersonalID ... [den solltest du übrigens so benennen und nicht ID]) zu verbinden ist.
Referenzielle Integrität anhaken und die 1:n Beziehung ist erstellt!

Du musst dich natürlich nicht unbedingt an meine Benamsungen halten - sind aber in der Folge möglicherweise hilfreich.

Außerdem sehe ich in der Personaltabelle 'weitere Telefonnummern ... '
Wenn dem so sein sollte, dass du einer Person mehrere Telefonnummern zuordnen willst oder mußt, wäre zu überlegen diese Dinge in eine tblPersKontakt zu verfrachten und die dann 1:n mit der Personaltabelle in Beziehung zu setzen (ähnlich wie bei der Ausrüstung, hier aber nicht als Zwischentabelle sondern als Detailtabelle)


HTH
Titel: Re: Beziehungschaos
Beitrag von: Noktoll am Februar 04, 2011, 18:16:29
Danke für die neuen Anreize und Hilfestellungen,
jetzt stelle ich mal alles entsprechend um und schaue was passiert :)
Titel: Re: Beziehungschaos
Beitrag von: Noktoll am Februar 04, 2011, 20:46:58
Vielen vielen Dank für die Hilfe.
Offensichtlich habe ich viel zu verschachtelt gedacht.
Eure Vorschläge wurden vollständig umgesetzt.

Danke