Daten für die Ausgabe formatieren

Die in Ihrer Datenbank gespeicherten und die tatsächlich in Formularen und Berichten angezeigten Daten unterscheiden sich gelegentlich bezüglich ihres Formats. Dies tritt vor allem bei Datumsangaben in Erscheinung, aber auch bei den übrigen Zahlendatentypen. Dieser Artikel zeigt, wie Sie in Formularen und Berichten für das richtige Erscheinungsbild sorgen und stellt die dafür nötigen Funktionen vor.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1204_Format.mdb.

Schein und Sein

Datumswerte sind ein anschauliches Beispiel für den Unterschied zwischen den angezeigten und den tatsächlich gespeicherten Daten. Wenn ein Formularfeld Ihnen den Ausdruck 1.1.2012 präsentiert, wird dieser intern als Zahlwert gespeichert – in diesem Fall 40.909. Dies ist die Anzahl der Tage, die seit dem 30.12.1899 verstrichen sind (dieses Datum entspricht dem Zahlenwert 0). Zeitangaben wie 12:00:00 hingegen werden als Bruchteile eines Tages gespeichert. Ein Tag entspricht dabei dem Wert 1, also entspricht 12:00:00 dem Wert 0,5.

Genau wie Teile des Datums durch Worte ersetzt werden können (Wochentage, Monatsnamen) oder die Uhrzeit durch das Literal Uhr ergänzt wird, versieht Access Währungsangaben mit entsprechenden Einheiten wie EUR/ oder $.

Für die Ausgabe in Formularen oder Berichten legen Sie selbst das Erscheinungsbild mit entsprechenden Eigenschaften oder Funktionen genau fest. Manche Felddatentypen implizieren solche Angaben. So führt zum Beispiel die Festlegung des Felddatentyps Datum/Uhrzeit automatisch dazu, dass die gespeicherten Long/Double-Werte in einem gut lesbaren Format ausgegeben werden, und der Felddatentyp Währung legt nicht nur fest, dass der Datentyp Decimal verwendet wird, sondern auch, wieviele Nachkommastellen angezeigt werden und dass ein Währungssymbol angehängt werden soll.

An dieser Stelle wird auch der Unterschied zwischen Felddatentyp und Datentyp augenscheinlich: Während der Datentyp lediglich den Wertebereich für das Feld festlegt, stellt der Felddatentyp gleich noch weitere Eigenschaften ein. Dazu gehört beispielsweise das Format, in dem die Daten standardmäßig angezeigt werden oder die Anzahl der anzuzeigenden Nachkommastellen (siehe Bild 1).

Die Auswahl des Felddatentyps stellt Feldeigenschaften wie Datentyp, Feldgröße und Format ein.

Bild 1: Die Auswahl des Felddatentyps stellt Feldeigenschaften wie Datentyp, Feldgröße und Format ein.

Unabhängig davon, welche Einstellung der Felddatentyp liefert, können Sie für die Darstellung in Formularen und Berichten beliebige eigene Formatierungen vornehmen. Dafür gibt es einige Spezialfunktionen etwa zum Aufbereiten von Währungs- oder Datumsangaben, aber auch einen Alleskönner: Die Funktion Format biegt Ihre Daten sowohl in der Benutzeroberfläche als auch unter VBA zurecht.

Die Format-Funktion

Diese Funktion erwartet vier Parameter, von denen nur der erste ein Pflichtparameter ist:

Format(, [], , )

Der Parameter Expression enthält den zu formatierenden Wert. Die übrigen drei Parameter sehen so aus:

  • Format (Datentyp String): Erwartet einen Ausdruck mit dem Zielformat.
  • FirstDayOfWeek: Erwartet eine der Konstanten der Enumeration vbDayOfWeek.
  • FirstWeekOfYear: Erwartet eine Konstante der Enumeration vbFirstDayOfWeek.

Wenn die Format-Funktion nun den mit dem Parameter Ausdruck angegebenen Wert entsprechend den mit dem Parameter Format angegebenen Format ausgibt, warum ist der Parameter Format dann ein optionaler Parameter Die Lösung ist einfach: Die Funktion formatiert den übergebenen Wert auch dann, wenn der Parameter Format keinen Wert enthält. So liefert Format(1.1) beispielsweise den Wert 1,1 – das Dezimalzeichen wird also in das in den Systemeinstellungen festgelegte Zeichen umgewandelt. Der Parameter Format ist der wichtigste Parameter dieser Funktion, daher werden wir diesen in den folgenden Abschnitten genau erläutern. Die beiden übrigen Parameter sind nur für die Formatierung von Datumsangaben wichtig – mehr.dazu in Die Format-Funktion.

Einsatzzwecke

Nehmen wir an, Sie möchten ein Datum mit ausgeschriebenem Monat ausgeben. Dann würden Sie die Format-Funktion wie folgt definieren (dies nur als Vorgriff und als Beispiel für das Aufzeigen der Einsatzzwecke):

Format("1.1.2012", "d. mmmm yyyy")

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar