collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 48
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13632
  • stats Beiträge insgesamt: 61216
  • stats Themen insgesamt: 8356
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Formular für Turnierverwaltung  (Gelesen 2245 mal)

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1409
Re: Formular für Turnierverwaltung
« Antwort #15 am: Januar 20, 2017, 17:37:43 »
Hallo Klaus,
Sehe ich genauso
Zitat
@Dille
Befolge Klaus' Bitte und sende deinen Versuch meine Vorschläge umzusetzen.
Ich habe da übrigens noch einen? Fehler drin; - es fehlt der eindeutige
Mehrfelder-Index in der Zwischentabelle.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline dille999

  • Newbie
  • Beiträge: 22
Re: Formular für Turnierverwaltung
« Antwort #16 am: Januar 21, 2017, 14:05:47 »
Hallo, ich habe es nochmals probiert und kriege es nicht so hin wie Du. Der einzige Unterschied zu Deiner Version ist das neue Formular, bei dem ich versucht habe, über Deine Beschreibung das gleiche Ergebnis zu erzielen. Aber bislang erfolglos. Zum Schluss habe ich Deine Werte (ohne zu Wissen woher diese stammen) per copy and paste unter Daten kopiert. Komme ebenfalls nicht auf Dein Formular. Es schreibt nicht einmal einen Namen irgendwo rein, geschweige macht es ein neues Kombifeld auf (aber das hast Du denke ich mal mit VBA gelöst, oder?).

Grüße Dille
 

Offline crystal

  • Access-Profi
  • **
  • Beiträge: 360
Re: Formular für Turnierverwaltung
« Antwort #17 am: Januar 21, 2017, 16:13:35 »
Hallo Dille,

das einzige Formular, das in der DB so funktioniert wie erwartet, ist frmTurniere, denn hier kannst du zu einem Turnier Spieler auswählen und zuordnen. Da ist auch nichts mit VBA gemacht, sondern nur über die Verknüpfung Turnier-Spiele.

Andere Formulare haben Fehler (Spieler: falscher Verweis auf UFo bzw. fehlendes UFo).

Im Bericht Spieler-Turnier werden natürlich nur die IDs angezeigt, weil ja auch nichts anderes ausgewählt wurde (wie Turniername, Spielername).

Sorry, aber die DB, so wie ich sie aus deiner letzten Meldung heruntergeladen habe, ist teilweise Schrott und sollte erstmal korrigiert werden.

lg
crystal

Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!
 

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1409
Re: Formular für Turnierverwaltung
« Antwort #18 am: Januar 21, 2017, 16:47:04 »
Hallo Dille,
Habe jetzt nur kurz draufgeschaut, aber es ist wohl so, dass du das Prinzip,
das hinter den ID/ID_F Felder steckt noch nicht verstanden hast.
Vielleicht schaust du dir das angehängte Script dazu an. Es reicht erstmal
wenn du nur bis zur 2. Normalform kommst, und das ist schon 'ne Menge Stoff.

Du siehst im Beziehungsfenster ja den Zusammenhang, dadurch erkennt Access
welche DS zusammengehören, und filtert damit so zu sagen, z.B. bei UFon, die
passenden DS heraus, ohne das du dich darum kümmern musst.
Auf der Oberfläche (Formulare) werden diese Schlüsselfelder in den meisten Fällen
ausgeblendet, da sie für den Anwender irrelevant sind. Sie sollten aber in allen
Abfragen (DS-Herkünften) enthalten sein.
Also in deinem Fall, muss in der Abfrage für das ufoSpieler2 auch die SpielerID_F 
vorhanden sein. Du hast da gar keine Datenherkunft eingetragen. Da kann
Access dann auch nichts anzeigen (weiss ja nicht was), geschweige denn neue
Eintragungen vornehmen/speichern.
Trage also in die Datenherkunft die Zwischentabelle ein (Spieler-Turnier). Dann
sollte das schon funzen.

Bis zu dieser "Version" ist noch kein VBA nötig. Wie gesagt, das wird alles nur über
die Schlüsselfelder gesteuert.
A propos VBA (s.u.), habe noch ein bisschen dran gearbeitet; - neue Version anbei.
Änderungen/Ergänzungen:
 - Tabelle "Spieler-Turnier" umbenannt in "SpielerInTurnier" (wegen Sonderzeichen "-")
 - Den erwähnten, vergessenen Mehrfelder-Index in dieser Tabelle eingerichtet.
 - Das Formular Spieler um ein entsprechendes UFo ergänzt, in dem die Turniere des Spielers
   angezeigt bzw. zugeordnet werden können; - analog zum Form Turniere.
 - Das Form Turniere um die früher schon einmal angesprochene Lösung mit List-Feldern
   ergänzt.
