Eingabe des Datums mit dem Kalendersteuerelement

Autor: André Minhorst, Duisburg

Die Eingabe des Datums ist an vielen Stellen erforderlich – sei es die Eingabe von Geburtsdaten in die Geburtstagsliste der Firma, das Festlegen von Zahlungsfristen oder die Eingabe von Rechnungsstellungen, Auftragsannahmen usw. Immer wieder stellt der Benutzer sich hier die Frage: In welchem Format muss ich nun wieder das Datum eingeben Mit zwei- oder vierstelliger Jahreszahl Ergänze ich einstellige Tage und Monate durch eine vorangestellte Null Und welches Zeichen setze ich zwischen die Daten, einen Punkt, einen Bindestrich oder noch etwas anderes Abnehmen können Sie dem Anwender seine Unsicherheit auf recht einfache Weise: Stellen Sie ihm einfach das Kalendersteuerelement zur Seite, und die Datumseingabe wird zum Kinderspiel.

Die Verwendung des Kalendersteuerelements erfolgt in der Regel in Formularen. Damit Sie keinen großen Aufwand mit der Erstellung einer Beispieldatenbank haben, verwenden Sie einfach zwei Objekte aus der Nordwind-Datenbank. Legen Sie aber zunächst eine neue, leere Datenbank an.

Um die benötigten Objekte zu importieren, verwenden Sie den Menübefehl Datei ( Externe Daten ( Importieren. Suchen Sie nun mit Hilfe des Dialogs Importieren die Nordwind-Datenbank.

Anschließend können Sie im Dialog Objekte importieren die folgenden beiden Objekte auswählen: im Register Tabellen die Tabelle Personal und im Register Formulare das Formular Personal. Nachdem Sie die Schaltfläche OK betätigt haben, importiert Access die ausgewählten Objekte in die neue Datenbank.

Das Formular Personal bietet direkt zwei Möglichkeiten, das Kalendersteuerelement einzusetzen. Leider ist das Steuerelement – wenn man es auf eine Größe zieht, in der man es noch bedienen kann – relativ groß. Ein Einsatz neben jedem vorhandenen Datumsfeld erscheint daher relativ unpraktisch.

Daher legen Sie zunächst einmal ein neues Formular an. Setzen Sie für das Formular die Werte der Eigenschaften Bildlaufleisten, Datensatzmarkierer, Navigationsschaltflächen und Trennlinien auf den Wert Nein.

Geben Sie für die Eigenschaft Beschriftung den Wert Datum auswählen ein. Speichern Sie das Formular dann unter dem Namen frmKalender ab.

Und nun fügen Sie dem Formular endlich das Kalendersteuerelement hinzu:

  • Wechseln Sie in die Entwurfsansicht des Formulars.
  • Klicken Sie in der Toolbox auf das Symbol Weitere Steuerelemente (siehe Bild 1).
  • Wählen Sie aus der nun erscheinenden Liste den Eintrag Kalendersteuerelement 9.0 aus.
  • Der Mauszeiger verwandelt sich nun in ein Fadenkreuz mit einem Hammer. Verwenden Sie ihn, um einen ausreichend großen Rahmen aufzuziehen.
  • Nach dem Aufziehen verwandelt der Rahmen sich in das Kalendersteuerelement (siehe Bild 2).

    Alternativ zum Aufziehen eines Rahmens können Sie auch einfach auf die Stelle im Formular klicken, die den linken, oberen Rand des Formulars enthalten soll. Das Steuerelement erscheint dann direkt in der optimalen Größe.

    Nachdem Sie das Steuerelement nun eingefügt haben, geben Sie ihm den Namen ctlKalender. Wenn Sie nun in die Formularansicht wechseln, können Sie bequem das Datum eingeben (siehe Bild 3).

    Nun hilft es Ihnen ja nicht viel, das Datum im Kalendersteuerelement auszuwählen, wenn Sie es nicht weiterverwenden können.

    Daher lernen Sie nun die VBA-Anweisung kennen, mit der Sie den Inhalt des Kalendersteuerelements auslesen können.

    Zu Testzwecken wechseln Sie nun in das VBA-Fenster von Access. Neben der Eingabe von VBA-Anweisungen dient das Fenster auch dem Testen unterschiedlicher Anweisungen, Prozeduren und Funktionen.

    Im unteren Bereich des VBA-Fensters befindet sich der so genannte Direktbereich. Hier geben Sie nun die folgende Anweisung ein:

    Debug.Print Forms!frmKalender!ctlKalender

    Die Anweisung bezieht sich auf das Steuerelement ctlKalender im Formular frmKalender, das wiederum ein Element der Auflistung Forms ist. Als Ergebnis erhalten Sie das mit dem Kalendersteuerelement ausgewählte Datum.

    Bild 3: Das Kalendersteuerelement im Einsatz

    Public Function DatumErmitteln(Datum As Date) As Date
        DoCmd.OpenForm "frmKalender", Windowmode:=acDialog, OpenArgs:=Datum
        DatumErmitteln = Forms!frmKalender!ctlKalender
        DoCmd.Close acForm, "frmKalender"
    End Function

    Quellcode 1

    Nun müssen Sie das Formular zur Auswahl des Datums nur noch irgendwie mit dem Formular Personal in Verbindung bringen. Dazu gibt es zwei Möglichkeiten.

    Die erste Möglichkeit ist, das Formular jedes Mal aufzurufen, wenn der Anwender in ein Datumsfeld klickt. Das könnte für den einen oder anderen Anwender auf die Dauer etwas nervig sein.

    Günstiger ist die zweite Möglichkeit. Stellen Sie den Anwender vor die Auswahl: Entweder er gibt das Datum direkt in das Textfeld ein, oder er klickt doppelt auf das Textfeld, um das Kalender-Formular zur Eingabe des Datums aufzurufen.

    Vorüberlegungen

    Die programmtechnischen Aufgaben, die zur Anzeige des Kalendersteuerelements erforderlich sind, benötigen einige Vorüberlegungen.

    Zunächst einmal sollte man sich im Klaren darüber sein, dass der Aufruf von unterschiedlichen Stellen in verschiedenen Formularen erfolgen kann und daher nicht nur einmal einzubauen ist. Das Formular mit dem Kalendersteuerelement selbst soll aber nur einfach vorhanden sein.

    Daraus ergibt sich, dass man eventuell erforderlichen VBA-Code möglichst an der Stelle unterbringt, die nur einmal vorkommt. Sie können den Programmcode zum Aufruf und Auswerten des Kalendersteuerelements also überall unterbringen, nur nicht in der Prozedur, die der Anwender durch einen Doppelklick auf das Textfeld aufruft.

    Auslagern des Programmcodes in eine Funktion

    Um beim wiederholten Anlegen von Datumsfeldern, die das Kalendersteuerelement zur Eingabe des Datums benötigt, nur maximal eine Codezeile in der Prozedur hinter der Ereigniseigenschaft Beim Doppelklicken unterzubringen, lagern Sie den restlichen Code in eine globale Funktion aus.

    Legen Sie also eine Funktion in einem neuen Modul an:

  • Wechseln Sie im Datenbankfenster in das Register Module.
  • Klicken Sie auf die Schaltfläche Neu.
  • Geben Sie in dem neuen Modul die Funktion aus Quellcode 1 ein.
  • Speichern Sie das Modul unter dem Namen modKalender.
  • Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar