Discussion:
ACC2003 Zeitformat größer als 24 Stunden
(zu alt für eine Antwort)
Stefan Brand
2005-10-11 07:46:02 UTC
Permalink
Hallo,

ich arbeite mit WinXP-SP2 und Office2003-SP1.

wie muss ich das Tabellen-Zeit-Format einer Zelle definieren, wenn ich eine
Zahl größer als 24 Stunden eingeben möchte.

Danke
Mark Doerbandt
2005-10-11 08:25:53 UTC
Permalink
Hallo, Stefan,
Post by Stefan Brand
wie muss ich das Tabellen-Zeit-Format einer Zelle definieren, wenn ich eine
Zahl größer als 24 Stunden eingeben möchte.
Ich nehme an, Du willst die Dauer eines Vorganges in Stunden und
Minuten speichern. Ich wuerde dafuer die Anzahl der Minuten als Long
abspeichern, denn dann kannst Du auch gut addieren, ohne bei > 24h auf
einen neuen Tag zu kommen. Du muesstest dann bei der Anzeige im
Formular entsprechend formatieren.Wo und wie werden die Daten
eingegeben?

Ansonsten lies auch mal FAQ Punkt 2.10 (http://www.donkarl.com).

Gruss - Mark
Stefan Brand
2005-10-11 12:55:03 UTC
Permalink
Hallo,

zunächst Danke für die schnelle Rückantwort.

Ziel meiner Aktion ist es, eine Excel-Datei, diese eine Spalte mit der
Formatierung "[h]:mm:ss" hat, zu importieren. In dieser Spalte sind auch
Stundeneingaben von z.B: 36:05:55.

Danke
Peter Steimann[MVP Access]
2005-10-11 23:40:17 UTC
Permalink
Hallo Stefan
Post by Stefan Brand
Hallo,
zunächst Danke für die schnelle Rückantwort.
Ziel meiner Aktion ist es, eine Excel-Datei, diese eine Spalte mit der
Formatierung "[h]:mm:ss" hat, zu importieren. In dieser Spalte sind auch
Stundeneingaben von z.B: 36:05:55.
Das Zetformat geht nun nur mal bis 24 Stunden. Du musst also auf ein
anderes Zahlenformat umsteigen und dann wieder umformatieren
--
Gruss

Peter
-----------------------------------------------------------
Mitglied des APP-Profipools www.accessprofipool.de
Mitglied des SQLPass www.sqlpass.de
Zeiterfassungs-Systeme unter www.timesoft.ch und www.biometrica.ch
Stefan Brand
2005-10-12 14:18:02 UTC
Permalink
Hallo,

zunächst Danke für die schnelle Rückantwort.

Dann werde ich eben den Umweg über ein Textfeld machen.

Trotzdem Danke an Alle !!!!!

Klaus Oberdalhoff
2005-10-12 07:26:27 UTC
Permalink
Hi,
Post by Stefan Brand
ich arbeite mit WinXP-SP2 und Office2003-SP1.
wie muss ich das Tabellen-Zeit-Format einer Zelle definieren, wenn
ich eine Zahl größer als 24 Stunden eingeben möchte.
du tust dir einfacher, wenn du verinnerlichst, WIE Access bzw. VBA mit dem
Date-Format umgeht.

Alles, was ein Date-Format überhaupt abspeichern kann, ist immer und nur ein
fest definierter ZEITPUNKT, egal ob du das willst, oder nicht !!!

Schau dir auch mal den OBDKalender und vorallem das Beispiel frmStandzeiten
der
KnowHow (siehe Signatur) an

Hier mein Standard-blurb zum Datum:

==============================================

In Access werden die Datumsfelder intern definitv als Zahl Typ Double
gespeichert, wobei der Vorkomma-Anteil (positiv wie negativ) die Anzahl der
Tage seit dem 30.12.1899 bedeuten und der Nachkommateil die "Fraction" des
Tages, d.h. die Uhrzeit. (0,5 = 12 Uhr) Zur Anzeige des Datums rechnet
Access intern das Datum immer um ...

Zweistellig angezeigt wird das Jahr des Datums deswegen, weil Access
standardmäßig (wenn kein Extra-"Format" gesetzt wurde) zur Anzeige des
Datums den Wert, der in der Systemsteuerung unter "Ländereinstellungen" Tab
Datum unter "Kurzes Datumsformat" eingestellt ist, verwendet.

Für diese Umrechnung gibt es diverse accessinterne Datums- und
Uhrzeitfunktionen (siehe Onlinehilfe), als da beispielsweise wären:

DateSerial
TimeSerial
Year
Month
Day
DateDiff
DateAdd
DatePart
Format (Parameter firstFourDays und vbMonday nicht vergessen)
Now
Weekday (Parameter vbMonday nicht vergessen)

=================================
Post by Stefan Brand
Aber ich bräuchte eine Funktion, die zu einem bestimmten Datum ausrechnet,
in welche KW dieses Datum fällt.
Das geht immer mit dem Format-Statement
Post by Stefan Brand
Ist es richtig, dass die erste Kalenderwoche immer die erste Woche im Jahr
mit mindestens 4 Tagen ist?
Wann fängt die Kalenderwoche an? Montag, oder Sonntag?
Das ist weltweit nicht einheitlich geregelt.

Für WestEuropa (d.h. zumindest für alle Staaten der EG sowie der Schweiz)
gilt irgendeine ISO-Norm seit den 1970-er Jahren des letzten Jahrtausends
<g>

Diese ISO-Norm besagt, daß für alle Staaten, die dieser Norm "beigetreten"
sind, gilt, daß die WochenNr mit der Nummer 1 (In Worten: "eins") die Woche
ist, die vier Tage hat, bzw. (was das Gleiche ist) die den Donnerstag
beinhaltet (vbFirstFourDays). In dieser ISO-Norm ist auch festgelegt, daß
der erste Tag der Woche der Montag (und nicht wie davor der Sonntag) ist.
(vbMonday) Der erste Tag der Woche ist vorallem für Kalenderhersteller
wichtig, da in dieser Norm auch drinsteht, daß der erste Tag der Woche als
erstes in der Kalendertageaufstellung stehen sollte. (also Mo Di Mi ... und
nicht So Mo Di ...)

In den USA gilt beides NICHT, dort ist immer die Woche die Nr 1 (in
Worten:eins), die den ersten Januar beinhaltet und der erste Tag der Woche
ist der Sonntag.

Wie es die anderen Staaten (die z.Tl. noch nach einem ganz anderen Kalender
!!! rechnen wie China oder Israel oder so) halten, ist mir nicht bekannt.
Auch für Rußland und Indien etc. weiß ich es nicht. Wenn du also für deine
Applikation das richtige tun willst, hast du folgende Möglichkeiten:

Du verwendest beim Format immer den Parameter adUseSystem oder du fragst es
explizit in deinem Programm ab oder du weißt, in welcher "Hemisphäre" dein
Programm verwendet wird und verwendest diese Einstellung fix. (ich verwende
z.B. in der KnowHow die europäische Norm fix)
Post by Stefan Brand
KW = Format(Datum,"ww",2,3)
ist definitiv für Europa und USA falsch, entweder

Europäisch, aber besser Konstantennamen verwenden, also
Post by Stefan Brand
KW = Format(Datum,"ww", vbMonday, VbFirstFourDays)
KW = Format(Datum,"ww",2,2)
KW = Format(Datum,"ww", VbSunday, VbFirstJan1)
KW = Format(Datum,"ww", 1, 1)
KW = Format(Datum,"ww") - Kurzform da default
KW = Format(Datum,"ww", vbUseSystem, vbUseSystem)
KW = Format(Datum,"ww", 0, 0)
===========================================
ACHTUNG: vbUseSystem ist NICHT die Defaulteinstellung, sondern 1,1 !!!
===========================================

Ebenso findet sich in der KnowHow (oder als neuere Version ein Extrakt in
der Datei ObdKalender.zip bei www.freeaccess.de) ein komplettes
Kalendermodul, mit dem man auch eigene Feier- und Werktagsberechnungen
vornehmen kann. (Beschreibung dazu im Inneren des Moduls
mdlSonstigesDatumUhrzeit)

In diese Gruppe gehört die UmkehrFunktion Fkt_KWMon (Original: Access-FAQ
von www.donkarl.com)
auch im Modul mdlSonstigesDatumUhrzeit, mit deren Hilfe man den Montag einer
(europäischen) Kalenderwoche berechnen kann
--
mfg

Klaus Oberdalhoff ***@gmx.de

Ich beantworte keine NG-Fragen und -Nachfragen per Mail!
Newbie-Info: http://www.doerbandt.de/Access/Newbie.htm
KnowHow-mdb: http://www.freeaccess.de
Sofern Access 200x bitte beachten:
http://www.freeaccess.de/MS-Access-Artikel.asp?ID=99
Loading...