Die Accessfunktionen DateSerial(), Now(), Day(), Month() und Year()
Mit den fünf Datumsfunktionen lassen sich in Abfragen, Formularen, Berichten und VBA beliebige Datumswerte generieren. Die Funktion DateSerial liefert z.B. aus den 3 Zahlenwerten "2004" (Jahr), "12" (Monat) und "24" (Tag) ein echtes Datum zurück. Man kann sich so beliebige Datumswerte zusammensetzen und so z.B. den ersten eines Monats generieren oder zur Sortierung von Geburtstagen das Jahr des Geburtstags zum aktuellen Jahr machen. Syntax DateSerial(Jahr, Monat, Tag) Funktionsargumente Jahr - Wert vom Typ Integer (von 100 - 9999) oder ein numerischer Ausdruck. Monat - Wert vom Typ Integer. Numerischer Ausdruck. Tag - Wert vom Typ Integer. Numerischer Ausdruck. Nachfolgend ein paar Beispiele zur Funktion. Öffnen Sie mit der Tastenkombination [STRG]+[G] das VBA-Direktfenster um die Beispiele direkt auszuprobieren. Um die Funktion auszuführen und das Ergebnis auszugeben, bestätigen Sie die Eingabe jeder Zeile mit Return. Nehmen wir zunächst das Beispiel der 3 Zahlenwerte "2004" (Jahr), "12" (Monat) und "24" (Tag) um ein Datum zu erstellen. Der Funktionsaufruf im Direktfenster sieht folgendermaßen aus: ? DateSerial(2004, 12, 24) 24.12.2004 oder ? DateSerial(2002, 2, 11) 11.02.2002 auch Berechnungen sind möglich ? DateSerial(2002, 12-2, 10+5) 15.10.2002 Innerhalb der 3 Argumente sind auch andere Funktionen möglich. So lässt sich z.B. mit den Funktionen Day(), Month(), Year() und Now() ein Datum aus anderen Datumswerten zusammensetzen. Testen Sie kurz die Funktionen Day(), Month(), Year() und Now() im Direktfenster um deren Funktionsweise zu verstehen: Die Funktion Now() benötigt keine Argumente und gibt immer den aktuellen Tag und die aktuelle Zeit zurück ? Now() 08.11.2004 08:32:52 Die Funktionen Day(), Month() und Year() benötigen ein Argument das als Datum ausgewertet werden kann und geben den Tag, den Monat oder das Jahr des Datumswertes als Zahl zurück. ? Month("14.12.2004") 12 Die Kombination von Month() und Now() gibt somit den aktuellen Monat als Zahl zurück (im Beispiel der November): ? Month(Now()) 11 Kombiniert man nun die Funktionen Now(), Month() und Year() mit der Funktion DateSerial(), kann man zum Beispiel ein Datum generieren, dass immer den ersten Tag des momentan aktuellen Monats zurück gibt (im Beispiel den vom November 2004): ? DateSerial(Year(Now()), Month(Now()), 1) 01.11.2004 Um das Datum des letzten Tages eines Monats zurückzugeben muss man einen kleinen Trick anwenden. Das Problem hierbei liegt darin, dass je nach Monat 28, 30 oder 31 als Tag an die Funktion DateSerial übergeben werden muss. In Schaltjahren sogar die 29. Nachdem die Funktion Dateserial aber in der Lage ist mit berechneten Argumenten zu arbeiten addiert man zum aktuellen Monat einen Monat dazu um auf den ersten Tag des Folgemonats zu gelangen und zieht zusätzlich wieder einen Tag ab, um als Ergebnis den letzten Tag des aktuellen Monats zu erhalten. So spielt es bei der Berechnung keine Rolle ob der Monat nun 28, 30 oder 31 Tage hat: ? DateSerial(Year(Now()), Month(Now())+1, 1)-1 30.11.2004 So lässt sich nun auch die Sortierung von Geburtstagen lösen. Problem bei der Sortierung ist ja, dass durch das Jahr die Geburtstage nie in der Reihenfolge angezeigt werden. Der Geburtstag "14.05.1967" wird vor dem Geburtstag "14.04.1983" ausgegeben obwohl man zum "14.04.1983" vor dem "14.05.1967" gratulieren muss. Um nun die Geburtstage richtig zu sortieren muss man nur das Jahr des Geburtstags-Datum bei allen Datums-Werten gleich setzen und die Sortierung auf das neue Feld einstellen. Das lässt sich mit der Funktion DateSerial() in einer Abfrage problemlos durchführen. Viele weitere Tipps & Tricks aus der Praxis für die Praxis finden Sie auf unserer AP-Access-Tools Vol.1
| | | | 
|
Auf der AP-Access-Tools Vol.1 finden Sie weitere 320
Tipps & Tricks sowie 250 Access-Beispiel/Anwendungen mit offenen Quellcode!
Die Access-Tools-CD mit über 400 MByte Inhalt - für Access- und VB-Entwickler
256 Access-Beispiele mit offenem Code
45 Add-Ins und ActiveX-Komponenten (Freeware)
16 VB-Projekt inkl. Source
321 Tipps & Tricks für Access und VB
Plus 11 Entwicklerversionen (9 davon mit Source!)
Plus 3 Vollversionen und
Plus riesiger Datenpool
Holen Sie sich jetzt Ihre AP-Access-Tools-CD zum Superpreis von nur EUR 24,95! | | | | |
|
|