Hi,
Post by Daniel WeiÃZeitdaten, genauer die Dauer steht im Format HH:MM:SS in meiner
Tabelle. Wenn ich jetzt eine Abfrage nach der Summe der Dauer starte
bekomme ich Werte von 0,002.... usw.
du tust dir mit Datümmern leichter, wenn du verstehst, wie Access intern das
Datum speichert.
Hier mal wieder meine gesammelten Infos rund um Datum und Uhrzeit:
============
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... (D.h. es wird IMMER ein "Zeitpunkt"
gespeichert)
Wenn "NUR" die Uhrzeit abgespeichert wird, ist die Tagesanzahl
(Vorkommateil) gleich 0 und umgekehrt, bei Datum ohne Uhrzeit ist der
Nachkommaanteil immer 0, d.h. Mitternacht. ...
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 Daniel WeiÃ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 Daniel WeiÃ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
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 Daniel WeiÃKW = Format(Datum,"ww",2,3)
ist definitiv für Europa und USA falsch, entweder
Europäisch, aber besser Konstantennamen verwenden, also
Post by Daniel WeiÃ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 aus dem Modul
mdlSonstigesDatumUhrzeit, mit deren Hilfe man den Montag einer
(europäischen) Kalenderwoche berechnen kann, das ich aus der Access-FAQ
entlehnt habe ...
--
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 und andere Beispiele: http://www.freeaccess.de
Sofern Access 200x bitte beachten:
http://www.freeaccess.de/MS-Access-Artikel.asp?ID=99
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
In der Zwischenzeit schließe ich mich uneingeschränkt dem KB-Hinweis an.
("Ohne Garantie, ist ausgedrückt, oder die impliziert wird, bietet
Microsoft Programmierbeispiele nur für Abbildung. Das enthält aber ist auf
den konkludenten Garantien Merchantability oder Eignung für einen
bestimmten Zweck nicht beschränkt. In diesem Artikel wird vorausgesetzt,
dass von Ihnen mit der Programmiersprache, die demonstriert wird, und den
Tools vertraut, die, um zu erstellen, und Prozeduren zu debuggen, verwandt
werden ist.")
--
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 und andere Beispiele: http://www.freeaccess.de
Sofern Access 200x bitte beachten:
http://www.freeaccess.de/MS-Access-Artikel.asp?ID=99
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
In der Zwischenzeit schließe ich mich uneingeschränkt dem KB-Hinweis an.
("Ohne Garantie, ist ausgedrückt, oder die impliziert wird, bietet
Microsoft Programmierbeispiele nur für Abbildung. Das enthält aber ist auf
den konkludenten Garantien Merchantability oder Eignung für einen
bestimmten Zweck nicht beschränkt. In diesem Artikel wird vorausgesetzt,
dass von Ihnen mit der Programmiersprache, die demonstriert wird, und den
Tools vertraut, die, um zu erstellen, und Prozeduren zu debuggen, verwandt
werden ist.")