Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Ihren XING-Kontakten zeigen

Diesen Beitrag Ihrem XING-Kontakten vorstellen

Diesen Beitrag auf Facebook teilen

Verwandte Beiträge:

Ereignisprozeduren implantieren

Zeichenketten zerlegen

Steuerelemente zur Laufzeit verschieben

Texte aufteilen

Mit Zeiten rechnen

Alle verwandten Beiträge ansehen ...

Bisherige Kommentare:

Noch keine Kommentare vorhanden.

Alle Kommentare ansehen oder Kommentar abgeben

Über den Autor:

André Minhorst

Bitte nutzen Sie das XING-Profil nicht
für Fragen zum Artikel, sondern nur für
den Kontaktaustausch beziehungsweise
Projekt- oder Supportanfragen.

Zusammenfassung

Fügen Sie praktische Funktionen zu Datumsfeldern hinzu.

Techniken

Formulare, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

Datumstextfeld.mdb

Shortlink

690

Flexible Datumstextfelder

André Minhorst, Duisburg

Bis Access 2003 wiesen Textfelder, die an Datumsfelder gebunden waren, überhaupt keine besonderen Eigenschaften auf. Mit Access 2007 änderte sich dies: Immerhin erscheint hier ein Kalender-Symbol neben dem Textfeld, wenn dieses den Fokus hat, und bietet eine Hilfe für die schnelle Datumsauswahl an. Mit der Lösung aus diesem Beitrag statten Sie Datumstextfelder aller Access-Versionen seit 2000 mit weiteren nützlichen Features aus.

Beispieldatenbank

Die Beispieltabelle zu diesem Beitrag tblDatum enthält schlicht zwei Felder: DatumID dient als Primärschlüssel und Beispieldatum enthält das Feld, an das wir gleich das Datumstextfeld des Beispielformulars binden. Dieses Formular heißt frmDatum und ist über die Eigenschaft Datenherkunft an die Tabelle tblDatum gebunden. Im Detailbereich zeigt es die beiden einzigen Felder dieser Tabelle an (s. Abb. 1).

pic001.png

Abb. 1: Entwurfsansicht des Beispielformulars zur Eingabe von Datumsangaben

Vereinfachungen für die Datumseingabe

Wir schauen uns im Rahmen dieses Beitrags drei kleine Hilfen für die einfache Datumseingabe an:

  • Eingabe des aktuellen Datums per Leertaste
  • Ändern eines Datumselements mit der Nach oben-Taste
  • Ändern eines Datumselements mit der Nach unten-Taste

Die Funktion, die wir mit der Leertaste abbilden möchten, ist eigentlich bereits in Access eingebaut: Sie brauchen einfach nur die Tastenkombination Strg + Umschalt + Komma (,) zu betätigen, schon fügt Access das Datum in das aktuelle Steuerelement ein. Für die Uhrzeit erreichen Sie dies übrigens mit Strg + Umschalt + Punkt (.). Beide Tastenkombinationen sind, das erkennt auch der Laie schnell, nur schwer zu merken, wenn man nicht täglich damit arbeitet.

Aktuelles Datum per Leerzeile

Also verwenden wir einfach die Leertaste als Tastenkombination für die Eingabe des aktuellen Datums. Dies können wir uns erlauben, denn in einer Datumsangabe hat ein Leerzeichen natürlich nichts zu suchen.

Tasteneingaben fangen wir generell mit den KeyDown- und KeyUp-Methoden von Formularen und Steuerelementen ab. Wann welches dieser Ereignisse ausgelöst wird, finden Sie am einfachsten heraus, indem Sie die folgenden beiden Ereignisprozeduren für die entsprechenden Ereigniseigenschaften des Textfelds Beispieldatum hinterlegen:

Private Sub Beispieldatum_KeyDown(KeyCode _

    As Integer, Shift As Integer)

    Debug.Print "KeyDown", KeyCode, Shift

    End Sub

Private Sub Beispieldatum_KeyUp(KeyCode _

    As Integer, Shift As Integer)

    Debug.Print "KeyUp", KeyCode, Shift

    End Sub

Nun platzieren Sie das Access-Fenster so über (oder auch neben) das VBA-Fenster, dass der Direktbereich des VBA-Fensters sichtbar ist. Wenn Sie den Fokus auf das Textfeld Beispieldatum legen und Zeichen mit der Tastatur eingeben, sehen Sie nicht nur, wann welches Ereignis ausgelöst wird, sondern auch, welche Werte die Parameter Keycode und Shift dieser Prozeduren liefern - die Leertaste entspricht beispielsweise dem KeyCode 32. Auf diese Weise erkennen wir außerdem, zu welchem Zeitpunkt ein Zeichen im Textfeld erscheint, nämlich nach dem Herunterdrücken der betroffenen Taste.

Dies nutzen wir aus, um bei Betätigung der Leertaste das aktuelle Datum einzufügen, und zwar durch folgende Änderung der Ereignisprozedur Beispieldatum_KeyDown:

