Beitrag aus SmartTools Access Weekly
Kombinationsfeld in Access mit dynamischer Monatsauswahl
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Ich möchte in einem Formular meiner Datenbank die Inhalte eines Kombinationsfeldes dynamisch füllen. Gefordert ist die Auswahl eines Monats, wobei zum Zeitpunkt der Eingabe aussschließlich einer der letzten drei Monate augewählt werden darf. Beim Öffnen möchte also ich immer die vergangenen drei Monate ausgehend vom aktuellen Datum im Format <Monat> / <Jahr> (zum Beispiel "August 2024") auflisten. Wie kann diese Auswahl aufbauen und dem Kombinationsfeld zuweisen?
T. Rieger
ANTWORT Stellen Sie zunächst die Eigenschaft "Datensatzherkunft" bzw. "Datenherkunft" des Kombinationsfeldes auf "Werteliste" ein. Nehmen Sie dann in der Ereignisprozedur "Beim Laden" des Formulars folgende Anweisungen auf:
Dim I As Integer
Dim dtDate As Date
'For I = 2 To 0 Step -1 'Absteigend mit aktuellem Monat
'For I = 0 To 2 'Aufsteigend mit aktuellem Monat
'For I = 3 To 1 Step -1 'Absteigend ohne aktuellen Monat
For I = 1 To 3 'Aufsteigend ohne aktuellen Monat
dtDate = DateAdd("m", -I, Now)
kfTest.AddItem Format$(dtDate, "mmmm yyyy")
Next I
kfTest = kfTest.Column(0, 0) 'Ersten Eintrag markieren
"kfTest" ersetzen Sie durch den Namen Ihres Kombinationsfeldes. Bei der For-Schleife aktivieren Sie die für Sie passende Variante; die übrigen Zeilen können gelöscht oder auskommentiert werden. Es werden Einträge im Format "August 2024", "September 2024" usw. generiert. Möchten Sie die Einträge lieber im Format "8/2024", "9/2024" usw. anzeigen lassen, verwenden Sie folgende Formatmaske:
kfTest.AddItem Format$(dtDate, "m\/yyyy")
Die Kombination "\/" ist erforderlich, damit der Schrägstrich nicht als Formatzeichen interpretiert, sondern im Ergebnis als Trennzeichen zwischen Monat und Jahr ausgegeben wird.