Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: ---> 26. März: Office-Treffen Rhein-Main <-
ISO Wochennummer berechnen
zurück: Formularentwurf: Gutes Layout und nutzerfreundliche Funktion weiter: Datenmodell entwickeln: Welche Tabellen und Beziehungen? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
18. Dez 2009, 15:55
Rufname:


ISO Wochennummer berechnen - ISO Wochennummer berechnen

Nach oben
       Version: (keine Angabe möglich)

Hallo zusammen,

für die Ausgabe einer Wochennummer im Kalender gibt es ja in VBA die Möglichkeit, die Wochennummer berechnen zu lassen mit:

DatePart("ww","01.01.2010")

Leider ist das Ergebnis kein ISO-Datum, wie hierzulande verwendet wird, sondern die amerikanische Variante, nach der das Jahr immer mit Wochennummer 1 beginnt (es gibt also halbe Wochen dort, hier nur ganze).

Auf der Seite Week Numbers In Excel gibt es ein paar schöne, kurze Berechnungsmethoden in VBA als Lösung.

Diese habe ich hier mal umgesetzt als Funktion für einen SQL Server, der genau das gleiche Problem hat und fast die gleichen Funktionen wie VBA anbietet.

Das Ergebnis sieht so aus:
Code:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      Christian Coppes
-- Create date: 18.12.2009
-- Description:   Returns an ISO week (SQL Server returns US week)
--              Created from VBA on http://www.cpearson.com/excel/WeekNumbers.aspx
-- =============================================
CREATE FUNCTION dbo.fnISOWeek(@InDate AS smalldatetime)
RETURNS tinyint
AS
BEGIN
   DECLARE @TmpDate      AS smalldatetime;
   DECLARE @Return       AS tinyint;

   SELECT @TmpDate=CAST('1/3/'+CAST(DATEPART(yy,DATEADD(dd,4,DATEADD(dd,-(DATEPART(dw,@InDate-1)),@InDate)))
                            AS varchar(4))
                   AS smalldatetime);
   SELECT @Return= CAST((DATEDIFF(dd,@TmpDate,@InDate)+DATEPART(dw,@TmpDate)+5)/7 AS tinyint);
   RETURN @Return;
END
GO
Damit kann man die Berechnung auch bei einer Pass-Through-Abfrage direkt auf dem SQL Server durchführen.

Gruß

Christian
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 Programmierung / VBA: Blackout: Berechnen im Endlosformular 6 beat78 112 24. Jul 2009, 13:29
beat78 Blackout: Berechnen im Endlosformular
Keine neuen Beiträge Access Formulare: Daten aus Tabelle berechnen und in Formular übernehmen 12 sonnenfisch 437 19. Jul 2009, 03:33
Willi Wipp Daten aus Tabelle berechnen und in Formular übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: Durchschnittliches Wechselintervall? Wie berechnen? 18 dieselross 208 30. März 2009, 14:59
dieselross Durchschnittliches Wechselintervall? Wie berechnen?
Keine neuen Beiträge Access Tabellen & Abfragen: Zellenwert eines Datensatzes automatisch berechnen? 5 survial555 106 06. März 2009, 17:07
rita2008 Zellenwert eines Datensatzes automatisch berechnen?
Keine neuen Beiträge Access Tabellen & Abfragen: Ablaufdatum berechnen auf Basis des aktuellen Datum 3 Gast 212 08. Mai 2008, 13:57
rita2008 Ablaufdatum berechnen auf Basis des aktuellen Datum
Keine neuen Beiträge Access Programmierung / VBA: TimeSlots - Verfügbarkeit berechnen 13 Marja 811 05. Mai 2008, 17:51
JörgG TimeSlots - Verfügbarkeit berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Betrag berechnen & Bedingte Formatierung innerhalb einer 1 conti 2011 06. Feb 2008, 10:45
Da Oansa Betrag berechnen & Bedingte Formatierung innerhalb einer
Keine neuen Beiträge Access Programmierung / VBA: Zeitdifferenz in VBA 24 Stunden berechnen 4 Marja 4252 02. Mai 2007, 16:07
KlausMz Zeitdifferenz in VBA 24 Stunden berechnen
Keine neuen Beiträge Access Programmierung / VBA: Nochmal Arbeitstage berechnen 4 silkog 6733 12. Apr 2007, 07:37
silkog Nochmal Arbeitstage berechnen
Keine neuen Beiträge Access Formulare: Endlosformular neu berechnen 11 Uli 712 06. Feb 2007, 09:16
jens05 Endlosformular neu berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Laufende Summe berechnen 7 Mike05 3000 15. Jan 2007, 23:16
Nadia_23 Laufende Summe berechnen
Keine neuen Beiträge Access Formulare: Bestimmte Anzahl berechnen 2 Gast 416 29. Jul 2006, 16:05
Gast Bestimmte Anzahl berechnen
 

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