Private Sub Beispieldatum_KeyDown(KeyCode _

    As Integer, Shift As Integer)

    Select Case KeyCode

    Case 32

    Me!Beispieldatum = Date

    KeyCode = 0

    Case Else

    Debug.Print KeyCode, Shift

    End Select

    End Sub

Dadurch füllt die Prozedur das Textfeld mit dem aktuellen Datum und setzt den Parameter KeyCode auf den Wert 0. Indem Sie diesen Parameter innerhalb der Ereignisprozedur ändern, können Sie in die Nachrichtenkette eingreifen: Statt des ursprünglichen Werts, beispielsweise 32 für ein Leerzeichen, wird dann der Wert 0 als betätigte Taste weitergeleitet - was bedeutet, dass keine Taste gedrückt wurde.

Dies ist unbedingt nötig, weil Access sonst zuerst, wie gewünscht, das Datum in das Textfeld einträgt, dann aber das ursprüngliche Zeichen, also das Leerzeichen, an das Textfeld schickt. Dies kann je nach Einstellung dazu führen, dass das Leerzeichen das gerade eingegebene Datum überschreibt.

Vor und zurück

Nun fügen wir eine weitere Vereinfachung hinzu: Der Benutzer soll durch Betätigen der Nach oben- und Nach unten-Tasten das Datum einstellen können. Dabei soll das Element, auf dem sich die Einfügemarke aktuell befindet, jeweils um eins erhöht oder vermindert werden.

Wenn sich der Cursor also auf dem Monat befindet und der Benutzer auf Nach oben drückt, soll der Monat um eins erhöht werden.

Mit der Ausgabe der obigen Prozedur im Direktfenster ermitteln wir, welche Werte für den Parameter KeyCode der Nach oben- und Nach unten-Taste entsprechen. Dann erweitern wir die Select Case-Anweisung wie in Listing 1.

Listing 1: Einstellen des Datums in einem Textfeld per Nach oben- und Nach unten-Taste

Private Sub Beispieldatum_KeyDown(KeyCode As Integer, Shift As Integer)

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sie sind nicht angemeldet!
Für den kompletten Artikel plus Beispieldatenbanken müssen Sie sich einloggen!
Jetzt einloggen ...
 

Sie haben keine Benutzerdaten? Na, dann aber schnell:

Benutzerdaten erhalten Sie auf zwei Arten:

1. Testen Sie das Online-Archiv von 'Access im Unternehmen' für eine Woche. Sie müssen Sie lediglich für den 'Access im Unternehmen'-Newsletter anmelden.
Ja, ich will den einwöchigen Testzugang und den Newsletter!

2. Greifen Sie ein ganzes Jahr auf das Online-Archiv zu und erhalten Sie zusätzlich alle zwei Monate das brandneue "Access im Unternehmen"-Magazin - für nur EUR 108,-* im Jahr!
Ja, ich will Access im Unternehmen bestellen!

 

* inkl. MwSt., zzgl. Versandkostenpauschale, EUR 140,- inkl. MwSt., zzgl. Versandkostenpauschale ab dem zweiten Jahr

Verwandte Beiträge:

Ereignisprozeduren implantieren

Zeichenketten zerlegen

Steuerelemente zur Laufzeit verschieben

Texte aufteilen

Mit Zeiten rechnen

Datumsbereiche auswählen

Kalendersteuerelement im Eigenbau

Eingabe des Datums mit dem Kalendersteuerelement

Platzbedarf für Text ermitteln

Platzhalterauswahl per Kontextmenü

Termine in Berichten darstellen

Das Optionsgruppen-Steuerelement

Importieren von Textdateien

Access 2007: Bilder und Schaltflächen

TreeView-Elemente im Griff

Registersteuerelemente von A-Z

Tipps und Tricks

Modale Dialoge mal anders

Listenfeld und Details in einem Formular

Datum und Zeit mit Access

Stundenzetteldatenbank zur Dokumentation von Arbeitsleistungen

Verleihen und Entleihen mit Access und Outlook

Fristen berechnen leicht gemacht

Feiertage berechnen mit Access

Validieren mit Klasse

Auswahlfelder im Ribbon

Das Append-Only-Memofeld

TreeView-Konfigurator

Mehrsprachige Anwendungen

Unterformulare im Gleichschritt

Listenfelder von A-Z

HTML-Editor-Steuerelement

Kommentare und Ergänzungen

Wenn Sie Kommentare, Fragen oder Ergänzungen zu diesem Artikel haben, können Sie diese hier eintragen. Wir bemühen uns, kurzfristig auf Ihren Kommentar einzugehen.

Ihr Name:

Ihre E-Mail-Adresse (für
Rückfragen, wird nicht veröffentlicht:

Betreff:

Ihr Kommentar zu diesem Artikel:

© 2003-2010 André Minhorst Alle Rechte vorbehalten.