Neuigkeiten:

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

Mobiles Hauptmenü

Bitte um Hilfe bei einer Abfrage

Begonnen von AndySVW, März 08, 2024, 00:22:24

⏪ vorheriges - nächstes ⏩

AndySVW

#45
Hallo Ekkehard,

Also man kann ruhig 1 Punkt für einen Sieg nehmen und 0 Punkte für die Niederlage.
Es gibt ja dort keine Tabelle.
Aber wenn man Sieg und Niederlage statistisch festhalten möchte, dann 1 Punkt für einen Sieg und 0 Punkte für die Niederlage :)
Und ich bin echt begeistert, die DB läuft :)
Vielen vielen Dank nochmal für deine Mühen.

Wie immer ist da noch ein aaaaaber ;D.

Variante 1 Haken vorher setzen, spieler eingeben. BR Punkte eingeben und Sieger eintragen auch bei "neuen" Spielern kein Problem :)

Variante 2. Wenn ich einen neuen Spieler bei Spieler 1 und neuer Spieler bei Spieler 2 und den Rest also BR und Sieg eingeben will und dann den "neues Spiel" button klicke, kommt sofort ein Laufzeitfehler wieder.
 
Man braucht den "neues Spiel" button ja nicht zwangsläufig.
Mit Variante 1 geht es ja ohne Probleme :)
Und das ist es auch nicht wert, deshalb wieder keine Ahnung wie viel zeit zu investieren.
Und das musst du auch nicht.
Ich kann den "neues Spiel" button ja auch entfernen.

Aber wenn du sagst, nö ich hab den nicht umsonst gemacht.
Dann okay, wie gesagt bei "neuen Spielern" geht der "neues Spiel" button nicht. 

Und eine Frage oder bitte hätte ich noch, aber nur ... wenn es nicht zu viel Umstände macht.
Und zwar die Formatierung der Zahlen. Also die BRs. Kann man da punkte setzen nach den stellen ?
Also nicht 1000000 sondern 1.000.000

Aber die DB ist wirklich Großartig. Besser geht es wirklich nicht :)

Und ich habe noch eine Verständnissfrage.
Wenn ich die DB aufrufe, werden ja alle Spiele aufgelistet.
Was Klasse ist.
Dann gebe ich bei Spieler 1 z.B. andysvw ein, dann listet er mir alle Spiele von andysvw auf.
Finde ich auch Klasse.
Gebe ich bei Spieler 1 andysvw ein und bei Spieler 2 nightmares.
Werden alle Spiele aufgelistet zwischen andysvw und nighmares.
Auch Klasse :)
Aber wenn ich jetzt bei Spieler 2 nightmares das Feld leer mache (also kein Spieler drin)
Und bei Spieler 1 z.B. happy eingebe und dann Enter drücke, weil ich die letzten Spiele von happy sehen will.
Dann kommt nichts mehr.
Mach ich da was falsch ?

Anders gesagt, wenn ich nur einen Spieler eingebe bei Spieler 1 egal welchen und ich enter drücke, kann ich die letzten Spiele sehen von dem Spieler.
Aber sobald ich 2 Spieler eingebe und einen direkten Vergleich zwischen den beiden mache, kann ich danach nicht mehr eine Einzelabfrage von Spieler 1 machen.
Weil die Liste ist dann komplett leer.

Liegt es daran das ich da was falsch mache ? Oder fehlt da vielleicht ein clear button ?
Mit clear button meine ich, das die DB dann in die Ausgangskonfiguration kommt, als wenn ich die DB gerade öffnen würde.
In meiner alten DB hab ich ja einen clear button eingebaut, das egal was ich da in die Felder eingegeben habe und den clear button klicke.
Dann sind alle Spielernamen gelöscht und die DB geht wieder in die Ausgangskonfiguration als wenn ich die DB gerade öffnen würde.





Beaker s.a.

