Ich stehe gerade auf dem Schlauch. Ich habe ein Popup-Form als Monatskalender. Im Kopfbereich sind die Controls zur Auswahl von Monat und Jahr und die 7 Spaltenköpfe für die Wochentagsnamen. Im Detailbereich befinden sich 42 Labels (7 Spalten, 6 Zeilen) zur Anzeige der Tageszahlen in der jeweiligen Spalte des Wochentags.
Diese 42 Labels sollen perClick-Ereignis alle dieselbe Prozedur aufrufen und als Parameter ihre Caption übergeben.
Bisher habe ich das im Form-Modul so gelöst:
Sub txtDay_1_1_Click(): Call myLabelClick("txtDay_1_1"): End Sub
Sub txtDay_1_2_Click(): Call myLabelClick("txtDay_1_2"): End Sub
Sub txtDay_1_3_Click(): Call myLabelClick("txtDay_1_3"): End Sub u.s.w.
Das funktioniert zwar, erscheint mir aber sehr redundant und etwas mittelalterlich.
Gibt es eine Möglichkeit den Prozeduraufruf irgendwie per Schleife zu realisieren und so Code zu sparen?
Dankbar für Tipps,
Gruß jacons
Hallo,
bei 42 Tagen ist ja auch ein Monatswechsel (Beginn wieder bei 1) dabei ?
Und das Schaltjahr muss ja auch beachtet werden.
Hallo jacons,
dafür gibt es mehrere Möglichkeiten. Elegant ist natürlich eine Lösung per OOP und mit Klassen, aber Access erlaubt auch Ausdrücke, welche dann eine gemeinsame Prozedur aufrufen. Hier ist ein Beispiel für Commandbuttons in einem Formular. Es lässt sich aber leicht auch für Labels anpassen.
Zitat von: MzKlMu am November 29, 2024, 08:55:44Hallo,
bei 42 Tagen ist ja auch ein Monatswechsel (Beginn wieder bei 1) dabei ?
Und das Schaltjahr muss ja auch beachtet werden.
42 Labels und 6 Zeilen sind erforderlich wegen der unterjährigen Wanderung des Monatsbeginns durch die Wochentagsnamen und der klassischen Monatskalender-Darstellung . Eingeblendet sind immer nur die Label, für die Monatstage vorhanden sind (28 - 31).
Monatswechsel, Jahreswechsel und Schaltjahre werden berücksichtigt.
Zitat von: knobbi38 am November 29, 2024, 11:40:09Hallo jacons,
dafür gibt es mehrere Möglichkeiten. Elegant ist natürlich eine Lösung per OOP und mit Klassen, aber Access erlaubt auch Ausdrücke, welche dann eine gemeinsame Prozedur aufrufen.Hier ein Beispiel mit Commandbuttons in einem Formular, daß aber leicht für auch für Labels angepaßt werden kann.
Super, das war genau das wonach ich gesucht habe. Funktioniert nach Anpassung einwandfrei. Vielen Dank!