Programmiertip
Vorherige Seite
Zurück zur Übersicht
Nächste Seite


Visual Basic & Access (VBA): Kalenderfunktionen. MS-Access: Listen- und Kombinationsfelder.
 
In diesem Beispiel werden folgende Techniken demonstriert:
  1. Kalenderfunktion (VB & VBA)
    Ein selbst erstelltes Formular, daß durchaus mit dem von MS-Access bekannten Kalender - Steuerelement mithalten kann.
     
    Das Kalender - Formular stellt die einzelnen Kalendertage in Form von Bezeichnungsfeldern dar, so daß es per Programmcode möglich ist, einzelne Felder farbig hervorzuheben.
     
  2. Bewegliche und feste Feiertage. (VB & VBA)
    Heiligabend fällt immer auf den 24.Dezember - kein Problem für den Entwickler. Ostersonntag jedoch fällt immer auf den ersten Sonntag nach dem ersten Frühlingsvollmond.
     
    Die Datenbank enthält ein Standardmodul namens Feiertage, das das Datum des Ostersonntages eines beliebigen Jahres errechnet. Alle anderen beweglichen Feiertage lassen sich aus dem Ostersonntag berechnen. Auch das wird in diesem Modul gezeigt.
     
  3. Kombinations- und Listenfelder: manuelles Füllen mit Werten. (nur Access/VBA)
    Anm.: dieser Teil ist für VB-Entwickler nicht besonders interessant, da dort Kombinations- und Listenfelder generell die Methode .AddItem bieten, mit denen sich diese Aufgabe viel leichter lösen läßt.
     
  4. Verwalten von Steuerelementen als Array. (nur Access/VBA)
    Aus Visual Basic kennt man die Möglichkeit, z.B. einem Bezeichnungsfeld einen Index zuzuweisen, so daß man eine Schleife über alle Felder laufen lassen kann.
    In Access ist das nur sehr umständlich mit einer Syntax ähnlich:

        Me("MeinFeld" & Format(Index)).Eigenschaft

    möglich. Hier wird gezeigt, wie man mit einer kleinen Property-Funktion auch in Access eine Syntax wie

        MeinFeld(Index).Eigenschaft

    verwenden kann.


Screenshot:

Kalender-Steuerelement Sie sehen hier ein ungebundenes Access - Formular, daß den Arbeitsplan für Monika Musterman im Mai 1999 darstellt.

Frau Mustermann muß vom 10.05.99 bis zum 14.05.99 arbeiten, was durch den Cyan - Farbton gekennzeichnet wird.

Die Wochentage sind farblich gekennzeichnet:

  • Samstag, 8., 15., 22. und 29. Mai: Ocker-Farbton.
  • Sonntag, 2., 9., 16., 23. und 30. Mai: Orange, Ziffern weiß.
  • Samstag, 5. Juni: dunkler Ocker-Ton, da nicht im Mai.
  • Sonntag, 6. Juni: dunkler Orange-Ton, da nicht im Mai. Ziffern weiß.
Weiterhin sehen Sie 5 Feiertage:
  • 01. Mai, Tag der Arbeit: Orange, Ziffern weiß.
  • 13. Mai, Christi Himmelfahrt: Cyan, (Denn Fr. Mustermann hat Dienst), Ziffern weiß.
  • 23. und 24. Mai: Pfingsten: Orange, Ziffern weiß.
  • 03. Juni Fronleichnam: dunkler Orange-Ton, da nicht im Mai. Ziffern weiß.
Zuletzt habe ich in das Feld "13. Mai" geklickt und damit Fr. Mustermann auf den Dienstplan gesetzt. Da der 13. Mai 1999 ein Feiertag ist, steht nun am unteren Rand "Chr. Himmelfahrt".

Bugfix
Datum: 21. Mai 1999
Auch ich wurde nicht vom Fehlerteufel verschont, so daß sich folgender Bug eingeschlichen hat:
Für den Pfingstmontag wurde irrtümlicherweise das Datum des Pfingstsonntages errechnet. In der aktuellen Version besteht dieser Fehler nicht mehr. Sollten Sie die ursprüngliche Version bereits heruntergeladen haben, genügt es, wenn Sie im Modul [Feiertage] folgende Änderung vornehmen:

Falsch ist:

Public Function PfingstMontag(Jahr As Integer) As Date
    PfingstMontag = OsterSonntag(Jahr) + 49
End Function
Richtig jedoch:
Public Function PfingstMontag(Jahr As Integer) As Date
    PfingstMontag = OsterSonntag(Jahr) + 50
End Function

Download
Dieses Beispiel im MS-Access 97 Format biete ich Ihnen hier als Zip-Archiv zum Download an. Es enthält bereits den oben beschriebenen Bugfix.
Beispiel downloaden
Sollten Sie noch nicht über ein Programm zum Entpacken von Zip-Archiven verfügen, empfehle ich Ihnen WinZip, das am weitesten verbreitet ist. Die deutsche Version dieses Programmes können Sie hier herunterladen.
Vorherige Seite
Zurück zur Übersicht
Nächste Seite

© 1999 T. Prötzsch
Erstellt am 13. Mai 1999 / korrigiert am 21. Mai 1999