Access-Paradies im Internet

Das Dokumenten-Management für Microsoft Access Datenbanken
 

  

::: Funktionen

 


Die Top Seite für Excel-VBA-Makros uvm.
Anwenderforum für Microsoft Office, Windows, VB
FAQ, kostenlose Tipps und Downloads zu Microsoft Office
Das große Visual-Basic Archiv
Access-Garhammer
Rainer's Archiv

::: Newsletter

 

Unser Newsletter informiert Sie topaktuell rund um alle Themen zu Microsoft Access, VBA usw.

 
  




::: ebay

 
1.000 Tage eBay Partnerprogramm - Volume II
 

33

 
  News -> Tipp - November 2004 - 2   

CD mit über 400 MByte Inhalt - für Access- und VB-Entwickler
über 256 Access-Beispiele
45 Add-Ins und ActiveX-Komponenten
16 VB-Projekt inkl. Source
mehr als 320 Tipps & Tricks für Access und VB

Plus 11 Entwicklerversionen
(9 davon mit Source!)
3 Vollversionen
Riesiger Datenpool



von Günther Kramer

Erweiterter Verzeichnisdialog


Diese Funktion stellt den er-
weiterten Verzeichnisauswahl-
dialog zum Auswählen von Verzeichnissen zur Verfügung.



Das Access-VBA Codebook

Neue Ausgabe!




Die VBA-Codesammlung, die bei keinem Entwickler
fehlen darf!

 
   
 
 
 

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!

  •  
     

     
     
     
     

    Access-Paradies © 1996-2011 Microsys Kramer


    Microsoft, Access, Word, Excel, Outlook, Outlook Express, Visual Basic und Windows sind eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Weiterempfehlung  |   Linken Sie uns  |   Impressum  |   Newsletter  |   Onlineshop