Hier kommt VBA dann ins Spiel (s.o.).
Die Vorteile aus meiner Sicht:
    - durch die Mehrfachauswahl der Listfelder können gleichzeitig mehrere Spieler
      für ein Turnier eingetragen werden bzw. abgesagt werden (> <).
    - es werden in der linken Liste nur die Spieler angezeigt, die noch nicht
      eingetragen sind. Dieses verhindert den Fehler, der im UFo auftritt, wenn man
      versucht einen Spieler zweimal einzutragen. Die Behandlung dieses Fehlers
      habe ich aber auch implementiert.

Im Moment arbeiten UFo und Listenfelder völlig synchron, will sagen du kannst
beides parallel verwenden. An deiner Stelle würde ich mich aber für eine der beiden
entscheiden. Die dann nötigen Änderungen sind (wohl) zum grössten Teil im Code
bereits dokumentiert.
Bitte versuche weitere Fragen etwas präziser zustellen bzw. beschreibe genauer was
du versucht hast.

gruss ekkehard

--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1409
Re: Formular für Turnierverwaltung
« Antwort #19 am: Januar 21, 2017, 17:03:40 »
Hallo crystal,
Zitat
ist teilweise Schrott und sollte erstmal korrigiert werden.
Das ist in etwa das, was Eberhard in seinen, von dir so ungeliebten Kommentaren,
manchmal ausdrückt, - nur konstruktiver.  :P

@Dille
Die Berichte haben ich mir noch gar nicht angeschaut. Lass uns erstmal die Baustelle
"Formulare" zu Ende bringen. Denn für Berichte halte ich das Verständnis der Tabellen-
Beziehungen bzw. der Schlüsselfelder für noch wichtiger. Da kommen dann ja auch
u.U. "komplexere" Abfragen (z.B. mit Gruppierung) zum Einsatz. Evtl. sollen später
auch noch Turnierergebnisse o.ä. dazu kommen.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline crystal

  • Access-Profi
  • **
  • Beiträge: 360
Re: Formular für Turnierverwaltung
« Antwort #20 am: Januar 21, 2017, 17:18:32 »
Hallo,
mit der überarbeiteten DB-Version ist meine vorige Antwort z.T. hinfällig geworden. Danke Ekkehard!

lg
crystal

PS: Anbei eine DB-Version, die auch die Berichte enthält.
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!
 

Offline crystal

  • Access-Profi
  • **
  • Beiträge: 360
Re: Formular für Turnierverwaltung
« Antwort #21 am: Januar 21, 2017, 17:23:11 »
Hallo Ekkehard,

keine OT-Kommentare mehr.
Zitat
Das ist in etwa das, was Eberhard in seinen, von dir so ungeliebten Kommentaren,
manchmal ausdrückt, - nur konstruktiver.  :P
Aber danke für das Lob (was vermutlich ein Fehler war...)

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!
 

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1409
Re: Formular für Turnierverwaltung
« Antwort #22 am: Januar 21, 2017, 17:41:05 »
Da hast du mich aber völlig missverstanden, das war genau umgekehrt gemeint.
Ich korrigiere:
Zitat
Das ist in etwa das, was Eberhard in seinen, von dir so ungeliebten Kommentaren,
manchmal ausdrückt, - nur sind seine konstruktiver.  :P
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline crystal

  • Access-Profi
  • **
  • Beiträge: 360
Re: Formular für Turnierverwaltung
« Antwort #23 am: Januar 21, 2017, 17:44:08 »
Hallo,
ja - manchmal, aber immer öfter...
lg
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!
 

Offline dille999

  • Newbie
  • Beiträge: 22
Re: Formular für Turnierverwaltung
« Antwort #24 am: Januar 21, 2017, 18:41:35 »
Nur ganz kurz zur Normalisierung. Turniere und Spieler einzeln einzupflegen ist ja doppelt gemoppelt und fehleranfällig. Darum machen wir ja eine m:n Beziehung, die alle Spieler mit allen Turnieren in Relation setzt. Darum habe ich die Zwischentabelle erstellt. Ich hoffe, dass ich soweit noch alles richtig denke, aber wer weiß... (und es sind sicherlich noch einige Fehler drin, keine Frage. Ganz typisch: Die m:n Relation als Text statt als LI, wie gesagt, lange raus aus dem Thema).

