In Ausgabe 4/2010 haben wir unser Tool zur einfachen Auswahl von Datumsbereichen vorgestellt. Dieses haben wir nun überarbeitet und um eine neue Methode zum Aufrufen des Formulars erweitert. Welche änderungen nötig sind und wie Sie das Formular zum Auswählen von Datumsbereichen nun nutzen, erfahren Sie im vorliegenden Beitrag.
Das Formular zur Datumsauswahl zeigt die Daten eines kompletten Jahres an und ermöglicht es, bei gedrückter Maustaste einen Datumsbereich zu markieren. Dies ist insbesondere interessant, wenn Sie einen Zeitraum markieren und das Start- und das Enddatum weiterverarbeiten möchten.
In der ersten Version des Auswahldialogs für Datumsbereiche (siehe Datumsbereiche auswählen, www.access-im-unternehmen.de/729) konnten Sie dazu ausschließlich zwei Textfelder angeben, die dann mit den ausgewählten Datumsangaben gefüllt wurden.
Die Klasse clsDatumsauswahl brachte dazu alles Nötige mit – Sie brauchten nur noch ein Objekt auf Basis der Klasse zu deklarieren, diese zu instanzieren und das Formular und die beiden zu verwendenden Textfelder anzugeben – schon funktionierte die Datumsauswahl.
In diesem Beitrag fügen wir der Lösung noch weitere Features hinzu. Das erste ist die Möglichkeit, die Klasse auch von VBA-Code aus aufzurufen, ohne gleich ein Formular oder die zu füllenden Textfelder anzugeben.
Die gewählten Datumsangaben können dann einfach per Eigenschaft der Klasse ausgelesen und weiterverwendet werden.
Außerdem ergänzen wir das Formular zur Auswahl der Zeiträume um Schaltflächen, mit denen Sie um jeweils einen Monat beziehungsweise ein Jahr vor- oder zurückspringen können. Bild 1 zeigt die neue Version des Formulars mit den vier Schaltflächen zum ändern des angezeigten Zeitraums.

Bild 1: Formular zur Auswahl von Datumsbereichen
Aufruf per VBA
Zum Start zeigen wir Ihnen, wie Sie den Dialog zur Datumsauswahl – neben der bereits vorhandenen Möglichkeit – auch noch per VBA aufrufen können.
Dies gelingt wie in der folgenden Beispielprozedur, die Sie in der Beispieldatenbank im Modul mdlSample finden:
Public Sub Sample()
Dim objDatumsauswahl As clsDatumsauswahl
Dim datStart As Date
Dim datEnde As Date
Set objDatumsauswahl = New clsDatumsauswahl
With objDatumsauswahl
.Startdate = Date
.Enddate = Date + 10
.DatumsauswahlStarten
datStart = .Startdate
datEnde = .Enddate
End With
Debug.Print datStart, datEnde
End Sub
Die Prozedur deklariert zunächst ein Objekt des Typs clsDatumsauswahl sowie zwei Variablen zum Speichern des Start- und des Enddatums, das mit dem Dialog zur Datumsauswahl ermittelt wurde. Danach instanziert die Prozedur ein neues Objekt auf Basis der Klasse clsDatumsauswahl.
In Ausgabe 4/2010 haben wir unser Tool zur einfachen Auswahl von Datumsbereichen vorgestellt. Dieses haben wir nun überarbeitet und um eine neue Methode zum Aufrufen des Formulars erweitert. Welche änderungen nötig sind und wie Sie das Formular zum Auswählen von Datumsbereichen nun nutzen, erfahren Sie im vorliegenden Beitrag.
Das Formular zur Datumsauswahl zeigt die Daten eines kompletten Jahres an und ermöglicht es, bei gedrückter Maustaste einen Datumsbereich zu markieren. Dies ist insbesondere interessant, wenn Sie einen Zeitraum markieren und das Start- und das Enddatum weiterverarbeiten möchten.
In der ersten Version des Auswahldialogs für Datumsbereiche (siehe Datumsbereiche auswählen, www.access-im-unternehmen.de/729) konnten Sie dazu ausschließlich zwei Textfelder angeben, die dann mit den ausgewählten Datumsangaben gefüllt wurden.
Die Klasse clsDatumsauswahl brachte dazu alles Nötige mit – Sie brauchten nur noch ein Objekt auf Basis der Klasse zu deklarieren, diese zu instanzieren und das Formular und die beiden zu verwendenden Textfelder anzugeben – schon funktionierte die Datumsauswahl.
In diesem Beitrag fügen wir der Lösung noch weitere Features hinzu. Das erste ist die Möglichkeit, die Klasse auch von VBA-Code aus aufzurufen, ohne gleich ein Formular oder die zu füllenden Textfelder anzugeben.
Die gewählten Datumsangaben können dann einfach per Eigenschaft der Klasse ausgelesen und weiterverwendet werden.
Außerdem ergänzen wir das Formular zur Auswahl der Zeiträume um Schaltflächen, mit denen Sie um jeweils einen Monat beziehungsweise ein Jahr vor- oder zurückspringen können. Bild 1 zeigt die neue Version des Formulars mit den vier Schaltflächen zum ändern des angezeigten Zeitraums.

Bild 1: Formular zur Auswahl von Datumsbereichen
Aufruf per VBA
Zum Start zeigen wir Ihnen, wie Sie den Dialog zur Datumsauswahl – neben der bereits vorhandenen Möglichkeit – auch noch per VBA aufrufen können.
Dies gelingt wie in der folgenden Beispielprozedur, die Sie in der Beispieldatenbank im Modul mdlSample finden:
Public Sub Sample()
Dim objDatumsauswahl As clsDatumsauswahl
Dim datStart As Date
Dim datEnde As Date
Set objDatumsauswahl = New clsDatumsauswahl
With objDatumsauswahl
.Startdate = Date
.Enddate = Date + 10
.DatumsauswahlStarten
datStart = .Startdate
datEnde = .Enddate
End With
Debug.Print datStart, datEnde
End Sub
Die Prozedur deklariert zunächst ein Objekt des Typs clsDatumsauswahl sowie zwei Variablen zum Speichern des Start- und des Enddatums, das mit dem Dialog zur Datumsauswahl ermittelt wurde. Danach instanziert die Prozedur ein neues Objekt auf Basis der Klasse clsDatumsauswahl.
Unser exklusives Angebot für Dich!
(Gilt für den Abschluss eines Jahres-Abonnements im ersten Jahr, danach 189,-/Jahr)
Hier geht’s weiter →Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →