Basierend auf meinem anderen Thread in "Tabelle/Abfrage" (Abfrage aus dieser Tabelle) nun folgendes Problem mit meinem Formular:
Im Anhang ein Bild von meinem Formular...
Kurzerklärung des Zwecks:
Es finden jeweils Mittwoch, Donnerstag, Freitag und Sonntag ein Pokerturnier statt. Für die interne Punktewertung bekommen nur Platz 1-9 Punkte. Mittwochs & Sonntags haben ein anderes Punktesystem wie Donnerstag & Freitag.
Im Formular wird Datum, Spielername, Platz & Punkte selber eingetragen. Die Liste in dem Unterbericht dient zur Überwachung, welche Daten man
bereits eingegeben hat. Bei der Platz- & Punkteeingabe könnte der User aber zu viele Fehler machen.
Kann man das ändern ?
Sinnvoll wäre eine Schleife (z.B. Datensatz 1-9 = Platz 1 bis 9 = ein Datum... Datensatz 10-18 = Platz 1-9 = Nächstes Datum)
Genauso bei den Punkten...Punkte automatisch beziehen in Abhängigkeit vom Datum und Platz
Bsp.: Datensatz 1 =
Datum 2.1.2013
Spielername Max Muster
Platz 1
Punkte 9
^^ Das muss ich bisher alles selber eintragen, wobei natürlich Fehler passieren können, die ich ausmerzen will. Optimal wäre diese Eingabe:
Bsp.: Datensatz 1
Datum 2.1.2013
Spielername Max Muster
Platz wäre für den ersten Datensatz automatisch Platz 1, der 2.1.2013 wäre ein Mittwoch, also hier für Mittwoch die Punkte für Platz 1 = 4,5 Punkte.
Dann wäre es noch super, wenn für Datensatz 1-9 aufgrund der Datums-Auswahl das Datum gleich mitübertragen werden könnte, allerdings nur bis Datensatz 9, ab Datensatz 10 = neues Datum (bzw. Feld wieder leer).
Ist das machbar ?
[Anhang gelöscht durch Administrator]
Hallo,
ZitatIst das machbar ?
Ja
VBA ist hier die Wahl des Tages ...
Mit der DCount-Funktion kannst du die eingegebenen Datensätze je Datum zählen.
Das Datum kannst du nach der ersten Auswahl in einer Variablen speichern und für den nächsten Datensatz im Datumsfeld vorbelegen.
In Kombination mit der vorher genannten DCount-Funktion kannst du steuern, dass dieses genau 9 mal möglich ist.
Genauso kannst du im Zuge dessen mittels DMax-Funktion die Rangfolge des Platzes erfragen und Platznummer und Punkteanzahl in den entsprechenden Feldern vorbelegen.
Gänzlich ausblenden würde ich das aber nicht - jeder unkontrollierte Automatismus stellt eine Fehlerquelle dar.
Ob du nun die Punkte aus einer passenden Tabelle (Standallone, also einer reinen Nachschlagetabelle für den Eintrag) liest und in die Datensätze übergibst oder selbige in einer Function berechnest bleibt deinem Programmiergeschick überlassen. Der Nachschlag in einer Tabelle wäre aber zu bevorzugen, da ev. Änderungen am Punktesystem leichter durchzuführen sind.
ZitatBei der Platz- & Punkteeingabe könnte der User aber zu viele Fehler machen
Auch wenn du einige Dinge automatisiert durchführen lässt ... ganz ohne Fehlerbehandlung kommst du auch in der Variante nicht aus.
Falsche Namensauswahl/-Eingabe führt automatisiert zu einem falschen Tabelleneintrag - ABFANGEN!