Problem mit Access Abfrage

Von: , Frage gestellt am Mi, 9. Dez 2009

Hallo,

hab jetzt schon längere Zeit rum probiert und gesucht, aber ich komme einfach nicht mehr weiter...
Mit meiner Access Datenbank möchte ich Mitglieder einer Wettkampfgruppe verwalten.
Ich habe eine Tabelle in der ich die Mitglieder erfasse:
Tabelle: Personen
ID_Person
P-Name
P-Vorname
P-Geburtsdatum
...

Und in einer zweiten Tabelle soll die Zuordnung stattfinden, wer zur Wettkampfgruppe gehört (zu einer Wettkampfgruppe gehören immer genau 8 Mitglieder):
Tabelle: WK-Gruppen
ID_WKG
WKG-Titel
FK_TLN1
FK_TLN2
FK_TLN3
FK_TLN4
FK_TLN5
FK_TLN6
FK_TLN7
FK_TLN8
WKG-Kommentar

Sprich die Tabelle WK-Gruppen beinhaltet 8 Fremdschlüssel der Tabelle Personen.

Mit meiner Abfrage

SELECT Personen.ID_Person, Personen.[P-Vorname], Personen.[P-Name], Personen.[P-Geburtsdatum], DateDiff("yyyy",[P-Geburtsdatum],Date())+(Format(Date(),"mmdd")<Format([P-Geburtsdatum],"mmdd")) AS [Alter]
FROM Personen
INNER JOIN [WK-Gruppen] ON [WK-Gruppen].FK_TLN1 = Personen.ID_Person;

kann ich jetzt zwar einen Fremdschlüssel abfragen, aber wie schaffe ich es, alle 8 in eine Abfrage zu bekommen?
Vielen Dank im vorraus für eure Hilfe.
gruß
Busta

5 Antworten zu dieser Frage

  1. Antwort von nach 5 Stunden 0 hilfreich
    Re: Problem mit Access Abfrage

    Ich verstehe dich jetzt so, dass du die Gruppe mit allen Mitgliedern abfragen willst. In diesem Falle müsstest du die Tabelle WK_Gruppen abfragen und über JOINs die Mitglieder-Tabellen einbinden. Wichtig hierbei: Du musst die Tabelle 8 mal einbinden, jedes Mal mit einem anderen Schlüssel-Bezug (da es ja 8 Fremdschlüssel gibt). Wichtig hierbei: Du musst Aliase auf die Mitglieder-Tabellen setzen, sonst kommt das Datenbank-System mit den Schlüsselangaben nicht mehr klar (weil 8 mal die gleiche Tabelle vorhanden ist, weiß er bei der 2. Tabelle bereits nicht mehr, ob sich die Feldangabe auf die 1. oder die 2. Tabelle beziehen soll).

  2. Antwort von nach 10 Stunden 0 hilfreich
    Problem mit Datenbankentwurf

    Moin, Busta,

    was MrNiceGuy vorschlägt, wird wohl klappen, behebt aber nicht den Entwurfsfehler, den Verstoß gegen die 1. Normalform.

    Bau Gruppen auf und setze eine Beziehung Gruppe <-->> Person, dann bist Du alle Sorgen los:

    Person (ID, Name, Vorname, ..., FS_Gruppe)
    Gruppe (ID, Name, ...)
    

    Auf dieser Entwurfstechnik baut jeglicher relationale Datenbankzugriff auf. Access-spezifisch: So lassen sich Formulare und Unterformulare mit links erstellen.

    Gruß Ralf

    • Antwort von nach 22 Stunden 0 hilfreich
      Re: Problem mit Datenbankentwurf

      Hi,
      war mir schon bewusst, dass ich normalerweise eine weitere Tabelle mit "Gruppen" nehmen würde.
      Dachte aber, da ich ja genau weiss, dass ich immer 8 Mitglieder in einer Gruppe habe, wäre dass so ok.
      Werde es aber jetzt wohl so wie von dir beschrieben umstellen...
      gruß Busta

  3. Antwort von nach 20 Stunden 0 hilfreich
    Re: Problem mit DB-Design

    Hallo,

    da ich gerade eine Meisterschaftsverwaltung für Karate programmiere, kenne ich das Problem :-) Ich habe eine Tabelle in der ich die Mitglieder erfasse:
    Tabelle: Personen
    ID_Person
    P-Name
    P-Vorname
    P-Geburtsdatum
    ...
    diese Tabelle ist OK, du solltest allerdings immer Unterstriche statt Bindestriche verwenden. Und in einer zweiten Tabelle soll die Zuordnung stattfinden,
    nö, erstmal benötigst du eine Tabelle NUR mit den Gruppeninfos. Tabelle: WK-Gruppen
    ID_WKG
    WKG-Titel
    WKG-Kommentar
    nun benötigst du noch eine "Person2Gruppe" Tabelle

    Tabelle: Person2Gruppe
    ID_p2g
    ID_WKG
    ID_Person

    Diese Tabelle kannst du dir natürlich sparen, wenn der Teilnehmer nur in einer Gruppe starten darf. Dann packst du einfach die ID_WKG direkt in die Personen-Tabelle. Tabelle: Personen
    ID_Person
    P-Name
    P-Vorname
    P-Geburtsdatum
    ....
    ID_WKG

    Grüße aus Rostock
    Wolfgang
    (Netwolf)

    • Antwort von nach 22 Stunden 0 hilfreich
      Re^2: Problem mit DB-Design

      diese Tabelle ist OK, du solltest allerdings immer
      Unterstriche statt Bindestriche verwenden.

      Ja stimmt, danke für den Tipp...

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!