Mit ging es nur um das Formular, da habe ich die ganze Zeit dran rumgewerkelt und habe es nicht rekonstruieren können. In der letzten von mir hochgeladenen Version habe ich dann alles nochmals auf Anfang gelöscht und die Datenwerte aus Deinem funktionierenden Formular eingefügt. Aber auch ohne Erfolg. Bei mir steht jedenfalls im ufoSpieler2 bei den Daten zum Kombifeld SpielerID_F als Steuerelementinhalt und bei Datensatzherkunft:
SELECT S.SpielerID, ([s].[Vorname]+" ") & [s].[Nachname] AS KName FROM Spieler AS S;Müsste so auch bei Euch sein...

Also was habe ich gemacht?
Ich habe die Tabelle Spieler-Turnier geöffnet. Dann auf "Erstellen" "Formularentwurf". Die Datensatzquelle auf "SPieler-Turnier" gestellt. Daraufhin ein Kombinationsfeld eingefügt. Im Dialog angegeben, dass "Das Kombifeld soll die Werte einer Tabelle oder Abfrage entnehmen". Weiter. Als ausgewählte Felder habe ich dann den Vornamen gewählt. Weiter. Keine SOrtierung angegeben. Weiter.
Toll! Nun zeigt mir das Ding die gespeicherten Namen an, nicht die Einträge aus Spieler-Turnier... Zurück zu den Eigenschaften... Unter Steuerelementinhalt stand nichts drin, habe hier dann SpielerID_F angegeben.
Unter Datensatzherkunft steht dann bei mir: SELECT [Spieler].[SpielerID], [Spieler].[Vorname] FROM [Spieler];Also auch ganz anders. Copy von deinem Formular in mein Formular und die Zeile ersetzt durch:
SELECT S.SpielerID, ([s].[Vorname]+" ") & [s].[Nachname] AS KName FROM Spieler AS S;Und das Ergebnis sehr ihr. Es funktioniert nicht obwohl ich schon so gut wie alles 1:1 kopiert habe...
 

MANN... und warum ist mein halbes Post nun durchgestrichen? Leide wohl an völliger IQ-Losigkeit in Paarung mit der Einbildung, dass ich so was hinkriegen könnte..

PS: By the way: mit [s] steuert man das Durchstreichen folgender Zeichen. Da dieses Zeichen im Code vorkam, wurde mein halbes Posting durchgestrichen. Fehler erkannt und gebannt. Sorry dafür.
« Letzte Änderung: Januar 21, 2017, 19:02:24 von dille999 »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6625
Re: Formular für Turnierverwaltung
« Antwort #25 am: Januar 21, 2017, 18:52:47 »
Hallo,
und was willst Du uns jetzt mit Deinem neuen Post sagen ?
Und welchen Informationsgehalt hat jetzt der durchgestrichen Text ?
Der sich jetzt noch nicht mal richtig lesen lässt. Und wenn man ihn nicht lesen soll, hättest Du diesen auch gleich löschen können.
Gruß
Klaus
 

Offline dille999

  • Newbie
  • Beiträge: 22
Re: Formular für Turnierverwaltung
« Antwort #26 am: Januar 21, 2017, 19:04:05 »
Entschuldigung. Musste ihn überarbeiten wegen der in PS: erwähnten Problematik.
Habe ich erst zu spät erkannt und war nicht vorsätzlich.

Was ich damit sagen will: Ich versuche die Erstellung des Formulares zu rekonstruieren und habe den Weg geschrieben wie ich vorgegangen bin. Das habe ich gemacht, damit Ihr, wenn Ihr soviel Geduld und Verständnis aufbringt, mir sagen könnt: "Also so geht das gar nicht, sondern so und so und so. Und das darfst du auch nicht drücken sondern ganz anders." Weil ich hoffe, dass ich so verstehen kann wies funktioniert. Sorry
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6625
Re: Formular für Turnierverwaltung
« Antwort #27 am: Januar 21, 2017, 19:16:51 »
Hallo,
wie bereits erwähnt, solltest Du Deine nicht funktionierende Version (möglichst als MDB) hier hochladen. An Hand dieser DB kann man Dir dann erklären was da falsch läuft. Das dürfte der einfachste Weg sein.
Gruß
Klaus
 

Offline crystal

  • Access-Profi
  • **
  • Beiträge: 360
Re: Formular für Turnierverwaltung
« Antwort #28 am: Januar 21, 2017, 19:36:52 »
Hallo,

es macht natürlich schon Sinn, Spieler und Turniere in zwei separaten Tabellen zu halten, denn:
1. kannst du so für ein Turnier verschiedene Spieler auswählen und
2. sehen, welcher Spieler an welchen Turnieren teilnimmt.

