Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Kalenderwoche Listen Ansicht?!
Gehe zu Seite Zurück  1, 2
zurück: ID aus Kombinationsfeld weiter: Unterformular mit einzelnen Datensätzen erstellen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
lars.muc
Im Profil kannst Du frei den Rang ändern


Verfasst am:
14. Jun 2007, 09:35
Rufname:

AW: Kalenderwoche Listen Ansicht?! - AW: Kalenderwoche Listen Ansicht?!

Nach oben
       Version: Office XP (2002)

Hallo derarb,

ich habe deine Funktion eingebaut nun ist aber das Problem das ich die scroll funktion nicht mehr nutzen kann, da das Formular gesperrt ist. Wenn ich deine Formular öffne ist eigentlich alles auf dem Formular gepserrt man kann keine Schaltfläsche mehr nutzen?!

Danke
Willi Wipp
Moderator


Verfasst am:
15. Jun 2007, 02:27
Rufname:
Wohnort: Raum Wiesbaden


Re: Kalenderwoche Listen Ansicht?! (III) - Re: Kalenderwoche Listen Ansicht?! (III)

Nach oben
       Version: Office XP (2002)

Hi lars.muc,

wirf den Code von derArb aus Form_Open raus und verwende einfach
Code:
Private Sub Form_Open(Cancel As Integer)
'    Me!lstKW = CLng(DatePart("ww", Date))
' bzw. sauberer mit der zusaetzlichen Funktion Kalenderwoche
    Me!lstKW = CLng(Kalenderwoche(Date, False))
End Sub

' im Modul mod_Kalenderwochen
Public Function Kalenderwoche(xDatum As Variant, fModus As Boolean) As String
On Error GoTo fehler
    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
ende:
    Exit Function
fehler:
    Resume ende
End Function

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
lars.muc
Im Profil kannst Du frei den Rang ändern


Verfasst am:
15. Jun 2007, 14:21
Rufname:

AW: Kalenderwoche Listen Ansicht?! - AW: Kalenderwoche Listen Ansicht?!

Nach oben
       Version: Office XP (2002)

Hallo,

bei dem Code zeigt er mir nicht die Aktuelle KW an, die ja Markiert sein sollte.

Mfg Danke
Willi Wipp
Moderator


Verfasst am:
15. Jun 2007, 14:48
Rufname:
Wohnort: Raum Wiesbaden

Re: Kalenderwoche Listen Ansicht?! (IV) - Re: Kalenderwoche Listen Ansicht?! (IV)

Nach oben
       Version: Office XP (2002)

Hi lars.muc,

sorry aber ich habe den Code im Beispiel von derArb getestet und nur die beschriebenen Aenderungen,
d.h. zusaetzlichen Code fuer Kalenderwoche im Modul mod_Kalenderwochen eingefuegt
und den Code in der Prozedur Form_Open ausgetauscht.
Hast Du eventuell inzwischen die Eigenschaft Mehrfachauswahl (MultiSelect) des Listenfeldes geaendert?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
derArb
getting better


Verfasst am:
15. März 2011, 18:33
Rufname: derArb
Wohnort: Berlin


AW: Kalenderwoche Listen Ansicht?! - AW: Kalenderwoche Listen Ansicht?!

Nach oben
       Version: Office XP (2002)

Hallo,
die in der obigen Beispiel DB verwendete Funktion KwNachDatum
macht ab und zu bei Jahreswechseln Fehler.
Code:
Option Compare Database
Option Explicit

Public Function KwNachDatum(xKW As Integer, xJJ As Integer, xTyp As String) _
                           As String
On Error GoTo fehler
    Dim mDat As Date
    Dim nDat As Date
    Dim T As Integer
    Dim jMax As Integer
    Dim mKW As Integer

' Falsche Wochenangabe abfangen
    If xKW > 52 Then
        If Int(Format(DateSerial(xJJ, 12, 31), "WW", 2, 2)) < xKW Then
            KwNachDatum = "KW " & xKW & "/" & xJJ & " nicht möglich"
            GoTo ende
        End If
    End If
' Tage im Jahr festlegen
    jMax = 365
' Bei Schaltjahr einen Tag abziehen
    If IsDate("29.02." & xJJ) Then
        jMax = jMax + 1
    End If
' Tage durchlaufen und Woche auswerten
    For T = 0 To jMax
        nDat = DateSerial(xJJ, 1, 1) + T
        If xKW = Int(Format(nDat, "WW", 2, 2)) Then
            mDat = nDat
            Exit For
        End If
    Next T
' Typ auswerten und Datum übergeben
    If xTyp = "von" Then
        mDat = mDat - 4
        For T = 0 To 4
            nDat = mDat + T
            If xKW = Int(Format(nDat, "WW", 2, 2)) Then
                mDat = nDat
                Exit For
            End If
        Next T
        KwNachDatum = mDat
      Else
        mDat = mDat + 6
        For T = 0 To 6
            nDat = mDat - T
            If xKW = Int(Format(nDat, "WW", 2, 2)) Then
                mDat = nDat
                Exit For
            End If
        Next T
        KwNachDatum = mDat
    End If
ende:
    Exit Function
fehler:
    Resume ende
End Function
Genauer ist die folgende Funktion von Tommy K's Webpage
Code:
Option Compare Database
Option Explicit

