Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage aus dieser Tabelle ?

Begonnen von Hellfire3004, Mai 21, 2013, 16:12:44

⏪ vorheriges - nächstes ⏩

69bruno

ZitatEs sind bereits mehr als 400 Spieler(Tabelle 'Namensliste' mit AutoWert als Primärschlüssel), aber nur die ersten 9 Plätze pro Turnier bekommen eine Punktewertung.
Und das ist unabänderbar ? Könnte nicht irgendwann der Wunsch bestehen, dass nur 6 Plätze Punkte erhalten oder vielleicht 15 ???

ZitatNein, immer nur 1 Turnier.
Und es kann nie und nimmer vorkommen, dass ein Turnier an zwei Tagen stattfinden muss, weil es nicht beendet werden konnte ???

ZitatWie ich das sehe, ist das genau meine Tabelle 'Final Table Ergebnisse'
Referenzfelder = Turnierdatum & Platz 1 ... Dazu noch ein Feld Punkte
Hier verweise ich auf die Antwort von MzKlMu.

Und der Vorteil ist halt, dass Du bei der gewählten Struktur eben doch jede Änderung übernehmen könntest, ohne die Struktur zu ändern.  8)
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

Hellfire3004

ZitatErgebnisID      TurnierId     SpielerID       Punkte   Platz
        1                 1                  1            200          3
        2                 1                  2            300          1

Nur zum Verständnis...
in meinem Fall also:

ErgebnisID = AutoWert ?   (Neues Feld als PS?)
TurnierID   = Turnierdatum ?
SpielerID   =  Spielername ?
Punkte       = PunktePlatz  x ? (Nur 1 Feld anstatt bisher 9 Felder für Punkte)
Platz          = Platz ? (Nur 1 Feld anstatt bisher 9 Felder für Plätze)

69bruno

 ;D
Bis auf Kleinigkeiten ist es das.

Aber sowohl Datum als auch Name eignen sich nicht für eine ID.
Zusätzliches Autowertfeld als PS und fertig.

Punkte und Platz tatsächlich nur ein Feld !
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

Hellfire3004

Nein, die Turnierstruktur bleibt und ist seit Jahren immer auf 1 Turnier pro Tag (jeweils Mi + Fr + So) festgelegt. Auch das Turnier selber ist immer so geplant, dass das Turnier am selben Tag beendet wird. Und für unsere interne Punktebewertung bekommen nur die ersten 9 Plätze Punkte, ist auch so gewollt  8)

Hellfire3004

#19
 ;D

Soweit so gut, hab jetzt nochmal komplett von vorne angefangen mit einer Tabelle 'Namensliste' (ID = AutoWert) (Spielername=Text).
Dazu hab ich eine normalisierte Tabelle erstellt wie oben angegeben. Nun stellt sich aber folgendes Problem für den User später.

Das Formular hab ich im Anhang kurz dargestellt...
Problem 1: Der User muß nun bei jedem Datensatz das Datum, die Platzierung und die Punkte erneut eingeben. Dabei könnten leicht Fehler unterlaufen.

Lösung ?  : Kann ich hier 9 Kombi-Felder benutzen für die jeweilige Platzierung mit Beschriftung (Platz 1, Platz 2 usw.) ?
Es sollte so aussehen wie in Bild 2... allerdings geht nicht, da hier der Wert aus der obersten Zeile (Spielername, Platz, Punkte) dann für alle unteren gleichzeitig mit ausgefüllt wird. (Problem: gleiches Steuerelement)...

Falls das nicht geht, und man muss es so wie in ff.jpg eingeben, dann wäre ein Unterbericht optimal, wo man gleich nach Eingabe des Datensatzes die eingetragenen Werte sieht, sodass man sich daran orientieren kann...is das machbar ? Wenn ja, wie ?

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

solange Du Dich nicht durchringen kannst, die gesamten Tabellen zu normalisieren, wird das Ganze nix...

Hellfire3004

#21
Schon erledigt  ;) Klappt aber mit dem Bericht nicht wie ich das will... Der Bericht zeigt immer nur den jeweiligen Datensatz an, nicht den gesamten Bericht.

Für den Endbenutzer wäre es sinnvoll, wenn er direkt nach Eingabe des Datensatzes im nächsten Datensatz den Bericht mit allen vorher eingegebenen Daten angezeigt bekommt  ;)

Habs selber hinbekommen (mit einem Unterbericht in Kombination mit einem Aktualisierungs-Button)
Bild Unterbericht  ;D

[Anhang gelöscht durch Administrator]

Hellfire3004

#22
Jetzt komm ich zu neuen Problemen:

1.Platzierung muss ich selber eingeben
2.Punkte muss ich selber eingeben

Lösung 1 ? : Platzierung sollte automatisch beim 1.Datensatz = 1 sein, fortführend bis Platz 9 und übertragen werden... Bei Datensatz 10 sollte er wieder bei 1 anfangen. (Datensätze 1-9 sind für das jeweilige Turnierdatum bestimmt, 10-18 sind dann für das nächste Datum usw...)