In der letzten DB, die ich hochgeladen habe, kannst du im Formular frmTurniere
1. neu Turniere anlegen UND
2. den Turnieren Spieler zuordnen.

Außerdem kannst du im Formular Spieler genau das andere machen, nämlich einen Spieler auswählen und ihn Turnieren zuordnen bzw. anschauen, an welchen Turnieren er teilnimmt.

Die Ergebnisse deiner Zuordnungen kannst du auch in den Berichten sehen.

Was brauchst du mehr?

Im Prinzip geht das so:
1. Du erstellst ein Formular, in dem z.B. ein Spieler pro Zeile dargestellt wird.
2. Dieses Formular nennst du ufoSpieler, weil es später ein Unterformular werden soll.
3. Im Turnier-Formular platzierst du ein Unterformular-Steuerelement, benennst als Datenherkunft dein Ufo aus Schritt 1 und 2 und verknüpfst beide.
4. So "weiß" das Turnier-Formular, dass die Zeilen des Unterformulars zum betreffenden Turnier gehören.
5. Die Tabelle "SpielerInTurnier" dient dazu, alle erdenklichen Kombinationen von Spielern und Turnieren zu speichern (aber natürlich nur diejenigen, die du ausgewählt hast).
6. Die Tabelle "SpielerInTurnier" ist n:m, weil sie gleichzeitig auch die Information "TurnierUndTeilnehmendeSpieler" enthält. n Spieler nehmen an m Turnieren teil, an m Turnieren nehmen n Spieler teil.
7. Das kann man nur schwer in einem Formular darstellen, deshalb gibt es zwei: eines stellt im Kopf EIN Turnier dar (Ort, Zeit etc.) und darunter alle Spieler. Ein anderes stellt im Kopf die Daten EINES Spielers und darunter alle Turniere dar, an denen er teilnimmt.
8. Die beiden Formulare stellen also jeweils 1:n-Beziehungen dar: EIN Turnier, n Spieler bzw. EIN Spieler, n Turniere.
9. Der "Trick" besteht nur darin, in das "1-Formular" ein Unterformular aufzunehmen, das die "n-Seite" darstellt (Steuerelement "Unterformular").

Access ist nicht Excel.

lg
crystal

PS: schau dir mal meine DB aus Antwort #20 an.

Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!
 

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1409
Re: Formular für Turnierverwaltung
« Antwort #29 am: Januar 21, 2017, 21:42:40 »
Hallo,
@crystal
Zitat
9. Der "Trick" besteht nur darin, in das "1-Formular" ein Unterformular aufzunehmen, das die "n-Seite" darstellt (Steuerelement "Unterformular").
Und wie willst du damit die Zwischentabelle befüllen? In meinem Beispiel, und
auch bei dir, sind die UFoe an diese Tabelle gebunden.

@Dille
Zitat
Nur ganz kurz zur Normalisierung. Turniere und Spieler einzeln einzupflegen ist ja doppelt gemoppelt und fehleranfällig.
Natürlich musst du die einzeln erfassen, sind doch zwei Entitäten.
Zitat
machen wir ja eine m:n Beziehung, die alle Spieler mit allen Turnieren in Relation setzt. Darum habe ich die Zwischentabelle erstellt.
O.K., wichtig dabei eben die Relationen zwischen den Schlüsselfeldern. Die sollten
jetzt aber auch in allen Versionen richtig eingestellt sein, inkl. RI.

Die Datenherkunft des Kombis
SELECT [Spieler].[SpielerID], [Spieler].[Vorname] FROM [Spieler];ist schon o.k. so. Ich hatte nur den Nachnahmen mit aufgenommen und zu einem
Feld verbunden. Irgendwann hast du ja vielleicht mal gleiche Vornamen.

Dein Problem in deiner letzten Version ist, dass das UFo keine Datenherkunft hat.
1. Öffne das UFo (ufoSpieler) und wähle dort unter "Datensatzquelle" die Tabelle
"SpielerInTurnier" aus. -> schliessen
2. Öffne das frmTurniere und setze den Focus auf das UFo-Steuerelement (ufcSpieler)
2a. Wähle als Herkunftsobjekt das "ufoSpieler" aus.
2b. Klicke auf die ... -es öffnet sich ein Assistent. Im linken Dropdown wählst du
nun das Feld "TurnierID" und im rechten "TurnierID_F" aus -> bestätigen.
(Siehst, hier tauchen die Schlüselfelder wieder auf)
Wenn du das Form jetzt anzeigst, sollten im UFo auch die Turniere der Spieler
angezeigt werden.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.