9.5k Aufrufe
Gefragt in Datenbanken von
Hallo Community,
Aus einem Datum lasse ich in einer Abfrage mit dieser Formel:
KW: DatTeil("ww";[PRDatum])

die Zahl der Kalenderwoche des in Spalte PRDatum eingegeben Datums anzeigen.
Der SQL-Code sieht so aus:
SELECT
KalenderProbe.KalproNr,
KalenderProbe.PRDatum,
DatePart("ww",[PRDatum])
AS KW
FROM KalenderProbe;

KalenderProbe ist der Name der Versuchsdatenbank
KalproNr ist die ID
PRDatum enthält das Datum

Klappt eigentlich soweit auch, nur zeigt access mir immer eine Woche später an, als richtig ist.
z.B. für den 25.01.2011 die KW 5 anstatt richtig die 4te KW.
Für den 01.04.2011 die KW 14 anstatt der 13 usw.

Wo sitzt der Fehler?

Danke fürs Helfen
db-Lehrling

3 Antworten

0 Punkte
Beantwortet von
Ich bins nochmal
scheints als ob man sich hier besser selbst hilft
also hab nach längerem suchen im Netz und eigenem rumprobieren die Lösung gefunden:
KW: Format([PRDatum];"ww";2;2)

SQL:
SELECT
KalenderProbe.KalproNr,
KalenderProbe.PRDatum,
Format([PRDatum],"ww",2,2)
AS KW


Mit der Umstellung von DatTeil auf Format sowie "ww" nach dem Datum und zweimal die 2 hinten dran stimmt die Wochenzahl mit dem laufenden Datum bzw. mit jedem Datum nach deutschen Kalender überein.
Ich kann leider nicht erklären, warum das so ist. Vielleicht ist ja jemand hier der diese Funktion genauer erklären kann

Danke für euer Interesse ;-)

db-Lehrling
0 Punkte
Beantwortet von wmei Mitglied (117 Punkte)
Hi,
Die interne KALENDERWOCHE-Funktion im Excel Analyse Add-In entspricht nicht der Kalenderwochenberechnung, wie sie in Deutschland üblich ist, sondern rechnet nach amerikanischem Format.

Beim amerikanischen Standard ist die Kalenderwoche 1 die Woche, in der der 01.01. des Jahres liegt.

Nach DIN ist das Ganze etwas komplizierter. Hier müssen mindestens 4 Tage des neuen Jahres in die Woche fallen. Wenn also der 01.01. ein Freitag, Samstag oder Sonntag ist, dann beginnt die Kalenderwoche 1 mit dem darauffolgenden Montag.
nachzulesen unter:
http://www.office-loesung.de/ftopic164573_0_0_asc.php

MfG
wim
0 Punkte
Beantwortet von
@wim,

danke für den Link, bin nun etwas schlauer :-)
Mein obiges Problem ist gelöst!

Gruß

db-Lehrling
...