Hallo Andy,
ZitatVariante 2. Wenn ich einen neuen Spieler bei Spieler 1 und neuer Spieler bei Spieler 2 und den Rest also BR und Sieg eingeben will und dann den "neues Spiel" button klicke, kommt sofort ein Laufzeitfehler wieder.
Ist klar, bevor du den Button klickst gibt es ja noch keinen neuen DS, sieht
nur so aus.
Also erst beide Spieler auswählen, dann klicken und dann die Punkte
ändern und den Sieger auswählen.
ZitatAber wenn du sagst, nö ich hab den nicht umsonst gemacht.
Ja, sag' ich. Die Idee war, dass du dir die Spieler ansehen kannst ohne
zwangsläufig ein Spiel zu starten. Ist wohl die langsamere Variante. Mit dem
Häkchen geht's gleich los.
Was mich bei beiden Varianten noch stört ist, dass das UFo die Begegnungen nicht
mehr anzeigt. Das bekomme ich aber noch in den Griff.

Tausenderpunkt habe ich eingestellt.
ZitatBesser geht es wirklich nicht
Besser geht immer bei Anwendungen. *)
ZitatMach ich da was falsch ?
Nichts. Wieder mein Fehler,  nicht auf das leere Feld geprüft. Habe ich korrigiert.
Du brauchst das Feld aber auch gar nicht zu leeren, einfach bei Spieler1 einen
anderen auswählen, und alle seine Spiele werden angezeigt. Das zweite Kombi wird
in diesem Fall gar nicht berücksichtigt. Musst also da auch einen anderen Spieler
auswählen oder den letzten noch mal.
ZitatLiegt es daran das ich da was falsch mache ?
Nein, siehe oben.
ZitatOder fehlt da vielleicht ein clear button ?
Nein, auch den bringt die Navi-Leiste des Form schon mit; - gelber Button "gefiltert".
ZitatAlso man kann ruhig 1 Punkt für einen Sieg nehmen und 0 Punkte für die Niederlage.
Es gibt ja dort keine Tabelle.
Na denn braucht es das Feld bei den Spielern nicht. Das lässt sich dann einfachst
berechnen, - ist ja nur die Anzahl der Siege. Da wundern mich allerdings die hohen
aktuellen Zahlen. Frage ich mich wo die herkommen wenn
ZitatEs gibt ja dort keine Tabelle.
Da würde es sich doch anbieten ein eigenes System der Punktevergabe zu ersinnen.
Denk mal drüber nach.
Dann bräuchtest du auch damit keine Zeit mehr für die Eingabe verschwenden; -
wegen "besser geht immer". Dazu noch
*) Eine Idee wäre zwei zusätzl. UFo einzurichten. Eins mit allen Spielen von S2
ganz rechts und eins in der Mitte mit der Gegenüberstellung. Vielleicht im Kopf
noch mit ein paar statistischen Angaben/Berechnungen angereichert. Passen würde
das weil man den Gegner ja nicht anzeigen muss. In der Mitte reicht ja auch der
Sieger.

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)

AndySVW

Grüß dich Ekkehard,

ahhh okay jetzt hab ich es auch raus mit dem "neuen Spiel" button und es funktioniert auch :)
Und ja du hast recht, das mit dem Haken setzen ist besser :)
Aber ich finde es schön, das man so trotzdem die Wahl hat.

Und das mit dem auflisten aller Begegnungen bei Spieler 1, geht jetzt auch ohne Probleme.
Egal ob man vorher Spieler 2 eingegeben hat oder nicht.

Zu deiner Aussage : Besser geht immer was Anwendungen angeht.
Grundsätzlich gebe ich dir recht :)
ABER ... ich finde es kommt ja auch darauf an welche Dinge man sich wünscht bei einer Anwendung.
Und hier muss ich einfach sagen, du hast das was ich mir immer gewünscht habe um Längen übertroffen.

Also ich bin ziemlich sprachlos, jetzt wo sie läuft.
Ich meine in dieser Variante, das ist unfassbar Genial und gut.
Wirklich. Tausend Dank dafür Ekkehard.

Was die Tabelle oder Punktevergabe angeht, ich glaube.
Trotz deiner positiven Argumente, ist die DB 1.5 so wie sie ist, zumindest für mich wirklich perfekt.