Public Function GetDateFromWeek(ByVal nWeek As Integer _
                              , nDayOfWeek As Integer _
                              , Optional ByVal nYear As Integer = -1)
'*******************************************
'Name:      GetDateFromWeek (Function)
'Purpose:
'Author:    Dieter Otter, angepasst an VBA von Thomas Keßler
'Date:
'Called by:
'Calls:
'Inputs:
'Output:
'Example: vMonday = GetDateFromWeek(12, vbMonday, 2003)
'*******************************************
    Dim nCurWeek As Integer
    Dim vStart As Variant
    Dim vStart1 As Variant
    Dim vMonday As Variant
    Dim vSunday As Variant
    Dim nDay As Integer
   
    Select Case nDayOfWeek
      Case 1: nDayOfWeek = vbMonday
      Case 2: nDayOfWeek = vbTuesday
      Case 3: nDayOfWeek = vbWednesday
      Case 4: nDayOfWeek = vbThursday
      Case 5: nDayOfWeek = vbFriday
      Case 6: nDayOfWeek = vbSaturday
      Case 7: nDayOfWeek = vbSunday
    End Select
    ' Kein Jahr angeben? Dann aktuelles Jahr verwenden!
    If nYear = -1 Then nYear = Year(Date)
    ' aktuelle Woche im Jahr nYear ermitteln
    vStart1 = DateSerial(nYear, Month(Date), Day(Date))
    nCurWeek = Kalenderwoche(vStart1, False)
    ' Datum der gewünschten Woche ermitteln
    vStart = DateAdd("ww", nWeek - nCurWeek, vStart1)
    ' Wochenanfang ermitteln
    nDay = Weekday(vStart, vbMonday)
    ' Datum des gewünschten Wochentags ermitteln
    If nDayOfWeek = vbSunday Then
        GetDateFromWeek = DateAdd("d", -nDay + 7, vStart)
      Else
        GetDateFromWeek = DateAdd("d", -nDay + nDayOfWeek - 1, vStart)
    End If
End Function

Function Kalenderwoche(XDatum As Variant, fModus As Boolean) As String
'Gibt Ein Datum als "ww\jjjj" String zurück
'Wenn eine Wochennummer in ein unterschiedliches Jahr fällt,
'so wird dies berücksichtigt
'd.h. 31.12.2002 = 01\2003 bzw. 1.1.1999 = 53\1998
    Dim x, Y, Z
   
    Kalenderwoche = ""
    If Not IsDate(XDatum) Then Kalenderwoche = "": Exit Function
    XDatum = CDate(XDatum)
    x = Year(XDatum)
    Y = Month(XDatum)
    Z = CInt(Format(XDatum, "ww", vbMonday, vbUseSystem))
    If Z > 52 Then
        If Format(XDatum + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then Z = 1
    End If
    If Y = 12 And Z < 40 Then x = x + 1
    If Y = 1 And Z > 10 Then x = x - 1
    If fModus = True Then
        Kalenderwoche = Right("00" & Z, 2) & "/" & Right("0000" & x, 4)
      Else
        Kalenderwoche = Right("00" & Z, 2)
    End If
End Function

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite Zurück  1, 2
Diese Seite Freunden empfehlen

Seite 2 von 2
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: Abfragen in SQL ansicht Auflösen 1 wolli2k 710 01. Dez 2010, 13:22
Gast Abfragen in SQL  ansicht Auflösen
Keine neuen Beiträge Access Tabellen & Abfragen: Zusammenführen unterschiedlicher Listen 9 omasenkel 301 04. Jun 2010, 10:58
Gast Zusammenführen unterschiedlicher Listen
Keine neuen Beiträge Access Tabellen & Abfragen: Format Datum andere Ansicht 2 StreunerKA 1240 04. März 2010, 21:01
StreunerKA Format Datum andere Ansicht
Keine neuen Beiträge Access Tabellen & Abfragen: Parameterabfrage mit Listen- oder Kombinationsfeld 6 Datenpunker 1429 17. März 2009, 11:55
Datenpunker Parameterabfrage mit Listen- oder Kombinationsfeld
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage der Kalenderwoche 46 hp69 5112 01. Dez 2008, 01:45
KlausMz Abfrage der Kalenderwoche
Keine neuen Beiträge Access Tabellen & Abfragen: Falsche Anzeige der Spalte in Listen/Kombinationsfeld 5 Dill_ 1018 25. März 2008, 23:55
jens05 Falsche Anzeige der Spalte in Listen/Kombinationsfeld
Keine neuen Beiträge Access Tabellen & Abfragen: Noch was mit dem Datum/Kalenderwoche 1 Markos 402 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 608 23. Nov 2007, 13:44
KlausMz Datumsberechnung, Problem bei Kalenderwoche
Keine neuen Beiträge Access Tabellen & Abfragen: Werte einrücken bzw listen verbinden 0 nordischer_84 711 20. März 2007, 10:29
nordischer_84 Werte einrücken bzw listen verbinden
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
Keine neuen Beiträge Access Tabellen & Abfragen: Kalenderwoche 1 exzes 604 21. Apr 2006, 13:57
c0bRa Kalenderwoche
Keine neuen Beiträge Access Formulare: Öffnen eines erstellten Formular --> Ansicht 1 Heike1981 602 15. Feb 2006, 11:35
Gast Öffnen eines erstellten Formular --> Ansicht
 

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