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.
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
Vielen Dank.
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
Hallo,
"..ohne Wochenende und Feiertage .." ???
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]
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
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
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
Hallo,
aus diesem Grunde warum überhaupt eine Konstante benutzen und nicht gleich:
For lngCount = 0 To nz(Me!Anzahl_Tage,0)
Wunderbar es hat geklappt. Vielen Dank.