Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: boehnli01 am Juni 07, 2011, 20:59:29

Titel: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: boehnli01 am Juni 07, 2011, 20:59:29
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.
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: DF6GL am Juni 07, 2011, 21:14:42
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
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: boehnli01 am Juni 07, 2011, 21:21:45
Vielen Dank.
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: boehnli01 am Juni 08, 2011, 17:05:39
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
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: DF6GL am Juni 08, 2011, 17:26:01
Hallo,


"..ohne Wochenende und Feiertage .."  ???

Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: MzKlMu am Juni 08, 2011, 17:29:27
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]
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: boehnli01 am Juni 09, 2011, 21:09:45
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
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: boehnli01 am Juni 11, 2011, 12:50:50
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
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: ebs17 am Juni 11, 2011, 13:17:44
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
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: DF6GL am Juni 11, 2011, 13:23:51
Hallo,

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

        For lngCount = 0 To nz(Me!Anzahl_Tage,0)
Titel: Re: Wochentag, Woche, Monat & Jahr dem Tabellenkalender zuweise
Beitrag von: boehnli01 am Juni 11, 2011, 13:39:44
Wunderbar es hat geklappt. Vielen Dank.