|
Die Visual Basic-Funktion Now
liefert Ihnen in einem Wert des Datentyps Date die aktuelle
Systemzeit (Datum und Zeit) des Rechners. Im Gegensatz zu den beiden
VB-Funktionen Date und Time, die die beiden Bestandteile der
Systemzeit separat liefern, und über die Sie neue Datums- und
Zeitwerte setzen können, können Sie Now keinen neuen Wert
zuweisen. Sie müssen tatsächlich die beiden Bestandteile über
Date und Time separat setzen.
Es ist allerdings möglich, "eingebaute" VB-Funktionen
durch eigene Funktionen zu ersetzen (sie zu
"überschreiben"), können Sie eine eigene Now-Funktion
erstellen, die in beide Richtungen wie die Funktionen Date und Time
arbeitet. Eine Funktion, die einerseits einen Wert liefert und der
man andererseits einen Wertzuweisen kann, lässt sich allerdings nur
als Eigenschaft realisieren. Genau so wie in einem Klassen-, Form-
oder UserControl-Modul können Sie auch in einem Standard-Modul
Eigenschaften mittels der Property Let- und Property
Get-Prozeduren anlegen. Sind diese Prozeduren dort als Public
deklariert, verhält sich die so angelegte Eigenschaft als
anwendungsglobale Eigenschaft bzw. im Prinzip wie eine globale
Variable.
Ihre eigene Now-"Eigenschaft" legen Sie nun
folgendermaßen an:
Public Property Let Now(New_Date As Date)
Time = New_Date
Date = New_Date
End Property
Public Property Get Now() As Date
Now = VBA.Now
End Property
Die Voranstellung des "VBA." (eines so
genannten "Qualifizierers") sorgt dafür, dass VB an
dieser Stelle die eigene Now-Funktion aufruft und nicht erneut die
von Ihnen neu angelegte Property Get-Prozedur.
Das Auslesen der Systemzeit erfolgt weiterhin wie gewohnt, wobei
allerdings der Get-Teil des Property-Prozeduren-Paares aufgerufen
wird:
Dim SystemZeit As Date
SystemZeit = Now
Einer neue Systemzeit können Sie nun ganz einfach zuweisen, zum
Beispiel:
Dim NeueSystemZeit As Date
NeueSystemZeit = "11.11.1111 11:11"
Now = NeueSystemZeit
|