Hi,
ich weiß nicht ob ich hier richtig bin, oder ob mein Vorhaben mit Access gar nicht machbar ist.
Also:
Ich würde gerne eine Datenbank erstellen mit Fußballspielern die ihren Teams zugeordnet sind. Das ist schon mal mein erstes Problem. Ich kann zwar eine Tabelle mit verschiedenen Vereinen und eine mit den Spielern erstellen weiß aber nicht wie ich die einzelnen Spieler ihren Teams zuordne.
Weiter möchte ich ein Formular erstellen auf dem ich eine Formation anordne und über ein Kombinationsfeld einen Spieler für die jeweilige Position auswähle.
Sollte ungefähr so aussehen:
(http://www.fotos-hochladen.net/uploads/traumelfdqnrzeuj.jpg)
Die Fotos müssen nicht sein fürs erste, wenn man allerdings den Spielern Fotos zuordnen kann hääte ich auch damit kein Problem.
Hoffe mir kann jemand helfen.
Hallo Fußballfan,
du erstellst 2 Tabellen:
tblTeam: Team_ID, Teamname, Nation, DatumGründung,....
tblSpieler: Spieler_ID, Team_ID, Nachname, Vorname, DatumGeburt...
damit kannst du ein Hauptformular frmTeam (Datenherkunft tblTeam) erstellen, in dem die Teams erfasst werden; desweiteren erstellst du im Formular ein Unterformular frmTeam_UF (Datenherkunft tblSpieler). Die beiden Formulare werden über das Feld Team_ID verknüpft.
Somit kannst du Teams erfassen und zu jedem Team die Spieler.
Deine Aufstellungen kannst du wie angedeutet in einem Formular mit Kombifelder realisieren
Hierzu musst du eine Tabelle tblAufstellung : Auf_ID, DatumAufstellung, Spieler1, Spieler2.... erstellen
Gruß Oma
Ging ja Fix Oma danke ich mach das mal soweit und wenn was ist meld ich mich nochmal.
Hallo,
ein sehr ehrgeiziges Vorhaben :)
ZitatWeiter möchte ich ein Formular erstellen auf dem ich eine Formation anordne
Ich bin zwar kein Fußballfan aber soviel ich von der Sache 'verstehe', gibt es ja nicht nur eine Formation.
Somit könnte der Aufwand zur Erstellung ein klein wenig höher werden, wenn das Formular für diesen Zweck dynamisch gestaltet werden sollte.
Informationen welche Formation zur aktuellen Aufstellung zu wählen ist, KÖNNTE in der von oma empfohlenen
Tabelle
tblAufstellung hinterlegt werden, wenn eine Weitere Tabelle
tblFormation (For_ID, Formation) zur tblAufstellung 1:n verbunden wird.
Entsprechend der gewählten bzw. gespeicherten Info zur Formation KÖNNTEN dann die Dropdowns am Formular dynamisch positioniert werden.
....aber das klingt im Moment noch stark nach Zukunftsmusik :) ;)
Hallo Messi,
wenn du wirklich eine DB im Sinne von Recherchen entwickeln willst, muss die Sache mit der tblAufstellung, wie von Peter angedeutet, anders gestaltet werden. Mein Vorschlag war eine einfache Lösung nur so zum "Darstellen" von Aufstellungen.
Wennn es dir ernst ist, mache mal mit den ersten beiden Tabellen einen Anfang und berichte uns dann von deinen Fortschritten.
Vielleicht können wir dann das fertige Produkt den FC Bayern München anbieten (oder stehst du eher auf Barcelona) ;D ;D
Gruß vom Fan von Hansa Rostock :(
Gruß Oma
Hi Oma,
Ja es ist mir ernst, habe allerdings sehr geringe Access Kenntnisse, 1 Jahr in der Berufsschule.
Die ersten Tabellen hab ich jetzt erstellt. Also eine mit den Clubs und eine mit den Spielern.
Die Club-Tabelle sieht folgendermaßen aus:
Team_ID, Vereinsname, Nation.
Als Team_ID habe ich den Vereinsnamen mit unterstrich eingegeben: FC_Barcelona
Vereinsname natürlich FC Barcelona und Nation Spanien.
In der Tabelle Spieler siehts so aus:
Spieler_ID = AutoWert, Team_ID = Kombifeld mit dem Inhalt der Team_ID aus der Tabelle Clubs. Dann eben noch die Spielerinfos: Name, Vorname, Nationalität und Position.
So weiter bin ich noch nicht. Tabelleninhalte sind folgende: 1 Verein: FC Barcelona und 19 Spieler von Barcelona.
Nun zur Formationsdarstellung, hab ich eigentlich die möglichkeit da den Positionen die Bedingungen zuzuweisen das ich auf der Position Torwart auch nur einen Spieler mit der Position Torwart ausgewählt werden kann?
Und falls das über ein Kombifeld gemacht wird knn man das auch so einstellen das ein Spieler aus dieser Auswahlliste verschwindet sobald er einmal ausgewählt wurde?
Danke
PS: Ja ich steh mehr auf Barca. :)
Hallo Barca-Fan,
anbei erst mal einige Bemerkungen:
1. Als ID der jeweiligen Tabelle ist zweckmäßig (aber nicht zwingend) ein Autowert (oder ein selbstdefiniertes Zahlenfels statt ein String)
ZitatAls Team_ID habe ich den Vereinsnamen mit unterstrich eingegeben: FC_Barcelona
würde ich also so nicht machen.
2. zur Tabelle Spieler:
ZitatTeam_ID = Kombifeld mit dem Inhalt der Team_ID
a) Das Feld Team_ID ist einfach ein Zahlenfeld; ein Fremdschlüssel als Verweis auf den Primärschlüssel Team_ID in Tabelle Team.
Bitte kein Nachschlagefeld in der Tabelle Spieler! Richtigerweise erfolgt die Zuornung im Formular u. dann mit einem Kombifeld.
b) bitte keine reservierten Wörter (Von Access) benutzen; statt Name besser Nachname, Vorname, Nickname usw.
3.
ZitatNun zur Formationsdarstellung, hab ich eigentlich die möglichkeit da den Positionen die Bedingungen zuzuweisen das ich auf der Position Torwart auch nur einen Spieler mit der Position Torwart ausgewählt werden kann?
das ist mit etwas Aufwand realisierbar, aber zu bedenken.
Das würde bedeuten, jeder Spieler ist
immer nur auf eine Position einsetzbar u. das widerspricht doch einen flexiblen Einsatz, wie in der Praxis üblich. Im Prinzip würde nur die Position des Torwarts zu überprüfen sein, aber eine "richtige" Zuordnung sollte ja auch der Eingeber beachten.
ZitatUnd falls das über ein Kombifeld gemacht wird knn man das auch so einstellen das ein Spieler aus dieser Auswahlliste verschwindet sobald er einmal ausgewählt wurde?
wie gesagt, auch möglich, aber auch schon wieder mit "erhöhtem" Aufwand. Die Benutzer der DB sind dann doch keine "Blinden"
Oder anders gesagt: versuche erst mal ein ordentliches Datenmodell (sprich Tabellenaufbau) und überlege
später mögliche Kontrollmechanismen. Zum Aufbau einer zweckmäßigen "Aufstellungstabelle" sind verschiedene Varianten möglich, hängt von deinen späteren Auswertungswünschen ab!
Gruß Oma
OK Danke.
Eine Frage kann ich dir die Datei mal zusenden? Access 2003.
Oder würden dir Screenshots reichen? Nur damit du mal sehen kannst wie die Sache so aussieht?
Hallo,
komprimiere die DB und stelle sie doch einfach ins Forum; bei "Erweiterte Optionen"
Gruß Oma
Oh stimmt so gehts auch.
So hier ist die DB
[Anhang gelöscht durch Administrator]
Hallo Messi,
ok. schaue mir die Sache an u. mache 1. Verbesserungsvorschläge.
Habe heute meine Zeit fürs Forum ausgereizt, Antwort evt. heute Abend oder sonst am Wochenende.
Gruß Oma
In Ordnung, kein Probelm.
Ich versuch mal win bisschen was vielleicht komm ich selbst etwas weiter.
Wenn du Zeit hast schreibst deine Vorschläge einach rein.
Danke. :)
Hallo Messi,
ich habe mir die DB mal geholt und meine Version der Vorstellung eingebaut, bzw - umgebaut.
zur Erklärung:
Erst einmal habe ich alle Tabellen mit einem Primäschlüssel versorgt. Hinzugefügt die Tabellen tbl_Nationen, tbl_SpielerAufstellung, tbl_TeamSpieler und tbl_Position
In der tblNationen stehen - was sonst - die Nationen gesammelt, welche dann als 1:n in die Tabellen tbl_Spieler und tbl_Team referenziert werden.
tbl_Positionen enthält die Spielerposition - referenziert 1:n in die Tabelle tbl_TeamSpieler und nicht mehr auf tbl_Spieler, da es ja theoretisch sein kann,
dass ein Mittelfeldspieler bei einer Mannschaft im Sturm eingesetzt wird (glaube ich in meiner laienhaften Vorstellung über diesen Sport).
Dann habe ich in der tbl_Auf die Felder Spieler 1 bis Spieler 11 entfernt, dafür die Formation (z.B. 3-4-3) eingetragen und das betroffene Team als FK eingefügt.
Zu dieser Aufstellungstabelle gibt es dann die Referenz auf tblSpielerAufstellung in der dann zu einer definierten Aufstellung die Spieler zugeteilt werden.
Man KÖNNTE jetzt noch überlegen ob es Sinn macht in der tbl_SpielerAufstellung die Pos_ID mitzuschreiben, um festzustellen
in welcher Position ein Spieler in der jeweiligen Aufstellung eingesetzt war oder ist.
Aber die Entscheidung überlasse ich den Hufballerexperten ... ;D
Tja das Ganze dann gezipt und wieder hochgeladen steht sie da zur Begutachtung.... ;) ;)
Grüße
Peter
[Anhang gelöscht durch Administrator]
Baff... :D
Hi
Danke erstmal. Also was soll ich sagen Klasse super erstmal. Ich muss mich jetzt in die DB von dir erst einfinden, ist immer so wenn ich was nicht selbst gemacht hab. Aber dank deiner Erklärung wird das nicht so schwer sein.
Hab ein kleines Problemchen:
In den Formularen steht bei einigen Feldern: "#Name?"
In der Entwurfsansicht ist bei diesen Feldern dann oben in er Ecke die grüne Markierung. Gut das zeigt mir eben an das da ein Fehler drin ist. Muss ich da die Einstellungen bearbeiten? Ich vermute das es einfach eine fehlende "Verknüpfung" zu dem benötigten Feld ist oder?
Grüß dich,
ZitatIn den Formularen steht bei einigen Feldern: "#Name?"
Das kommt dadurch, dass sich die Datenherkunft, also die zu Grunde liegende Tabelle der Formulare geändert hat.
Richtig, die grüne Markierung zeigt an, dass es Fehlerinformationen dazuu gibt. Rechtsklick und dann auf die Raute mit dem Rufzeichen klicken zeigt dir die zugehörigen Fehler an.
Du wirst m.E. nicht umhin kommen den Fomularaufbau ganz neu zu machen und somit den neuen Gegebenheiten anzupassen.
Lass dir damit aber noch ein wenig Zeit - vielleicht hat
oma noch den einen oder anderen Vorschlag zum Datenmodell - der sollte
dann für die Formular-Neugestaltung schon umgesetzt sein um nicht nacharbeiten zu müssen.
p.s.,
Frage noch ... du arbeitest mit Access 2003? (Ist für die Formulargestaltung wichtig - damit's keine Brösel gibt, wenn ich dir aus Acc2007 was zukommen lasse)
EDIT:
Zur Veranschaulichung habe ich nochmals die DB reingestellt - mit einem neuen Erfassungsformular für Spieler.
[Anhang gelöscht durch Administrator]
Hi
OK Danke für die Infos.
Ja ich hab Access 2003.
Servus
Hallo,
habe gar nicht bemerkt, dass schon eine weitere Version vorliegt; aber egal - du wirst sicher aus beiden Versionen etwas "mitnehmen" können!
anbei einige Bemerkungen:
Feldaufbau tbl_Spieler:
zu den einzelnen Tabellen ist noch sorgfältig bzw. vom Auswertungsbedürfnis ausgehend, die Anzahl der Felder zu überlegen:
- In tbl_Spieler ist Position zu durchdenken, ich würde das nicht erfassen.
Manche Spieler spielen ständig variabel (Olic bein Bayern ist Stürmer oder Mittelfeldspieler) oder andere werden im Laufe der Zeit von Mittelfeldspieler zu Verteidiger umfunktioniert! Man könnte das dann ständig aktualisieren, macht aber beim flexiblen Einsatz der Spieler auch wenig sinn. D.h. Position gehört nur in Aufstellung!
- ich würde DatumBeginn und DatumEnde für Vertragsbeginn und Vertragsende einfügen; alle Spieler mit Datum in DatumEnde sind dann ehemalige Spieler des Vereins; ist doch auch interessant: eine Auswertung aller Spieler mit Vertragsdauer usw.
- weitere Felder: DatumGeburt, Fuß(links, rechts, beidbeinig), Nickname, Größe, .......
Zum Tabellenaufbau:
Zur Aufstellung ist zu bemerken, dass diese immer zu einem Zeitpunkt gilt. Nun ist zu überlegen, ob man eine Aufstellung mit einem Datum erstellt und diese dann immer überschreibt oder eine Hierarchie anlegt. So liegen zu einer Mannschaft verschiedene Aufstellungen zu verschiedenen Zeitpunkten vor. Man könnte also für eine Mannschaft die gesamten Saison verfolgen u. entsprechen auswerten (Häufigkeiten der Einsätze und Spielzeiten eines Spielers usw.
Zu überlegen dann noch die Felder: SpielzeitBeginn, SpielzeitEnde (für Berechnung der Auswechslung) ; Gegner, Spielart (Freundschaftsspiel, Meisterschaft, Pokal, CL...), Punkte, Tabellenstand....
Zum Beispiel:
Beispiel geht von Speicherung aller Aufstellungen für verschiedene Mannschaften aus!
Du kannst Spieler in frmSpieler oder in frmTeam ansehen/eingeben.
In frmTeam kannst du Mannschaften eingeben und/oder auch gleich die Spieler eingebn oder nur ansehen(muss dann noch eingestellt werden)
In frmAuf kannst du in einer Aufstellung immer nur Spieler aus der Mannschaft eingeben (Siehe Code); gleichzeitig werden im Kombifeld nur Spieler angeboten, die aktuell in Mannschaft sind (DatumEnde =NULL)
In einer Aufstellung kann ein Spieler nicht 2mal stehen (siehe Tabellenentwurf tbl_AufDetail bei Indizes)
Soweit erst einmal von mir, wollte nur einige Anregungen bzw. Vorschläge machen, da man das Ding entweder einfach oder auch sehr anspruchsvoll gestalten kann.
Wichtig ist, was du alles bezwecken, d.h. / erfassen / auswerten willst!!?
Gruß Oma
[Anhang gelöscht durch Administrator]
Hi
Danke auch an dich Oma ich werd mich mit euren beiden Vorschlägen mal auseinandersetzen und mich dann wieder melden.
Hallöchen,
Zitathabe gar nicht bemerkt, dass schon eine weitere Version vorliegt;
@oma ... uuuppsss
Ich habe ein wenig Zeit gefunden und habe daher das Beispiel von LeoMessi erstmalig umgegraben :)
Mein Vorschlag beruht auf dem Grundkonzept, der Grundidee des TO.
Die Anpassung / Änderung / Erweiterung der Tabellen stelt im Grunde einen Versuch/ein Muster für die Umsetzung dieser Grundidee ohne großartige Planung dar.
Normalisierung wurde in groben Zügen umgesetzt, wobei sicher noch die eine oder andere Sache zu diskutieren wäre. Leider fehlen hierzu aber auch die notwendigen Bedarfsbeschreibungen.
@LeoMessi
Du siehst wie rasch sich die Grundvoraussetzungen ändern können ein Formular zu erstellen ! :) !
Wichtig ist VOR jeder physischen Arbeit (also Tabellenerstellung, Abfragendefinition, Formular/Berichtsgestaltung) eine durchgehende, genaue und klar abgegrenzte Bedarfsanalyse zu machen.
Das Ergebnis dieser Analyse kann man dann in eine Art Szenario umlegen aus dem hervorgeht, was die DB bzw. die fertige Applikation zu leisten hat.
Mit den Inhalten des Szenarios erstellt man dann ein ERM und wandelt dieses - nach eingehender Prüfung auf Vollständigkeit, Widerspruchsfreiheit und Nachvollziehbarkeit der Datenflüsse - in
ein Relationenmodell um, an dem dann die Regeln der Normalisierung angewendet werden (Bestimmung der Primär und Fremdschlüssel, Verlegung von Feldern in andere Tabellen sowie Erstellung von etwaigen Zwischentabellen im Zuge der Anpassung dieses Datenmodells) bis zur Wahrung 3. Normalform. Im Zuge dieser Vorgänge werden auch die Feldnamen und die Tabellennamen bestimmt - hoffentlich kurz und bündig :)
Erst dann sollte man die gewonnen Ergebnisse in den physikalischen DB-Entwurf umlegen, also die Tabellen in einer DB anlegen.
Der nächste Schritt ist dann die Beziehungen zwischen den Tabellen herzustellen (und im Fall von Access die Beziehungen auf Wahrung der referenziellen Integrität einzustellen)
Nach der Eingabe von einigen Datensätzen zu Testzwecken können die wichtigsten Abfragen definiert, getestet und gespeichert wrden.
als Nächstes können nun die Formulare erstellt und zum Schluß etwaige notwendige Berichte erstellt werden.
Klingt alles ein wenig umständlich und fad, weil man eine relativ lange Zeit im Access noch gar nichts sieht. Aber eine ausführliche und gut durchdachte Planungsphase erspart eine Unmenge an vergeudeter Entwicklungszeit, wenn im Nachhinein Änderungen an den Tabellen, dem Fundament einer Applikation, vorzunehmen sind.
In diesem Sinne
Grüße
Perter