1 1 1 1 1 1 1 1 1 1 Rating 4.00 (3 Votes)

Problemstellung:
immer wieder ein Thema ist im Forum der Umgang mit Kalenderwochen.
Ermittlung der Kalenderwoche für Datum nach DIN 1355 und Ermittlung eines Datums und
Wochentages aus einer Kalenderwoche.

Voraussetzungen:
Das Bsp ist ab A97 lauffähig.

Funktionsweise:
Die Errechnung der Kalenderwoche (KW) aus einem Datum geht ja noch.
Wobei die pure Formatierung eines Datums in die KW auch Fehler bei Berechnung von
Jahreswechseln beinhaltet.

Syntax:

Dim varKW As Variant
    varKW = Format("DeinDatum", "ww", vbMonday)
    'oder
    varKW = Format("DeinDatum", "ww/yyyy", vbMonday)

Genauere Ergebnisse erhält man dann schon mit speziellen Funktionen:

Function Kalenderwoche(XDatum As Variant, fModus As Boolean) As String
Dim x, y, z
    Kalenderwoche = ""
If Not IsDate(XDatum) Then Kalenderwoche = "": Exit Function
    XDatum = CDate(XDatum)
    x = Year(XDatum)
    z = Format(XDatum, "ww", vbMonday, vbFirstFourDays)
    y = Int((XDatum - DateSerial(Year(XDatum), 1, 1) + _
        ((Weekday(DateSerial(Year(XDatum), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
 
    If y = 0 Then
        z = Format(DateSerial(x - 1, 12, 31), "ww", vbMonday, vbFirstFourDays)
        If z >= 52 Then x = x - 1
    ElseIf y > 52 And (Weekday(DateSerial(x, 12, 31)) - 1) Mod 7 <= 3 Then
        If Format(XDatum + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then z = 1
        If z = 1 Then x = x + 1
    End If
    If fModus = True Then
        Kalenderwoche = Right("00" & z, 2) & "/" & Right("0000" & x, 4)
    Else
        Kalenderwoche = Right("00" & z, 2)
    End If
End Function

In dieser Funktion werden Jahreswechsel richtig berechnet.
Folgende Argumente müssen übergeben werden:

XDatum= ein formatiertes Datum (sonst gibt die Funktion "" zurück)
boolModus True =Format "ww/jjjj", False =Format "ww"

Syntax:

Dim Testdatum as Date
Dim strKW as String
Testdatum = #12/31/2002#   ' Test mit 31.12.2002
strKW = Kalenderwoche(Testdatum, True)

Jetzt kommen wir aber zur rekursiven Berechnung, sprich ein Datum aus einer KW zu ermitteln.
Drei Argumente werden benötigt, die KW, das Jahr und den Wochentag.
Die Funktion "GetDateFromWeek" gibt dann das Datum zurück.
Listing s. Bsp-DB

Argumente:

nWeek = KW z.B 50
nDayOfWeek = Wochentag z.B. 1=Montag
nYear =Jahr z.B. 2003

Jetzt kann man noch alle Tage der gewählen KW in einem Listenfeld anzeigen lassen. (s. Bsp-DB)
Das Füllen des Listenfeldes soll hier aber jetzt nicht näher beschrieben werden,
da dies ein extra Thema ergibt.

Dateien:

Berechnung von Kalenderwochen (DIN 1355)

ab A97

Die Zip-Datei enthält ein Version für A97 und eine ab A00

Datum 05.02.2018
Dateigröße 54.06 KB
Download 5.208

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png5.png7.png6.png2.png1.png3.png
Heute209
Gestern206
Diese Woche415
Dieser Monat4836
Total1576213

  • IP: 107.23.85.179
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

2
Online

19. März 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...