Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Darstellung Kalenderwoche
zurück: Phenomen Leistungseinbusse durch neues Feld weiter: Wert in zwei Tabellen speichern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Jan1980
Gast


Verfasst am:
11. Feb 2008, 17:47
Rufname:

Darstellung Kalenderwoche - Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo zusammen,

ich würde gerne aus einem Datum, bspw. 11.02.2008 die Kalenderwoche und das Jahr bestimmen und dieses wie folgt anzeigen 2008/07. Wichtig ist mir, dass vor der 7 noch eine Null steht, damit ich die KWs aufsteigend sortieren kann. Bislang habe ich es mit der Funktion : Format([Datum];"jjjj/ww";2;2) versucht. Diese gibt aber die einstelligen KWs auch nur einstellig an.

Kann mir jemand helgen?

Viele Grüße

Jan
Da Oansa
Access / VBA Professional


Verfasst am:
12. Feb 2008, 13:44
Rufname:


AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo Jan,

wenn es mit ww partout nicht zweistellig wird, kannst Du es mit 3 Formatanweisungen lösen:
Code:
    Debug.Print Format(Date, "yyyy") & Format ((Format(Date, "ww"),"00")

Gruß

Klaus
KlausMz
Moderator Access


Verfasst am:
12. Feb 2008, 14:19
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo,
das Access Format "ww" rechnet in bestimmten Jahren falsch. So auch zum Jahreswechsel 2007/2008. Der 31.12.2007 ist KW 1/2008. Zu korrekten Berechnung der europäischen/deutschen Kalenderwochen ist eine eigene Funktion notwendig.
Code:
Function DINKW(Dat As Date) As Variant
    Dim a As Integer, J As Integer
   
    J = Year(Dat)
    a = Int((Dat - DateSerial(Year(Dat), 1, 1) + _
             ((Weekday(DateSerial(Year(Dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
    If a = 0 Then
        a = Left(DINKW(DateSerial(Year(Dat) - 1, 12, 31)), 2)
        J = J - 1
      ElseIf a = 53 And _
             (Weekday(DateSerial(Year(Dat), 12, 31)) - 1) Mod 7 <= 3 Then
        a = 1
        J = J + 1
    End If
    DINKW = Format(a, "00") & "/" & J
End Function
Diese Funktion ermittelt das Jahr und die DinKW zu einem Datum.

Aufruf in z.B. einer Abfrage:
Code:
Kalenderwoche: DINKW(DatumsFeld)
Test im Direktbereich:
Zitat:
?dinkw("31.12.2007")
01/2008

(Siehe auch Datum in Auswahlfeld aus Kalenderwoche berechnen)

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
18. März 2011, 16:35
Rufname:

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo,

wo muss ich denn die Funktion erstellen? Wo kommt diese hin?
DaOansa
Gast


Verfasst am:
18. März 2011, 17:35
Rufname:


AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Mittels Alt F11 gelangt man in den VBA Editor. Dort ist die Funktion zu hinterlegen.
Die Funktion ist als Public zu deklarieren - wenn man nichts angibt ist Public aber default (Stil!). Dann das Modul speichern, und schon kann es überall benutzt werden.
Bitte frage jetzt nicht was VBA ist - das möchte ich nicht gerne erklären.
Gruß
Klaus
adular
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Sep 2011, 14:28
Rufname:

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Funktioniert immer noch Super!

Vielen Dank
Neuling20111123
Gast


Verfasst am:
23. Nov 2011, 18:31
Rufname:

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo zusammen, hallo vor allem KlausMZ:

Ich habe nach einigem Experimentieren deine Funktion als Modul gespeichert und in einer query angewandt. Dies funktioniert auch prima bis ich anstatt einem INNER JOIN einen LEFT JOIN zwischen meine Tabelle und meine query einschalte. Dann bekomme ich einen "Data type mismatch in criteria expression" Error.
Eine Version mit LEFT JOIN, allerdings ohne die Funktion, gibt mir auch 55 Werte mehr an, als die INNER JOIN Version, wobei das entsprechende Input Feld leer ist.

Resultat meiner bisherigen Internetsuche ist also, dass deine Funktion nicht mit Nullwerten klarkommt...sehe ich das richtig? Könntest du sie so umbauen, dass das kein Problem mehr ist, oder gibt es eine alternative Lösung?

Danke im Voraus!!
Nouba
nicht ganz unwissend :)


Verfasst am:
23. Nov 2011, 19:09
Rufname:
Wohnort: Berlin

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo,

für den Umgang mit Nullwerten müsste das Argument als Variant deklariert sein und nur im Falle von If IsDate(Dat) Then zur Weiterberechnung herangezogen werden.

BTW: die verwendete DIN-Norm für die KW finde ich übrigens total ätzend - speziell dann, wenn man mal über Kalenderwochen gruppieren und sortieren will - da rücken schon mal Tage des Januars hinter den Dezember. Shock Ausserdem ist die Berechnung der KW mit der Format-Funktion nicht falsch - sondern amerikanisch. Surprised

_________________
mit freundlichen Grüssen Nouba

Wenn beim Lesen eines Beitrags der Eindruck entsteht, dass sich der Fragesteller wenig Mühe gegeben hat, so erhöht das nicht unbedingt die Motivation, eine Antwort zu verfassen.
KlausMz
Moderator Access


Verfasst am:
23. Nov 2011, 19:52
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo,
die Funktion ist nicht von mir, die habe ich nur irgendwo gefunden. Ist ja auch schon 3 Jahre her. Ich würde das inzwischen auch nicht mehr so machen. Ich denke, die Datepart Funktion mit 2 Parametern tut es auch. Ich habe jedenfalls keinen Fehler gefunden.
Code:
Format(DatePart("WW", Datumsfeld, 2, 2), "00")

Die erste 2 steht für Wochenbeginn = Monag (vbMonday) und die 2. 2 für erste Woche mit 4 Tagen (vbFirstFourDays).
In VBA kann man die Konstanten verwenden in SQL die Zahlen.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast20111123
Gast


Verfasst am:
25. Nov 2011, 10:30
Rufname:

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Gast20111123 am 24. Nov 2011 um 10:05 hat folgendes geschrieben:
Hallo zusammen

Danke für die schnelle Antworten! Ich habe die Kalenderwochen jetzt über Datepart in der Query dargestellt: KW: Datepart("WW";DATUM;2;2)

Das funktioniert auch super. Allerdings ergibt mir die Darstellung des zugehörigen Jahres:

KW Jahr: Datepart("YYYY";DATUM;2;2) nicht immer das richtige Jahr, Beispiel:
01.01.2012

Ergibt korrekterweise Kalenderwoche 1, allerdings zeigt er mir das Jahr 2012 anstatt 2011 an.

Könnt ihr einem Laien auch hier weiterhelfen?

Danke im Voraus!

P.S.:
...um das Problem über ein VBA-Modul zu lösen, war mir die "Funktion" leider zu wenig, dazu kenne ich mich zu wenig aus...ich erhalte komische Ergebnisse wie 1905 für das Jahr und Error Werte, wenn der Input 0 ist...am liebsten also eine Lösung, die ich in der Query im Designview bzw. als SQL eingeben kann...

So, hab das Problem selbst gelöst, die Funktion sieht folgendermassen aus:
Code:
Public Function KWJ(Dat As Date) As Variant
    Dim KW As Integer, J As Integer

    KW = DatePart("WW", Dat, vbMonday, vbFirstFourDays)
    If Month(Dat) = 12 And KW = 1 Then
        J = Year(Dat) + 1
      ElseIf Month(Dat) = 1 And KW >= 52 Then
        J = Year(Dat) - 1
      Else
        J = Year(Dat)
    End If
    KWJ = J & " " & Format(KW, "00")
End Function
Besten Gruss
Gast20111123
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
25. Nov 2011, 11:53
Rufname:
Wohnort: Goslar

Re: AW: Darstellung Kalenderwoche - Re: AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Gast20111123 - 24. Nov 2011, 10:05 hat folgendes geschrieben:
...Beispiel:
01.01.2012

Ergibt korrekterweise Kalenderwoche 1,...

Der 1.1.2012 liegt laut Definition in der KW52 des Jahres 2011...

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
KlausMz
Moderator Access


Verfasst am:
25. Nov 2011, 12:14
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo,
genau und DatePart macht das auch richtig.
Ausgabe im Direktbereich:
Code:
?Datepart("ww","01.01.2012",2,2)
 52

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast20111123
Gast


Verfasst am:
25. Nov 2011, 14:15
Rufname:

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Richtig, aber Datepart gibt zu diesem Datum das Jahr 2012 heraus, was, wenn man das Jahr zur Kalenderwoche haben möchte, falsch ist (Ansonsten macht dieses Ergebnis natürlich Sinn). Dieses Problem löst meine Funktion.

Gruss und Danke für eure Hilfe!
thebrain1981
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. Dez 2012, 14:41
Rufname:

AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Wenn das jetzt nochmal jemand für noobs konkret und schrittweise aufschlüsselt wäre das mehr als super!!!
KlausMz
Moderator Access


Verfasst am:
05. Dez 2012, 14:50
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Darstellung Kalenderwoche - AW: Darstellung Kalenderwoche

Nach oben
       Version: Office 2003

Hallo,
wenn Du genau erklärst, wo es jetzt fehlt bei Dir bzw. was nicht funktioniert, ist das sicher kein Problem, das genauer zu erklären.
Es ist auch hilfreich, wenn Du zeigst, was Du bisher versucht hast.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Bestimmung erster und letzten Tag einer Kalenderwoche 26 Gast 2704 06. Jun 2011, 09:38
Gast Bestimmung erster und letzten Tag einer Kalenderwoche
Keine neuen Beiträge Access Tabellen & Abfragen: Kalenderwoche in Access-Abfrage 5 Stefn 20620 08. März 2011, 13:07
KlausMz Kalenderwoche in Access-Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Kalenderwoche immer eine voraus 2 nakoda 289 21. Jul 2010, 12:37
nakoda Kalenderwoche immer eine voraus
Keine neuen Beiträge Access Tabellen & Abfragen: Probleme mit Umrechnung Datum in Kalenderwoche 2 Access_newbie111 1414 11. Apr 2009, 15:32
Access_newbie111 Probleme mit Umrechnung Datum in Kalenderwoche
Keine neuen Beiträge Access Tabellen & Abfragen: Grafische Darstellung eine Organigramms 1 Heavyduty 807 04. März 2009, 15:14
peterchen1 Grafische Darstellung eine Organigramms
Keine neuen Beiträge Access Tabellen & Abfragen: Darstellung von Zehntelsek und Berechnung von ZwZeiten 3 wesian2000 906 23. Feb 2009, 11:39
JörgG Darstellung von Zehntelsek und Berechnung von ZwZeiten
Keine neuen Beiträge Access Formulare: Kalenderwoche ermitteln 1 levvoo 2730 08. Sep 2008, 15:26
icke___ Kalenderwoche ermitteln
Keine neuen Beiträge Access Tabellen & Abfragen: Noch was mit dem Datum/Kalenderwoche 1 Markos 401 23. Nov 2007, 13:58
Willi Wipp Noch was mit dem Datum/Kalenderwoche
Keine neuen Beiträge Access Tabellen & Abfragen: Datumsberechnung, Problem bei Kalenderwoche 3 Markos 607 23. Nov 2007, 13:44
KlausMz Datumsberechnung, Problem bei Kalenderwoche
Keine neuen Beiträge Access Tabellen & Abfragen: aus Kalenderwoche Monat ableiten 10 Thomas LL. 3792 23. Nov 2007, 12:18
KlausMz aus Kalenderwoche Monat ableiten
Keine neuen Beiträge Access Tabellen & Abfragen: Darstellung der Daten 4 Mar307 599 20. Apr 2007, 12:58
Mar307 Darstellung der Daten
Keine neuen Beiträge Access Tabellen & Abfragen: [Access 2K] Abfrage mit Kalenderwoche - Probleme 4 Micha_S 1617 12. Jan 2007, 11:52
Gast [Access 2K] Abfrage mit Kalenderwoche - Probleme
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Word VBA