Hallo,
ich habe eine Datenbank aufgebaut in der über eine Einstellungstabelle (tblEinstellung) mehrere Wettkämpfe definiert werden können.
Nun habe ich eine Tabelle (tblTeilnehmer) mit den Teilnehmern wo Daten wie Name, Geburtsdatum, etc. drinstehen, und eine Tabelle mit den Ergebnissen für die Wettkämpfe (tblWettkampf).
Was ich brauche ist eine Abfrage die mir folgendes auflistet:
TeilnehmerID, Teilnehmername, WettkampfID, Wettkampfnahme, Wettkampfergebnis.
Die Zusammenfügung aus tblTeilnehmer und tblWettkampf verstehe ich und kann diese über ein RIGHT JOIN bzw. LEFT JOIN so verknüpfen.
Was mir jetzt fehlt ist, dass in der Abfrage auch schon die WettkampfIDs so verknüpft sind, dass diese beim Anfügen neuer Teilnehmer sofort angezeit werden, also
TeilnehmerID, Teilnehmername, WettkampfID, Wettkampfnahme, Wettkampfergebnis
1 Max Mustermann, 1, Fechten, noch keins
2 Micky Mouse, 1, Fechten, noch keins
1 Max Mustermann, 2, Turmspringen, noch keins
2 Micky Mouse, 2, Turmspringen, noch keins
Welche Verknüpfungsart muss ich hier wählen?
Alternativ könnte ich das auch als Anfüge-Abfrage lösen, aber die Frage ist geht das auch in einer Abfrage? Zumal ich denke dass bei einer Anfüg-Abfrage dann auch eine Aktualisieren- und Lösch-Abfrage notwendig wird, falls ein Teilnehmer gelöscht wird oder einfach nur mal sein Name falsch geschrieben wurde.
Gruß
Hallo,
befürchte, Du bist etwas auf Irrwegen....
Vor Abfragen und Auswertungen ist die Tabellenstruktur zu normalisieren (und damit auch Beziehungen mit ref. Integrität zu definieren).
als minimale Konfiguration:
tbl_Wettkämpfe
WKID (PK, Autowert)
WK_Name (Text)
.
.
tbl_Teilnehmer
TNID (PK, Autowert)
TN_Vorname (text)
TN_Nachname (Text)
TN_Strasse (Text)
TN_PLZ (Text)
TN_Ort (Text)
.
.
.
tbl_TeilnehmerWettkämpfe
TWID (PK, Autowert)
TW_TNID (FK, Long)
TW_WKID (FK, Long)
TW_Ergebnis (Long, bzw. Text) ' je nachdem, was ein "Ergebnis" sein soll
.
.
Beziehungen mit ref. Integrität:
tbl_Teilnehmer ---1:n--- tbl_TeilnehmerWettkämpfe ---n:1--- tbl_Wettkämpfe
Left/Right-Joins sind zunächst außer acht zu lassen.
Danach für jede Tabelle ein Formular. Je nach Sichtweise ein Hauptform mit Basis zu tbl_Teilnehmer, das mit einem UFO_Steuerelement das Endlosform mit Basis zu tbl_TeilnehmerWettkämpfe anzeigt.
ZitatWas mir jetzt fehlt ist, dass in der Abfrage auch schon die WettkampfIDs so verknüpft sind, dass diese beim Anfügen neuer Teilnehmer sofort angezeit werden,
Sowas brauchst Du nicht. Die Auswahl (Zuordnung) eines Wettkampfes geschieht über ein Kombifeld im Endlosform "frm_TeilnehmerWettkämpfe".
Zitatfalls ein Teilnehmer gelöscht wird
Einmal gültige Teilnehmer werden nicht gelöscht, es wird lediglich ein gelöscht-Merkmal in der Tabelle geführt.
Zitateinfach nur mal sein Name falsch geschrieben wurde.
Das kann durch einfaches Korrigieren des Vor-/Nachnamens geschehen. Ein Teilnehmer wird nur durch die ID (TNID) des Datensatzes definiert, nicht durch seinen Namen.
In dieser gesamten Konstellation sind keine besonderen Abfragen nötig, wenn man von den Datensatzherkünften der Kombifelder mal absieht. Auch die Datenherkünfte der Formulare können direkt auf den Tabellen basieren.
Hallo,
Ich befürchte, dass es damit noch nicht getan ist. Vermutlich werden auch noch
Tabellen benötigt, die verschiedene Disziplinen ins Spiel bringen.
gruss ekkehard
Hallo,
ich habe jetzt erstmal die Tabelle nach DF6GL's Vorschlag aufgebaut. Das ganze ist auch erstmal nur eine Datenbank um mein Problem und den Lösungsansatz zu verstehen.
Wo ich mir noch nicht ganz sicher bin ist wie ich den Formularaufbau machen muss.
Ich habe erstmal ein Formular für die Teilnehmer. Soweit ok.
Dann will ich ein Formular (Datenblattansicht) haben in dem ich alle Teilnehmer für alle Diszpilinen habe und dann dort nur noch die Ergebnisse eintragen will. Jeder Teilnehmer soll grundsätzlich an jeder Wettkampfart teilnehmen (vgl. 10-Kampf).
Gruß,
Sascha
Hallo,
eigentlich ist so ein Vorgehen eher nicht datenbank-gerecht. Da drückt Excel durch...
Wie auch immer, fülle mit einer Kreuzprodukt-Anfügeabfrage die Tabelle tbl_TeilnehmerWettkämpfe , um jeden Teilnehmer zu jedem Wettkampf zuzuordnen.