Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Golf Ergebnisse

Begonnen von HorstP, März 30, 2012, 10:26:04

⏪ vorheriges - nächstes ⏩

HorstP

Hallo Ekkehard und Bernie,

vielen Dank daß Ihr Euch meiner Probleme annehmt.
Durch die Formel von Ekkehard sind 80% meiner Probleme gelöst!!! (Es war doch ein Druckfehler in der Formel-Klammern fehlten).
Wenn wir jetzt noch die Vorgaben per Rechenschema auf die Bahnen verteilen könnten wäre es perfekt.
Die Bahnen sind nach Schwierigkeit durchnumeriert. 1 schwierigste - 18 leichteste. Nun muß die Vorgabe (1 bis 60) darauf verteilt werden. (bei Vorgabe 1 erhält der Spieler nur auf der schwersten Bahn einen Schlag mehr. Bei Vorgabe 60 erhält der Spieler auf den 6 schwersten Bahnen je 4 und auf den anderen 12 je 3 Schläge mehr usw.)

Ist für Bernie nichts Neues.

Wie kann man dies mathematisch lösen?

Die prof. Software druckt entsprechende Striche auf die Scorekarte. Kann man das so ähnlich lösen und die Striche zählen?

@Bernie
ich grüße Dich als "alten" Golfer.

Bernie110

Hallo,

anbei mein Vorschlag.

Einfach mal angucken.

Gruss
Bernie

Ps Hoffe der Rechner rechnet richtig :-)

[Anhang gelöscht durch Administrator]

Bernie110

Hallo,

ZitatWenn wir jetzt noch die Vorgaben per Rechenschema auf die Bahnen verteilen könnten wäre es perfekt.
Die Bahnen sind nach Schwierigkeit durchnumeriert. 1 schwierigste - 18 leichteste. Nun muß die Vorgabe (1 bis 60) darauf verteilt werden. (bei Vorgabe 1 erhält der Spieler nur auf der schwersten Bahn einen Schlag mehr. Bei Vorgabe 60 erhält der Spieler auf den 6 schwersten Bahnen je 4 und auf den anderen 12 je 3 Schläge mehr usw.)

Im Prinzip ganz einfach.

Hat ein Spieler z.B. HCP 18  und seine Platzvorgabe liegt bei  ( von HCP - 17,5  bis HCP 20 = 20 ) dann spielt er mit HCP 20
Das heisst. Ersteinmal muss ermittelt werden, welche Vorgabe der Spieler hat.

In meiner DB geht das automatisch, wenn man einen Spieler in einem Wettspiel anlegt bzw . auswählt.

Der Spieler hat dann an jedem LOCh (1-18) einen Schlag vor + an Loch mit der Vorgabe 1 + 2 nochmals einen weiteren, also  dann 2 Schläge vor.

Beispiel :

Hat ein Loch folgende Daten

Loch 1 = Par 4  = HCP 2

Dann hätte der o.g. Spieler nach o.g. Bewertung ja 6 Schläge um  Par  zuerreichen ( Netto-Par)
D.h. man gibt durch die Vorgabe dem Par einen neuen Wert..
Somit gilt wenn er 6 Schläge gespielt hat, hat er ein Errechnetes-Par erreicht = 2 Netto-Punkte

Die Netto-Puntke kannst du dann erneut nach Par = 2 Punkte  Boogey = 1 Punkt  Birdie = 3 Punkte usw . ermitteln.


Vielleicht findet auch ein pfiffiger Mensch eine Formel dafür, aber ich halt mich lieber an diese Methode :-)

Gruss
Bernie



Beaker s.a.

Hallo Bernie,
Reife Leistung, so eine DB mal eben so an ein zwei Tagen
nebenbei zusammen gestrickt, - aR-iE-eS-Pi-iE-Ci-Ti.
ZitatDie Netto-Puntke kannst du dann erneut nach Par = 2 Punkte  Boogey = 1 Punkt  Birdie = 3 Punkte usw . ermitteln.
Vielleicht findet auch ein pfiffiger Mensch eine Formel dafür, aber ich halt mich lieber an diese Methode :-)
Also mein Ausdruck funzt auch in einer Abfrage (Zeile zwischen den Leerzeilen)
SELECT
    S.Spieler_Name,
    WSE.Spieler_Vorgabe,
    WSE.Spieler_Anzahl_Schläge,
    GP.Par, GP.Loch_Vorgabe,
    IIf([Spieler_Vorgabe]>=[Loch_Vorgabe],[Wieviel_Vorgabe_je_Loch],0) AS Vorgabewirksam,
    [Vorgabewirksam]+[Par] AS Par_Richtig,
    [Spieler_Anzahl_Schläge]-[Par_richtig] AS Netto_Schläge,

    IIf(([Par_Richtig]-[Spieler_Anzahl_Schläge]+2)<0,0,([Par_Richtig]-[Spieler_Anzahl_Schläge]+2)) AS Netto_Punkte,

    WSE.Wettspiel_ID,
    WSE.Golfplatz_ID,
    WSE.Spieler_ID,
    IIf([Netto_Schläge]=0,1,0) AS Anzahl_Par,
    IIf([Netto_Schläge]=1,1,0) AS Anzahl_Boogey,
    IIf([Netto_Schläge]=-1,1,0) AS Anzahl_Birdie,
    IIf([Netto_Schläge]=-2,1,0) AS Anzahl_Eagle,
    IIf([Netto_Schläge]=-3,1,0) AS Anzahl_Albatross,
    WSE.Wettspiel_Datum
FROM Tbl_Spieler AS S
    INNER JOIN (Tbl_Wettspiel_Spieler_Ergebnis AS WSE
        INNER JOIN Tbl_Golfplatz_Löcher AS GP
        ON (WSE.Golfplatz_ID = GP.Golfplatz_ID) AND (WSE.Loch_Nr = GP.Loch_Nr))
    ON S.ID = WSE.Spieler_ID;