Lösung 2 ? : Punkte sollten in Abhängigkeit vom Datum angezeigt und übertragen werden (Erkl.: Mittwoch & Sonntag anderes Punkte-System wie Donnerstag & Freitag)

Ist das machbar oder muss ich das Formular so lassen ?

69bruno

ZitatLösung 1 ? : Platzierung sollte automatisch beim 1.Datensatz = 1 sein, fortführend bis Platz 9 und übertragen werden... Bei Datensatz 10 sollte er wieder bei 1 anfangen. (Datensätze 1-9 sind für das jeweilige Turnierdatum bestimmt, 10-18 sind dann für das nächste Datum usw...)
Wohin sollen Platz 1 - 9 übertragen werden ?

Grundsätzlich könnte das Feld "Platz" auch wegfallen, denn anhand der Punkte sollte klar werden (berechnet) wer welchen Platz hat.
Irgendwie keimt in mir aber der Verdacht, das die 400 Teilnehmer durch die DB in verschiedene Turniere aufgeteilt werden sollen und immer nur 9 Spieler ein Turnier bestreiten. Ansonsten verstehe ich deine Anmerkung
Zitat10-18 sind dann für das nächste Datum usw...)
nicht.

ZitatLösung 2 ? : Punkte sollten in Abhängigkeit vom Datum angezeigt und übertragen werden (Erkl.: Mittwoch & Sonntag anderes Punkte-System wie Donnerstag & Freitag)

Da bin ich aber interessiert......
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

DF6GL

Hallo,

vielleicht hab ich mich noch nicht klar genug ausgedrückt.    ::)    Deshalb:


Wirf diese Konstruktion in die Tonne und beginne noch mal von vorn, indem erst die Datenzusammenhänge analysiert und daraus normalisierte Tabellen erzeugt werden.

Mit Formularen und Auswertungen beschäftigt man sich erst danach.   8)



Hellfire3004

#25
ZitatWohin sollen Platz 1 - 9 übertragen werden ?
Aufgrund der normalisierten Tabelle ergibt es sich einfach, dass Datensatz 1-9 für ein Datum steht.
Und dahin wirds dann ja übertragen. (Bild tabelle.jpg)

Bis jetzt muss ich die Punkte noch manuell eintragen, schön wäre es natürlich, wenn aufgrund des Turnierdatums automatisch die richtigen Punkte ermittelt werden, und sich daraus dann der Platz ergibt (oder andersrum, is egal)

Zitatund immer nur 9 Spieler ein Turnier bestreiten
Nein, es sind zwar unterschiedlich viele Spieler am Start (zwischen 30 u. 100), aber für unsere interne Punktewertung (die ich bisher in Excel berechne) bekommen nur die ersten 9 Spieler Punkte.

ZitatWirf diese Konstruktion in die Tonne und beginne noch mal von vorn, indem erst die Datenzusammenhänge analysiert und daraus normalisierte Tabellen erzeugt werden
Hab doch bereits neu angefangen, und das ist mein Ergebnis, falls diese Tabelle auch falsch sein sollte, bitte helft mir  ;)

Folgende Fehlermeldung kommt, wenn ich auf das kleine + klicke, das links vor jedem Datensatz steht  ???
ZitatDieser Ausdruck ist falsch eingegeben, oder er ist zu komplex, um ausgerechnet zu werden. Beispielsweise kann ein numerischer Ausdruck zu viele komplizierte Elemente enthalten. Vereinfachen Sie den Ausdruck, indem Sie Teile des Ausdrucks Variablen zuweisen.

[Anhang gelöscht durch Administrator]

69bruno

Ok,
die Punkte musst Du dann gar nicht mehr in die Tabelle schreiben. Anhand des Datums und des Platzes kann man das in einem Bericht oder Formular speichern. Die automatische Platzvergabe würde ich nicht empfehlen, aber auch das wäre per VBA in einem Eingabeformular möglich.

Wenn Du mehr Hilfe möchtest, dann nimm die DB mit wenigen Testdaten, speicher sie in einem älteren DB-Format und stell sie zur Verfügung, erst dann kann man sehen, was Du genau hast, ob die Beziehungen stimmen und was man machen kann, um es ans laufen zu bringen.
If Brain <= requestoutofPost then
  PostonForum "Ich verstehe Dein Problem nicht....."
Else
  PostonForum "Denk erst mal über die Normalisierung nach......"
End If

Hellfire3004

#27
Zitatspeicher sie in einem älteren DB-Format

Wie geht das ? Wenn ich auf "Datenbank speichern als" gehe, kann ich es nur als "Microsoft Access Datenbank" speichern. (896kb)
Ich arbeite mit Access 2010
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Habe die Daten von 11.01.2013 - 28.05.2013 eingetragen, Tabelle funktioniert auch, Abfrage klappt und somit bekomme ich meine gewünschte Rangliste  ;D
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nur, wie oben schon gesagt, wäre es noch besser, wenn man das anderst eingeben könnte (so können zu viele Fehler passieren) ?!