Ich denke, was Sinn machen würde und eine Megahilfe wäre.
Wenn man 2 Spieler eingibt, ich meine damit um zu schauen wie oft sie gegeneinander gespielt haben.
Wenn man dann eine Statistik einbaut die dann zeigt wie es aktuell zwischen den Beiden steht.
Also nehmen wir mal an Spieler X hat gegen Spieler Y 10 mal gegeneinander gekämpft und hat Spieler X hat 7 mal gewonnen und Spieler Y 3 mal.
Das wenn man die Abfrage startet, das am ende der Abfrage irgendwo steht Gesamtbilanz zwischen den Beiden 7:3 für Spieler X.

Bei 10 Spielen oder Kämpfen ist es noch leicht zu sehen wer da die Nase insgesamt vorn hat.
Sind es aber 100 oder 200, ist es unmöglich dann einen Gesamtüberblick zu bekommen.

Also ich meine das wirklich ernst, die 1.5 DB von dir ist wirklich schon Perfekt für mich.
Es lässt keine Wünsche offen.
Spiele sind Megaschnell eingegeben und ich hab sogar noch Zeit übrig.
Das war vorher oder bei meiner erstellten DB unmöglich.
Da hat die Zeit gerade so hingehauen.
Aber was du gemacht hast, ist wirklich krass.
So vieles muss ich gar nicht mehr eingeben, weil es schon automatisiert wurde von dir :)

Wenn man überhaupt noch etwas ergänzen möchte, dann wie gesagt wie es mit der Gesamtbilanz aussieht zwischen 2 Spielern. Quasi soll alles so bleiben wie jetzt. Nur nachher bei der Abfrage das dann am ende irgendwo in einer Zeile die Gesamtbilanz steht.
Sollte das zu aufwendig sein, dann bitte nicht mehr machen :)

Ich bin wirklich sowas von happy, das ich überhaupt diese Hilfe bekommen habe :)



Beaker s.a.

Hallo Andy,

Freut mich, dass es jetzt zu deiner Zufriedenheit läuft.
ZitatTrotz deiner positiven Argumente, ist die DB 1.5 so wie sie ist, zumindest für mich wirklich perfekt.
Ich bin schon an v2.0 dran. Auch wegen diesem.
ZitatWenn man dann eine Statistik einbaut die dann zeigt wie es aktuell zwischen den Beiden steht.
Hatte ich ja auch schon angesprochen. Versuche dich doch mal selber daran.
Dazu brauchst du ungebundene Textfelder, am Besten im Kopf des UFos. Dann
machst du dich auf Suche nach den so genannten "Domänenaggregatfunktionen".
Mach mal, - vorher Kopie erstellen.

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)

AndySVW

#49
Hallo Ekkehard,

puuuhhhh also.
Ich habe mir die so genannte Domainaggregatfunktion mal angeschaut.
Bitte korrigiere mich, wenn ich da falsch liege.
Ich unterteile den Begriff mal.

Die Aggregatfunktion selbst, sofern ich das richtig gelesen und verstanden habe, beschäftigt sich damit, das verschiedene Datensätze zusammengefasst werden und das ich verschiedene Funktionen einbauen kann.
Wie z.B. min, max, Anzahl, Summe, Mittelwert, ErsterWert, LetzterWert etc.
Und das ganze wende ich dann auf die Domain (Gruppe oder Gruppen) an.

Meine Idee wäre dann, auch wenn diese Methode sehr umständlich wäre, das jedes Spiel dann ein extra Feld bekommt mit einem Eintrag 1 oder 0.
1 für den Sieger und 0 für den verlierer.

Anschließend starte ich eine Abfrage und baue die Funktion "Max" ein.
Sprich wenn ich 2 Spieler eingebe soll die DB dann einen abgleich zwischen den beiden starten und Max 1 dann ausgeben und zählen.

Soweit die Theorie. Ob die stimmt weiss ich nicht.
Auch habe ich mir 4 Videos angeschaut die sich mit der Aggregatfunktion beschäftigen.

Wo es bei mir dann aufhört, ist das ganze in VBA/SQL hinzubekommen.
Mein Ansatz wäre dies bei cboSieger_Afterupdate einzubauen mit der UFo_filtern funktion.