Hat bei mir das gleiche Ergebnis angezeigt.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Bernie110

Hi Ekkehard,

cool, ich wusste doch, es geht noch "einfacher" :-)

Das Einzige was noch unschön ist, dass man die Löcher von 1-18 je Spieler im Wettspiel auch noch mit erfassen muss.
Nicht unbedingt Anwender freundlich.
Was fällt dir dazu ein ? Eine Anfügeabfrage vielleicht ?

Gruss
Bernie

Beaker s.a.

Hallo Bernie,
Zitatcool, ich wusste doch, es geht noch "einfacher" :-)
Der Ausdruck lag doch vor, und die Operanden hast Du auch in Deiner
Abfrage drin; - hättest Du auch selbst drauf kommen können  ;)
ZitatDas Einzige was noch unschön ist, dass man die Löcher von 1-18 je Spieler im Wettspiel auch noch mit erfassen muss.
Nicht unbedingt Anwender freundlich.
Was fällt dir dazu ein ? Eine Anfügeabfrage vielleicht ?
Könnte man direkt nach Eingabe des Spielers/Teilnehmers machen.
Man muss dazu noch eine Hilfstabelle "tblLoecher" anlegen (1 Feld: LochNr; 18 DS von 1-18),
dann sollte es mit dieser Abfrage funzen
strSQL = "INSERT INTO Tbl_Wettspiel_Spieler_Ergebnis " _
                           & "( Wettspiel_ID, Golfplatz_ID, Spieler_ID, Spieler_Vorgabe, Loch_Nr ) " _
               & "SELECT WSE.Wettspiel_ID, " _
                           & "WSE.Golfplatz_ID, " _
                           & "WSE.Spieler_ID, " _
                           & "WSE.Spieler_Vorgabe, " _
                           & "L.LochNr "_
               & "FROM Tbl_Wettspiel_Spieler_Ergebnis AS WSE " _
                        & "INNER JOIN Loecher AS L " _
                        & "ON WSE.Loch_Nr = L.LochNr"

CurrentDb.Execute strSQL, DbFailOnError

Hab's nicht getestet, sollte klappen.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

HorstP

Hallo, hallo, hallo,

das lebe ich an IT Experten. Sie können sich in ein Problem verbeißen und sich daran berauschen. Vielen Dank daß Ihr Euch meines Problems so vehement annehmt. Danke.
Daß ich schon lange nicht mehr folgen kann ist wohl mein Problem. Vieleicht kann einer so nett sein und einem Laien (nach den Erfahrungen bisher einem absoluten!!) weiterhelfen?
Der letzte Stand der DB könnte evtl. helfen

Gruß

HorstP

und frohe Ostern!

Bernie110

Hallo Horst

hast du dir meine Db mal angesehen ?
Damit solltest du eigentlich alles machen können.

@Ekkard die Abfrage funktioniert nicht. Passiert gar nichts

Gruss
Bernie

Beaker s.a.

Hallo,
@Horst
Zitatdas lebe ich an IT Experten. Sie können sich in ein Problem verbeißen und sich daran berauschen.
Dabei bin ich wirklich kein Experte, deshalb ist so ein Verbeißen reiner Selbstzweck; - ich lerne dabei genauso viel
wie Du.
ZitatDaß ich schon lange nicht mehr folgen kann ist wohl mein Problem.
Tja, das ist jetzt Dein Zeitinvestment, das zu verstehen; - darfst aber gerne wieder nachfragen.

@Bernie
Zitat@Ekkard die Abfrage funktioniert nicht. Passiert gar nichts
Ja, die stimmte auch noch nicht; - war noch ein bisschen luftig  ;)
Hab's jetzt aber komplett:
Form = Frm_Wettspiel_Spieler
Private Sub Form_AfterUpdate()

    Dim strDatum As String
    Dim strSQL As String
   
    strDatum = Format(Me.txtWettspiel_Datum, "\#yyyy\-mm\-dd\#")

    strSQL = _
            "INSERT INTO Tbl_Wettspiel_Spieler_Ergebnis ( " _
                & "Wettspiel_ID, " _
                & "Golfplatz_ID, " _
                & "Spieler_ID, " _
                & "Spieler_Vorgabe, " _
                & "Wieviel_Vorgabe_je_Loch, " _
                & "Wettspiel_Datum, " _
                & "Loch_Nr ) " _
          & "SELECT " _
                & Me.txtWettspiel_ID & ", " _
                & Me.txtGolfplatz_ID & ", " _
                & Me.Kombinationsfeld3.Value & ", " _
                & Me.txtSpieler_Vorgabe & ", " _
                & Me.Wieviel_Loch_Vorgabe & ", " _
                & strDatum & ", " _
                & "L.LochNr " _
          & "FROM Tbl_Wettspiel_Spieler_Ergebnis AS WSE " _
                & "INNER JOIN Loecher AS L " _
                & "ON WSE.Loch_Nr = L.LochNr " _
          & "WHERE WSE.Spieler_ID = " & Me.Kombinationsfeld3.Value
   
    CurrentDb.Execute strSQL, dbFailOnError
   
End Sub

Damit werden nach Eingabe eines Teilnehmers 18 DS in Tbl_Wettspiel_Spieler_Ergebnis
angelegt; - jedenfalls bei mir.
Ich habe ein paar Controls umbenannt, - ich habe da immer Probleme damit, wenn
Control-Name = Feld-Name ist. Gibt bei mir immer wieder Probleme beim Ausführen
von SQL-Strings per VBA.
Version anbei.
hth
gruss ekkehard

[Anhang gelöscht durch Administrator]
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)