Volker Heggemann schrieb:
Der Fehler in Berichten tritt nicht wie ich zunächst dachte nur mit MySql auf!

Folgendes:
Ich erstelle eine Datenbank.
Diese enthält ein Zeit-Feld (Format ZEIT [TIME] )
Im Datenbankexplorer und unter der Formular-Ein- und Ausgabe erscheint die Zeit korrekt im 24Std. Format.

Wenn man mittels des Berichtsassistenten aber einen Bericht erstellt, wird die Zeitangabe einfach nur als 12Std. Wert angezeigt! Aus 20:00 Uhr wird also 08:00 Uhr. Gibts da schon einen Workaround?
Ich habe mir jetzt selbst geholfen. Da es im Internet viele Fragen zu genau diesem Sachverhalt - aber keine Lösungen gibt.

Folgendes:
Da das Fehlerhafte Verhalten nur in den Berichten auftritt, habe ich diesen nicht mehr von der Tabelle erstellt, sondern von einer Abfrage.
Angenommen, die Tabelle (Termin) ist folgender Maßen definiert:
Feld       Datenformat
----------------------------------------------
TerminID     Int (Autowert & Primärschlüssel)
Datum         Date
Startzeit       Zeit
Bemerkung  Text

Dann kann man in einem Formular alles wunderbar eingeben und auch dastellenlassen. Zeiten haben das richtige Format (hier in Deutschland 24h)

In einem Bericht, den man mit dem Assistenten oder von Hand erstellt ist das Zeitfeld immer ein 12h Feld. Daher wird aus der Tabelle von oben eine Abfrage generiert die folgenden Inhalt hat:
Feld            Inhalt
-------------------------------------------------------------
TerminID       Termin.TerminID
Datum           Termin.Datum
StartZeit CONCAT( CONCAT( EXTRACT( HOUR FROM "Termin.Startzeit" ), CHAR( 58 ) ), EXTRACT( MINUTE FROM "Termin.Startzeit" ) )
Bemerkung    Termin.Bemerkung

Damit ist das Feld StartZeit der Abfrage ein Textfeld im Format Std:Min.
Jetzt kann aus der Abfrage ein Bericht gemacht werden.
(Wenn noch jemand eine Lösung hat, wie man den Doppelpunkt in die SQL Syntax rein bekommt? Schreibe er das bitte. Ich bekomme immer eine Fehlermeldung, wenn ich anstatt CHAR(58) einfach ':' oder ":" schreibe)

Dieses Konstrukt hat noch einen kleinen Markel! Es gibt keine führenden Nullen.
D.h. eine Zeit von 07:00 Uhr wird als 7:0 formatiert ausgegeben.
Um das zu umgehen, kann man die Werte für Stunde und Minute (ggf. auch Sekunde und was sonst noch) einzeln in der Abfrage machen.
Das sähe dann so aus:
Feld Inhalt alias
------------------------------------------------------------------------------------
TerminID       Termin.TerminID
Datum           Termin.Datum
StartStunde    EXTRACT( HOUR FROM "Termin.Startzeit" )    startstd
StartMinute    EXTRACT( Minute FROM "Termin.Startzeit" )    startmin
Bemerkung    Termin.Bemerkung


Dabei muß man dann im Bericht die Felder für Stunde und Minute eng zusammensetzen und als Zahlenformat 00 wählen. Jetzt kann dazwischen ein Label-Feld als Trenner mit Doppelpunkt gesetzt werden.

Ich hoffe es ist verständlich was ich hier beschreibe?!

Ansonsten einfach ne email schicken. Ich schicke nen Beispiel zurück!

Auf bald
Volker

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an