Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise

Begonnen von boehnli01, Juni 07, 2011, 20:59:29

⏪ vorheriges - nächstes ⏩

boehnli01

Hallo zusammen,

Nach langem Suchen habe ich den unten stehenden Befehl gefunden.  Nun möchte jedem Tag noch Wochentag, Woche, Monat & Jahr in einem separaten Feld zuweisen: 
Feld_Wochentag
Feld_Woche
Feld_Monat
Feld_Jahr

Private Sub Command0_Click()
Const clngDays  As Long = 5000  'Anzahl von Tagen
    Dim lngCount    As Long
   
    With CurrentDb.OpenRecordset("tblDaten")
        For lngCount = 0 To clngDays
            .AddNew
            !Feld_Datum = CDate("2008-01-01") + lngCount
            .Update
        Next lngCount
    End With
End Sub


Könnt ihr mir weiterhelfen.
Danke.

DF6GL

Hallo,



.AddNew            
  !Feld_Datum = CDate("2008-01-01") + lngCount          
  !Feld_Wochentag = Weekday(!Feld_Datum,vbMonday)
  !Feld_Woche  =Datepart("ww", !Feld_Datum,2,2)
  !Feld_Monat = Month(!Feld_Datum)
  !Feld_Jahr   = Year(!Feld_Datum)
.Update


boehnli01

Hallo nochmals, doch noch eine Frage:

Wie würde der Befehl aussehen ohne Wochenende und Feiertage ? Gehe davon das ich die Feiertag mit einer separaten Tabelle verknüpfen müsste.

Danke und gruss
Cédric


MzKlMu

Hallo,
versuche es so für ohne Wochenenden:

If Weekday(CDate("2008-01-01") + lngCount, vbMonday) < 6
.AddNew            
  !Feld_Datum = CDate("2008-01-01") + lngCount          
  !Feld_Wochentag = Weekday(!Feld_Datum,vbMonday)
  !Feld_Woche  =Datepart("ww", !Feld_Datum,2,2)
  !Feld_Monat = Month(!Feld_Datum)
  !Feld_Jahr   = Year(!Feld_Datum)
.Update
End If


Es stellt sich für mich die Frage, wozu willst Du die Zusatzinfos abspeichern, es genügt doch nur das Datum alle anderen Infos lassen sich doch jederzeit aus dem Datum ermitteln.

Für die Feiertage schaue mal in das Beispiel.
Es wird einfach für einen Feiertag in der Tabelle ein Haken gemacht, für 10 Feiertage pro Jahr ist das sicherlich kein Problem. Es lassen sich auch noch zusätzlich firmeninterne Feiertage (Betriebsausflug, Brückentage etc) erfassen.

Was hat die Datumstabelle bei Dir für eine Aufgabe?

[Anhang gelöscht durch Administrator]
Gruß Klaus

boehnli01

Hallo,

Möchte über ein Formular frm_calender mich auf das Steuerelement Anzahl_Tage beziehen, aber funktioniert nicht:

Habe es mit:
Const clngDays  As Long = DLookup(Me.Anzahl_Tage) 'Anzahl von Tagen
und
Const clngDays  As Long = Me.Anzahl_Tage 'Anzahl von Tagen
probiert aber geht ebefalls nicht.

Kann mir jemand helfen bitte.
Gruss


Const clngDays  As Long = DLookup(Me.Anzahl_Tage) 'Anzahl von Tagen

Dim lngCount    As Long
       
        With CurrentDb.OpenRecordset("tblDaten_raw")
        For lngCount = 0 To clngDays

.AddNew

!Feld_Datum = CDate(Me.Start_Datum) + lngCount
!Feld_Wochentag = WeekDay(!Feld_Datum, vbMonday)
!Feld_Woche = DatePart("ww", !Feld_Datum, 2, 2)
!Feld_Monat = Month(!Feld_Datum)
!Feld_Jahr = Year(!Feld_Datum)
.Update

boehnli01

Hallo nochmals, kann mir da jemand helfen bitte:

Was stimmt da nicht:
Const clngDays  As Long = DLookup(Me.Anzahl_Tage) 'Anzahl von Tagen
oder
Const clngDays  As Long = Me.Anzahl_Tage 'Anzahl von Tagen

Danke für Eure Hilfe.
Gruss

ebs17

Beides stimmt nicht. Einer Konstanten kannst Du nur einen konstanten(!) Wert zuweisen, nicht das Ergebnis einer Funktion oder Methode/Eigenschaft:
Const clngDays  As Long = 15

Anderenfalls deklarierst Du eine Variable und weist ihr einen Wert (wie auch immer) zu.
Dim lngDays  As Long
lngDays = DLookup("FeldTage", "Tabellenname")


Nebenbei: Deine Verwendung von DLookup wird nicht funktionieren, vergleiche dazu auch die VBA-Hilfe. Mit DLookup holt man sich einen Wert aus einer Tabelle/Abfrage, Me.Anzahl_Tage ist aber (vermutlich) ein Formularfeld.

MfGA

DF6GL

Hallo,

aus diesem Grunde warum überhaupt eine Konstante benutzen und nicht gleich:

        For lngCount = 0 To nz(Me!Anzahl_Tage,0)

boehnli01