Hallo,
ich habe eine 1:1 Beziehung zwischen zwei Tabellen. Wenn ich im Kombinationsfeld einen Wert auswähle werden mir alle möglichen Werte angezeigt, auch die die ich bereits verwendet und laut 1:1 Beziehung nicht speichern kann.
Kann ich die bereits verwendeten aus der Anzeige entfernen?
Ich habe eine Tabelle tblPersonen und eine tblMitglieder. Dazwischen eine 1:1 Beziehung.
In der tblMitglieder speichere ich die personenID.
Wenn ich nun in einer dritten Tabelle auf das Mitglied verweise bekomme ich im Kombinationsfeld nur die personenID aus der tblMitglieder angezeigt.
Ich brauche aber mehr Informationen, eigentlich die ganzen Personendaten, um eine Auswahl zu treffen!
Danke vielmals im Voraus
Hi,
wenn ich ein Kombinationsfeld habe kann ich mehrere Werte zulassen.
Ich möchte das aber nur, wenn ein anderes Feld einen bestimmten Wert annimmt!
Danke
Hallo Andy,
wieso führst du Personen und Mitglieder in einer 1:1 Referenz?
Erkläre doch mal kurz den Zweck deiner db und grob das Datenmodell. Denke, da sollte zuerst angesetzt werden. Manche Probleme verschwinden, bzw tauchen gar nicht erst auf, wenn die Grundlagen stimmen ;)
bleib bitte in deinem anderen Beitrag - das Problem läuft auf das gleiche raus ...
Hallo,
ich habe die Themen zusammengeführt.
Bitte auch mal die Frage beantworten.
Die 1:1 Beziehung scheint mir auch eher ungewöhnlich.
Hi zusammen,
also ich habe vor eine Vereinsverwaltung zu machen (Fußball).
In der tblPersonen verwalte ich alle Personen, auch die die nicht zum Verein gehören. In der tblMitglieder sind dann die Mitglieder gespeichert die eben noch zusätzliche Attribute haben wie z.B. eine Mitgliedsnummer.
Nicht alle Personen sind Mitglieder. Gleiches gilt für die tblSpieler. Das sind wiederum Mitglieder die aber zusätzlich noch eine Passnummer haben. Und es sind eben nicht alle Mitglieder Spieler!
Ich hoffe das hilft Euch. Danke schon mal!
Also ich denke, dass die Werte nicht angezeigt werden habe ich geklärt! Ich habe jetzt die Werte für das Kombinationsfeld aus einer Abfrage genommen!
Aber ich bin gerne für weitere Tipps insbesondere auch für Eure Meinungen zum Datenmodell zu haben! :)
Hallo Andy,
Wozu zwei Tabellen? Eine Tabelle für Personen reicht völlig aus.
Du richtest einfach noch ein Feld für eine Kennzeichnung als "M"itglied"
oder "N"ichtmitglied ein, und bietest das als Kombi an.
gruss ekkehard
Moin,
2 Tabellen finde ich schon richtig. Die Mitgliedstabelle wird aber 1:n verbunden. 1 = Personen, n = Mitglieder. Dort werden relevante Daten wie Eintrittsdatum, etc gespeichert.
Zuerst muss das Datenmodell aufgebaut sein und passen, alle anderen arbeiten kommen danach.
Standardtutorial dafür
http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
und auch empfehlenswert (bei Franz abgekupfert)
http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
Hallo Jürgen,
So gebe ich dir natürlich recht. Ich war davon ausgegangen, dass in beiden
Tabellen die kompletten Personendaten gespeichert werden.
1:n verstehe ich allerdings nicht, - eine Person kann doch nicht mehrere
Mitglieder sein, - oder übersehe ich da mal wieder was.
Wenn man in tblMitglieder nur die zusätzlichen Felder hat, sollte 1:1 doch
richtig sein.
gruss ekkehard
Hallo Ekkehard,
das kommt drauf an, was der TE mit anfangen will.
Für 1:n spräche zB zeitweise Zugehörigkeit zu verschiedenen Mitgliedsgruppen (Jugend, Erwachsene, AH, passiv). Das könnte dann über Eintritt, Austritt verwaltet werden und würde dazu führen, dass eine Person n-mal Mitglied ist. Damit wäre auch leicht ein Austritt und späterer Wiedereintritt zu handhaben. Sonst besteht meist nur ein Eintrittsdatum, was zB zu Problemen bei Ehrungen für Jubiläen etc führt.
Aber wie gesagt - kommt auf die Anforderung an ... ich denk ja nur so vor mich hin ... ;)
Da der TE nur sehr schleierhaft die Anforderung an die DB beschreibt, gehe ich davon aus, dass er weiß, was er macht. Andererseits ist der Aufwand für das Aufbohren einer 1:1-Beziehung auch nicht so riesig, so dass man die DB in die Tonne werfen müsste, falls sich im Laufe der Zeit doch etwas anderes herauskristallisiert.
Bezogen auf eine fiktive Veranstaltung für Mitglieder habe ich ein Formular gebastelt, in dem nur Mitglieder zur Auswahl im Kombifeld bereitgestellt werden (also eine Teilmenge der Personen). Mitglieder, die bereits in der Detailtabelle zur Veranstaltung präsent sind, erscheinen bei der Neuanlage eines Datensatzes nicht mehr im Kombifeld - jedoch beim Editieren, um bei versehentlich falscher Mitgliedsauswahl während des Editierens doch doch wieder das alte Mitglied auswählen zu können.
Also mit der 1:n-Beziehung wie el_gomero es beschreibt macht das Ganze auch Sinn!
Die Anforderung der Datenbank ist es in einem Sportverein die Mitglieder und Spieler zu verwalten. Inklusive der Spiele, der Tore, der Karten etc..
Ich denke das ist nicht neu und es hatten bestimmt schon etliche Mitglieder das gleiche vor.
Probleme bekomme ich jetzt z.B. bei einer Abfrage in der ich aus der tblPersonen alle Daten abfragen möchte und aus der tblMitglieder nur die Mitgliedsnummer, aber nur bei Mitgliedern bei denen das Austrittsdatum leer ist. Da es sich um eine Inner Join handelt akzeptiert Access irgendwie die Bedingung IsNull(Austrittsdatum) nicht.
Würde sich vielleicht jemand das Datenmodell anschauen, wenn ich es schicke?
Danke und Grüße
Hallo,
die "Where-Condition" muss so lauten:
.... Where Austrittsdatum Is Null
und hat mit inner join nichts zu tun.
Tut mir leid, das funktioniert nicht! Vielleicht bin ich grad zu blöd!
Das Problem habe ich gelöst! Sry :-\