Kapitel 16
Abfragen mit berechneten Feldern
326
Da viele Access-Funktionen
NULL
-Werte besonders behandeln, ist es notwendig, diese Werte entspre-
chend zu berücksichtigen. Nun wäre es aber mühsam, alle
NULL
-Werte mit
Wenn()
abzufragen, wie
im Absatz oben gezeigt. Damit durch die
NULL
-Werte keine Fehler auftreten, bietet Ihnen Access die
Funktion
Nz()
.
Nz()
wandelt
NULL
-Werte in den Wert 0, die leere Zeichenkette "" oder einen von Ihnen festgelegten
Wert um. Wann ist der Einsatz der Funktion sinnvoll? Stellen Sie sich vor, Sie errechnen einen
Inventurwert, indem Sie die Anzahl der Artikel mit dem Einkaufspreis multiplizieren, also
Inventurwert: [Anzahl] * [Einkaufspreis]
. Ist jetzt für einen Artikel keine Anzahl angegeben, hat
also die Anzahl den Wert
NULL
, so ist das Ergebnis der Multiplikation ebenfalls
NULL
. Möchten Sie
dies vermeiden und erreichen, dass das Ergebnis in diesem Fall als Wert 0 ausgegeben wird, so
modifizieren Sie die Formel zu:
Inventurwert: Nz([Anzahl]) * [Einkaufspreis]
.
Sie können
Nz()
mit einem zweiten, optionalen Parameter aufrufen. Dieser zweite Parameter gibt
an, welchen Wert
Nz()
in dem Fall zurückgeben soll, wenn der erste Parameter den Wert
NULL
auf-
weist. Mit
Inventuranzahl: Nz([Anzahl];"Keine Anzahl angegeben!")
wird immer dann der Text
"Keine Anzahl angegeben!"
gezeigt, wenn Anzahl
NULL
ist.
Zum Umgang mit Datumswerten
Wir möchten Ihnen in diesem Abschnitt die Access-Funktionen vorstellen, die Ihnen das Rechnen
mit Datumswerten erleichtern.
Beachten Sie für alle Berechnungen mit Datumswerten, dass Access-intern Datumswerte und Zeiten
mithilfe so genannter serieller Zahlen dargestellt werden. Jedem Tag, beginnend mit dem
31.12.1899, wird eine ganze Zahl zugeordnet. Der 31.12.1899 hat den Wert 1, während 39400 für
den 14.11.2007 steht. Uhrzeiten werden durch Nachkommastellen beschrieben, d.h., für jeden Tag
lässt sich die Zeit als Bruchteil darstellen. Für 12:00 Uhr wird beispielsweise 0,5 gespeichert.
Das heutige Datum finden
Mit der Funktion
Datum()
ermitteln Sie das aktuelle Systemdatum, also das Datum Ihres PCs.
Sie möchten die Titel aller Filme auflisten, die in den letzten 100 Tagen gezeigt wurden. In der in
Abbildg. 16.18 gezeigten Abfrage wird die Funktion
Datum()
zur Lösung der Aufgabe eingesetzt.
Benötigen Sie nicht nur das aktuelle Datum, sondern auch die aktuelle Systemzeit, so setzen Sie
dazu die Funktion
Jetzt()
ein.
PROFITIPP
Jahreszahlen werden bei Datumswerten standardmäßig nur mit zwei Stellen ausgegeben. Möch-
ten Sie eine vierstellige Darstellung, so schalten Sie sie ein: Verwenden Sie dazu die Office-Schalt-
fläche und die Schaltfläche Access-Optionen. Wählen Sie links Erweitert aus, so finden Sie rechts
in der Kategorie Allgemein die Möglichkeit Vierstellige Jahreszahlenformatierung in der aktuellen
Datenbank oder in allen Datenbanken einzustellen.
Zum Umgang mit Datumswerten
327
Abfragen
Abbildg. 16.18
Filmtitel der letzten 100 Tage
Tag, Monat, Jahr, Stunde, Minute und Sekunde
Möchten Sie nur den Tag, den Monat oder das Jahr eines Datumswerts ermitteln, so stehen Ihnen
dafür die Funktionen
Tag()
,
Monat()
oder
Jahr()
zur Verfügung. Die Funktionen geben einen ent-
sprechenden Zahlenwert zurück, beispielsweise ergibt
Jahr(#31.12.2007#)
das Ergebnis
2007
. Für
Zeitwerte stellt Ihnen Access
Stunde()
,
Minute()
und
Sekunde()
bereit.
Den Wochentag, auf den ein bestimmtes Datum fällt, ermitteln Sie mithilfe der Funktion
Wochentag()
.
Die Funktion gibt 1 für Sonntag, 2 für Montag usw. zurück. Für
Wochentag(#1.1.2007#)
erhalten Sie als
Ergebnis den Wert 1, d.h., der erste Tag des Jahres 2007 war ein Sonntag.
Datumsberechnungen
Für Rechnungen mit Datumswerten möchten wir Ihnen die Funktionen
DatTeil()
,
DatAdd()
,
DatDiff()
,
DatWert()
und
DatSeriell()
vorstellen.
Die Funktion DatTeil()
DatTeil()
ergänzt die im vorangegangenen Abschnitt »Tag, Monat, Jahr, Stunde, Minute und
Sekunde« beschriebenen Funktionen. Allgemein lautet
DatTeil(Intervall;
Datumswert)
. Für den
Parameter
Intervall
geben Sie einen der in Tabelle 16.2 aufgeführten Werte in Anführungszeichen an.
Der Rückgabewert der Funktion ist eine ganze Zahl.
Tabelle 16.2
Intervallangaben für Datumsfunktionen
Einstellung Beschreibung
jjjj Jahr
q Quartal
m Monat
Kapitel 16
Abfragen mit berechneten Feldern
328
Sie möchten beispielsweise ermitteln, für welche Filme das Bundesstartdatum im ersten Quartal lag.
So geben Sie als Bedingung für das Bundesstartdatum die folgende Formel an:
Addieren von Datumswerten
Die Funktion
DatAdd(Intervall; Nummer; Datumswert)
addiert Zeitintervalle zu einem Datumswert.
Möchten Sie beispielsweise auf Ihren Rechnungen ein Zahlungsziel von 30 Tagen angeben, so könn-
ten Sie
DatAdd("t"; 30; [Rechnungsdatum])
dafür einsetzen. Die möglichen Werte für den Parameter
Intervall
finden Sie in Tabelle 16.2.
Differenz zweier Datumswerte
Mithilfe der Funktion
DatDiff(Intervall; Datumswert1; Datumswert2)
ermitteln Sie den Abstand
zwischen zwei Datumswerten, wobei der Abstand in dem mit dem Parameter
Intervall
bestimmten
Wer t angegeben wird. Die für
Intervall
gültigen Werte sind in Tabelle 16.2 aufgeführt.
Mit
DatDiff("ww"; [Bundesstartdatum]; Jetzt())
bestimmen Sie die Anzahl der Wochen, die vom
Start des Films bis heute vergangen sind.
Konvertierung zu Datumswerten
Die Funktion
DatWert(Datumszeichenfolge)
konvertiert ein Datum, das als Zeichenkette, d.h. als
Text vorliegt, in einen Datumswert. Beispielsweise würde
DatWert("2. Februar 2007")
als Datums-
wert für den 2.2.2007 umgesetzt werden.
Zusammensetzen von Datumswerten
Mithilfe der Funktion
DatSeriell(Jahr; Monat; Tag)
können Sie aus drei Zahlenwerten einen
Datumswert generieren. Mit
DatSeriell(2007; 2; 2)
erzeugen Sie den Datumswert, also die von
Access intern verwendete serielle Zahl für den 2. Februar 2007.
j Tag des Jahres
t Ta g
w Wochentag
ww Woche
h Stunde
n Minute
s Sekunde
Tabelle 16.2
Intervallangaben für Datumsfunktionen
(Fortsetzung)
Einstellung Beschreibung
DatTeil("q";[Bundesstartdatum])=1

Get Microsoft Office Access 2007 - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.