Dort kann ich die Sieger ermitteln und in einer separaten tabelle oder einem separaten Textfeld den Sieger mit einer 1 versehen und diese dann im Nachgang der Abfrage zählen lassen.
Somit wüsste ich dann wer wie oft gegen wen gewonnen hat.

So und das ganze dann in einen Code zu packen da komme ich dann Gedanklich nicht mehr mit :(


Beaker s.a.

ZitatDomainaggregatfunktion
Das hast du m.E. richtig verstanden. Domänen sind Tabellen und Abfragen,
die Aggregate die eigentlichen Funktionen, - zählen, summieren usw.
Um die Anzahl der Siege eines Spielers zu ermitteln, brauchst du kein
zusätzliches Feld. Es wird einfach die Anzahl der SpielerID im Feld Sieger gezählt,
=DomAnzahl("SiegerID_F"; "Turniere"; "SiegerID_F = " & Spieler1ID_F & " AND TurnierArtID_F = " & TurnierArtID_F)Zwar jetzt nicht getestet, aber das kannst du direkt in ein ungebundenes
Textfeld in die Eigenschaft "Steuerelementeinhalt" eingeben.
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)

Beaker s.a.

Ach so.
Damit kannst du ja mal versuchen nur die Siege gegen einen bestimmten
Gegener zu zählen. Für die Kriterien kannst du die jetzigen Filter für
das UFo als Basis hernehmen.
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)

AndySVW

Also ich hab es hinbekommen :)
Na ja teilweise.
Ich habe wie du gesagt hast ein ungebundenes Textfeld erstellt.
Dann bei Steuerelementinhalt den code eingegeben.
Wenn ich jetzt einen User bei Spieler 1 eingebe sagt der mir wie viele Siege generell Spieler 1 hat.
Was schon echt beindruckend ist :D

Wenn ich aber bei Spieler 2 einen User eingebe, ändert sich nichts.

Der zeigt mir nur die Siege des Spielers 1 an, also generelle Siege.
Nicht spezifisch gegen einen bestimmten Gegner X.

Als Ursache könnte sein, das ich nicht weiss wo man die Kriterien in einem ungebundenem Textfeld eingibt, bei den Eigenschaften.

Also zusammenfassend.
Siege Anzeigen generell .... Geht.
Siege gegen einen spezifischen Gegner Anzeigen .... Geht nicht.

Beaker s.a.

ZitatWenn ich aber bei Spieler 2 einen User eingebe, ändert sich nichts.
Nee, ist klar wenn nicht programmiert.
ZitatAls Ursache könnte sein, das ich nicht weiss wo man die Kriterien in einem ungebundenem Textfeld eingibt,
Die Kriterien sind der dritte Parameter der Dom-Funktionen. Das ist im Prinzip
eine WHERE-Klausel in SQL. Nur entfällt das Schlüsselwort.
Du kannst dir das so vorstellen, dass die Funktion aus den drei Parametern
eine Abfrage zusammen stellt
SELECT COUNT(Feldname)
FROM Domäne
WHERE Kriterien
Der einzige Unterschied ist, bin allerdings nicht 100% sicher, das die Dom-
Funktionen immer nur einen Wert zurück liefern.
Das Kriterium für die Siege gegen einen bestimmten Spieler entspricht (nicht
gestestet, keine Zeit) dem Filter für das UFo.
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)

AndySVW

Ah okay verstehe :)
Vielen Dank für die Erklärung.
Ja aber es muss ja auch nicht unbedingt jetzt alles sein.
Einfach dann wenn Zeit ist :)

Ich fände es aber auch nicht schlimm wenn nur ein Wert zurück gegeben wird.
Man kann ja notfalls beim Sieger hin und her switchen wer wieviel Siege hat.

Beaker s.a.

ZitatJa aber es muss ja auch nicht unbedingt jetzt alles sein.
Einfach dann wenn Zeit ist
Keine Ahnung wann du Zeit hast, aber probier es halt mal wenn du
welche hast.
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)

AndySVW

Ja werde ich Ekkehard :)
Aber wie gesagt ich bin schon wirklich sehr sehr glücklich mit der 1.5
Und ich kann mich nur nochmal bedanken für all die Hilfe :)