title image


Smiley Re: Anzahl Wochentage zwischen zwei Datumsfeldern
Hi Michael!Ich hab' vor kurzem eine ähnliche Problematik gehabt... und zwar mußte ich die Samstage und Sonntage von einem Datum ausgehend x Monate vorberechnen (Dienstplan für die Rettung...)aus diesem Grund hab' ich mir gedacht ich schick dir einfach meinen Quellcode, den du eigentlich nur mehr für deine Zwecke ummodeln mußt. Kurz nur soviel: schau dir die Funktion "weekday" an.mfg Martin---Dim db As DatabaseDim tb As RecordsetDim Datum_Anfang, Datum_Ende, Datum, Zeitpunkt As DateDim Jahr, Monat, Tag, Wochentag, x, Anzahl, Anzahl_Monate As IntegerDim Dienst(200) As DateAnzahl_Monate = Monate'Zähler 0 setzenx = 0'Datum aus Feld auslesenDatum = DateValue(Datumsfeld)'Anfangsdatum setzenDatum_Anfang = Datum'Datum des Dienstplanendes berechnenJahr = Year(Datum)Monat = Month(Datum)Tag = Day(Datum)Monat = Monat + Anzahl_Monate If Monat > 12 Then Jahr = Jahr + 1 If Monat > 12 Then Monat = (12 - Monat) * (-1)Datum_Ende = DateSerial(Jahr, Monat, Tag)'Schleife zur eigentlichen Sa/So BerechnungDoWochentag = WeekDay(Datum) If Wochentag = 1 Then x = x + 1 Dienst(x) = Datum End If If Wochentag = 7 Then x = x + 1 Dienst(x) = Datum End If Datum = DateAdd("d", 1, Datum)Loop Until Datum = Datum_EndeSet db = CurrentDbSet tb = db.OpenRecordset("Tage", dbOpenTable)If Not tb.Updatable Then MsgBox "Tabelle kann nicht geöffnet werden" Exit SubEnd If'Zähler rücksetzenAnzahl = xx = 1'Tabelleninhalt Tage löschendb.Execute "DELETE * FROM Tage"'in Tabelle schreibenDo tb.AddNew 'Samstagsdienste If WeekDay(Dienst(x)) = 7 Then Zeitpunkt = DateAdd("h", 8, Dienst(x)) tb!Zeitpunkt = Zeitpunkt tb.Update tb.AddNew Zeitpunkt = DateAdd("h", 19, Dienst(x)) tb!Zeitpunkt = Zeitpunkt End If 'Sonntagsdienste If WeekDay(Dienst(x)) = 1 Then Zeitpunkt = DateAdd("h", 8, Dienst(x)) tb!Zeitpunkt = Zeitpunkt End If x = x + 1 tb.Update Loop Until x = Anzahl[Forms]![SA/SO Berechnung]![UF_Tage].RequeryEnd Sub

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: