Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kalenderwoche in Tag umrechnen

Begonnen von HJH, September 14, 2014, 15:17:32

⏪ vorheriges - nächstes ⏩

HJH

Hallo,
ich importiere Termine aus einer AS400 in folgenden Formaten, die ich in Access umwandeln möchte:
20140038 - die KW 38 soll immer auf den Mittwoch, 17.09.2014 umgewandelt werden (gilt für alle KW - Umrechnung auf den Mittwoch)
20140917 - der Fix-Termin soll auf 17.09.2014 umgewandelt werden
20140951 - die 51 steht für Anfang des Monats und soll auf immer auf den 5 des Monats umgewandelt werden, hier also 05.09.2014
20140952 - die 52 steht für Mitte des Monats und soll auf den 15.09.2014 umgewandelt werden
20140953 - die 53 steht für Ende des Monats und soll auf den 27.09.2014 umgewandelt werden.
Hat jemand eine Idee?
Gruß
Jürgen

database

Hallo,

in der Annahme dass du eine Abfrage für diese Zwecke verwenden möchtest ...

Deine Tabelle soll 'tbl_Importe' heissen und das Feld mit dem AS400-Datum 'importdatum' benannt sein.

Erstelle ein Standard-Modul und kopiere dort die folgende Function hin:


Public Function DatInWoche(DJahr As Integer, DKW As Integer, DWT As Integer)
   DatInWoche = DateValue("4.1." & DJahr) + DKW * 7 - 8 - _
                DateValue("2.1." & DJahr) Mod 7 + DWT
End Function


Erstelle eine Abfrage und kopiere dann folgende SQL in den SQL-Abschnitt der Abfrage.


SELECT
importdatum,
IIf(Right([importdatum],2)=51,
    "05." & Mid([importdatum],5,2) & "." & Left([importdatum],4),
IIf(Right([importdatum],2)=52,
    "15." & Mid([importdatum],5,2) & "." & Left([importdatum],4),
IIf(Right([importdatum],2)=53,
    "27." & Mid([importdatum],5,2) & "." & Left([importdatum],4),
IIf(Mid([importdatum],5,2)="00",
    DatInWoche(left([importdatum],4),right([Importdatum],2),3),
Right([importdatum],2) & "." & Mid([importdatum],5,2) & "." & Left([importdatum],4))))) AS konvertiert
FROM tbl_Importe


speichere danach die ganze Geschichte - damit wird deinem Modul ein Name verpasst und die Abfrage kann die function verwenden.

wenn du die Abfrage ausführst sollten deine Datumswerte neben dem 'importdatum' richtig erscheinen.

p.s.
Die Function stammt - leicht abgewandelt - aus einem anderen Forum.

ebs17

Zitatimportiere Termine aus einer AS400
Da es sich dann hierbei vermutlich nicht um Einzelberechnungen handelt, könnte man eine (unmittelbare) Abfragelösung bevorzugen.

Dazu würde man sich im Vorfeld eine Kalendertabelle (Grundlagen - SQL ist leicht (3) - Kalendertabelle) erstellen, die dann um die auftretenden Sonderformate ergänzt wird. Ein Nachschlagen per JOIN über indizierte Felder wäre dann recht zügig.
Mit freundlichem Glück Auf!

Eberhard